# A bigger box, or a better query.

> See the tier ladder, how a capacity signal becomes a scheduled move, and what visitors see. Some problems need a better query, not a bigger box.

Source: https://customhosted.com/scaling/

№ 01 Scaling

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.

№ 02 The artifact

## 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 | $5 — flat | 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 | $15 — flat | 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](https://customhosted.com/pricing).

№ 03 Before you ask

## 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](https://customhosted.com/monitoring). See [Files](https://customhosted.com/files) for what actually fills the disk this table watches.

№ 04 Minute by minute

## 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.

20 minutes, typical

A typical estimate scheduled around, not a measured average — most of it is confirming things rather than doing them.

1. You — Ask for the move — Say which tier, or describe the new workload, through the quote channel. — ~5 min
2. CustomHosted — A window is agreed — A short, scheduled window you pick — never a surprise change that lands while you're not watching. — Nothing
3. CustomHosted — A snapshot is taken first — A fresh backup, immediately before anything changes, so the move has a rollback ready if needed. — Nothing
4. CustomHosted — 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. — ~10 min
5. You — Confirm it looks right — A quick check on your side, once it is back up. — ~5 min
6. CustomHosted — The new rate is confirmed — The next invoice carries the new line — see "What it does to the invoice" below. — Nothing

№ 05 Honestly

## 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. |

№ 06 The tie-in

## 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.

1. 1 — You — Something fires, or you write in — Either a signal on the watch list trips, or you report something that doesn’t look right yourself.
2. 2 — CustomHosted — Triage — A human decides whether this is infrastructure — a retry, a restore, a rollback — or something in the application's own code.
3. 3 — CustomLabs — 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.
4. 4 — CodeHerder — It ships through the same pipeline — An agent opens the pull request, a human reviews and merges it, and the loop redeploys it.
5. 5 — CustomHosted — You're told it's closed — A note confirming what happened and that it’s done, in the same shape every time.

№ 07 What we do not do

## 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.

№ 08 The number

## 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](https://customhosted.com/billing).

№ 09 Answers

## Scaling questions

The anxiety questions, verbatim, answered from the sections above.

1. 01 Will 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.
2. 02 How 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.
3. 03 Do 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.
4. 04 Will 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.
5. 05 Can 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.
6. 06 Is 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.

№ 10 Keep reading

## What scaling connects to

- [Under load The question that comes before this page's ladder — finding your own number ahead of the day, not resizing after it.](https://customhosted.com/under-load)
- [What visitors see What a visitor gets while a scheduled move is underway, on a dedicated instance that is not answering.](https://customhosted.com/what-visitors-see)
- [Images The "unresized image" row above, in full — what makes a picture light before it ever costs you a tier.](https://customhosted.com/images)
- [Pricing The full rate card the ladder above is drawn from — every plan, add-on, and database tier.](https://customhosted.com/pricing)
- [Monitoring The full watch list this page's capacity signals are drawn from, and who gets woken for the rest.](https://customhosted.com/monitoring)
- [Billing What a tier change does to the invoice, in full — this page states the outcome, that page owns the number.](https://customhosted.com/billing)
- [Dedicated The dedicated tiers this page's ladder maps, with a static IP and full control at each one.](https://customhosted.com/dedicated)
- [Recovery The snapshot this page's move takes before anything changes — the backup and restore story in full.](https://customhosted.com/recovery)
- [The Loop Build, iterate, run — the pipeline a briefed fix or a CustomLabs rebuild both ship through.](https://customhosted.com/loop)

## 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.

[Get a quote →](https://customhosted.com/contact)
