A bigger box, or a better query.
Every plan on this platform is fixed and flat. This page covers what happens once a workload outgrows the one it started on: the ladder, how early we usually notice, and what moving up a tier actually looks like.
The ladder
Every tier on the rate card, in order, with the signal you've left it and where you go next. No plan, spec, or rate here is retyped — it's pulled straight from the rate card.
| Tier | Spec | Rate | Signal you've outgrown it | Next step |
|---|---|---|---|---|
| Static Starter | One site · global edge · TLS · deploys from git | $5flat | Transfer sits near or above the fair-use allowance for more than one month running. | Move to Static Pro — more transfer, staging, and routing, on the same static shape. |
| Static Pro | Multiple sites & environments · staging · redirects/headers | $15flat | The app needs a server process of its own — a database, a background job, or a route that computes an answer instead of serving a file. | Move to Dedicated S — the same account, a different shape underneath it. |
| Dedicated S | 2 vCPU · 1 GB RAM · 40 GB SSD · static IP | $29/mo | Memory or disk headroom stays low for days at a time, not just during one spike. | Move to Dedicated M — more memory and more disk, on the same instance shape. |
| Dedicated M | 2 vCPU · 2 GB RAM · 60 GB SSD · static IP | $59/mo | The same headroom pattern repeats at the new tier, or a second service needs room of its own. | Move to Dedicated L, or add a second instance — described on the quote form, priced flat. |
| Dedicated L | 2 vCPU · 4 GB RAM · 80 GB SSD · static IP | $99/mo | The workload needs more than one instance can hold, or a shape a fixed tier was never built for — a queue, a read replica, a second region. | A Custom quote — see "When a bigger box is the wrong answer" below for what that actually looks like. |
| Custom | Bespoke stack — designed to the workload | Quoted | Rare. A bespoke stack is already sized to the workload — the signal here is a new requirement, not a tier boundary. | A revised quote for the new shape, worked the same way as the first one. |
Attached a database? The same ladder runs underneath it.
| Tier | Spec | Rate | Signal you've outgrown it | Next step |
|---|---|---|---|---|
| DB Starter | Shared-tier Postgres · 1 GB RAM · 10 GB storage | $12/mo | Storage fills past headroom, or a second app wants to share the same database. | Move to DB Standard — more memory, more storage, and point-in-time recovery. |
| DB Standard | Postgres · 2 GB RAM · 40 GB storage | $25/mo | Connections sit near the pool limit, or query volume needs more memory to stay fast. | Move to DB Plus — production sizing with extended retention. |
| DB Plus | Postgres · 4 GB RAM · 100 GB storage | $49/mo | One database can no longer hold the whole workload on its own. | A Custom quote for a database shaped around the workload — see "When a bigger box is the wrong answer" below. |
Full rate detail and fair-use limits live on the rate card → Pricing.
How we know before you do
Three rows from the full watch list, the ones that actually bear on capacity. Nothing here waits for an outage.
| Layer | What fires it | First response |
|---|---|---|
| Capacity | Usage crossing a threshold set well ahead of the point it would actually cause an outage | Flagged to a human early, while it's still a maintenance task and not an emergency |
| Database | A connection pool running out, replication falling behind, or a nightly backup that never reported success | Logged and, for anything past a safe margin, handed to a human the same day |
| Background jobs | A queue backing up with nothing consuming it, or a scheduled job that starts but doesn't finish inside its window | Retried once automatically; a repeat failure is what pages a human |
What that human then does is write to you: which signal fired, a recommended tier, and the rate for it, all in writing. Nothing on the account moves until you say so. The same watch list, in full, is on Monitoring. See Files for what actually fills the disk this table watches.
The move, minute by minute
Rehearsed, in a window you pick. A snapshot is taken first, so there's a rollback ready before anything changes.
A typical estimate scheduled around, not a measured average — most of it is confirming things rather than doing them.
- You~5 min
Ask for the move
Say which tier, or describe the new workload, through the quote channel.
- CustomHostedNothing
A window is agreed
A short, scheduled window you pick — never a surprise change that lands while you're not watching.
- CustomHostedNothing
A snapshot is taken first
A fresh backup, immediately before anything changes, so the move has a rollback ready if needed.
- CustomHosted~10 min
The move happens
A static tier change is a configuration change with nothing to restart. A dedicated or database resize needs one short restart while the new capacity takes over.
- You~5 min
Confirm it looks right
A quick check on your side, once it is back up.
- CustomHostedNothing
The new rate is confirmed
The next invoice carries the new line — see "What it does to the invoice" below.
What visitors see
A static tier change restarts nothing. A dedicated or database resize needs one short restart — said plainly, not claimed away.
| Move | What visitors see | Restart |
|---|---|---|
| Static tier change | Nothing. The site keeps serving from the edge network the whole time. | None — it is a configuration change, not a resize. |
| Dedicated resize | One short restart, inside the window you picked. | One restart while the new compute takes over. |
| Database tier change | A brief reconnect while the database switches to the new tier. | One short reconnect, timed with the same window. |
| Add-on added | Nothing. An add-on turns on without touching the running service. | None. |
When a bigger box is the wrong answer
"We're running out of room" is often not a sizing problem. It's a fix to the work, not the box.
Cheaper than a bigger box
An unindexed query
A slow query run on every page load can look exactly like a compute shortage. Adding the missing index is usually a smaller fix than a bigger tier.
An unresized image
Serving a large photo at a small width burns transfer and memory for no visible gain. Resizing it at build time often does more than moving up a tier would.
A background job with no backoff
A job that retries immediately, over and over, can make the whole instance look short on room. Often the real fix is a short wait between retries.
A cache that never gets used
Recomputing the same answer on every request costs headroom. Caching it once usually saves more than moving up a tier ever would.
When it's genuinely architecture
A queue between two services
When one part of the app has to keep working while another catches up, that is a queue to design, not a bigger instance.
A read replica
When read traffic alone is the bottleneck, a second database built for reads is a rebuild, not a resize.
A second region
Running compute closer to a second cluster of users is a new deployment to design, not a tier to move up to.
The left column is a briefed change: monitoring flags it, you brief it, a CodeHerder agent opens the pull request, and the same pipeline ships it. The invoice never moves. The right column is a CustomLabs rebuild, quoted on its own, the same as a first build.
- 1You
Something fires, or you write in
Either a signal on the watch list trips, or you report something that doesn’t look right yourself.
- 2CustomHosted
Triage
A human decides whether this is infrastructure — a retry, a restore, a rollback — or something in the application's own code.
- 3CustomLabs
If it's a code bug
It gets briefed as a change, the same as any other feature request — this is what the Agentic iteration — CodeHerder add-on covers.
- 4CodeHerder
It ships through the same pipeline
An agent opens the pull request, a human reviews and merges it, and the loop redeploys it.
- 5CustomHosted
You're told it's closed
A note confirming what happened and that it’s done, in the same shape every time.
The honest limits
Said plainly, rather than left implied.
No autoscaling
A flat rate means fixed, known capacity. Nothing on this platform grows itself in the background and bills you for it afterwards.
No load balancing across instances
A single dedicated instance is one instance. Splitting a workload across more than one is a Custom quote, not a setting to switch on.
Compute lives in one place
The edge network is everywhere; the dedicated instance behind it is not. Putting compute itself in more than one place is architecture — see "When a bigger box is the wrong answer" above.
No throttling as a first response
A workload getting close to its headroom gets a conversation, not a rate limit switched on quietly. We talk to you before anything changes.
What it does to the invoice
Three sentences. The number itself lives on Billing.
Moving up or down a tier works the same way as adding or removing any other line: the new rate appears on the next invoice. There is no pro-rated charge for moving up, and no pro-rated credit for moving down — the invoice simply looks different next cycle. Full detail on how a month is billed lives on Billing.
Scaling questions
The anxiety questions, verbatim, answered from the sections above.
01Will the site go down while you make it bigger?
A static tier change has nothing to restart. A dedicated or database resize needs one short restart, inside a window you pick — see "The move, minute by minute" above.
02How long does a move actually take?
Around 20 minutes of your own time end to end, most of it confirming rather than doing — the rest is scheduled around you, not timed against you.
03Do you throttle us if we get close to a limit?
No. Nothing here throttles a workload as a first response — a signal that headroom is tight gets you a conversation, not a quiet slowdown.
04Will you resize or downgrade something without asking?
No. Every move on this page starts with you asking for it, or with us flagging a signal and you deciding what happens next. Nothing changes tier on its own.
05Can we move back down a tier if we over-ordered?
Yes. Moving down works the same way as moving up — the new rate appears on the next invoice, with no pro-rated charge or credit either way.
06Is there a limit to how many times we can move?
No. Move up or down as many times as the workload actually needs — it is a normal, expected move, not an exception.
What scaling connects to
- Pricing
The full rate card the ladder above is drawn from — every plan, add-on, and database tier.
- Monitoring
The full watch list this page's capacity signals are drawn from, and who gets woken for the rest.
- Billing
What a tier change does to the invoice, in full — this page states the outcome, that page owns the number.
- Dedicated
The dedicated tiers this page's ladder maps, with a static IP and full control at each one.
- Recovery
The snapshot this page's move takes before anything changes — the backup and restore story in full.
- The Loop
Build, iterate, run — the pipeline a briefed fix or a CustomLabs rebuild both ship through.
Ask what the next tier looks like.
Describe the workload — a fixed monthly rate for the tier that fits it comes back in writing, within a business day.