Skip to content
use-cases / idle-staging-stops-getting-deleted / hero
CONTAINERS · SNAPSHOTS · IDLE = FREE

Idle staging costs nothing, so staging stops getting deleted

On AWS, staging dies because every idle hour is a billable hour. On Hoody, idle containers eat disk and zero CPU — so the staging your reviewer touched three weeks ago is still there, with the exact state they left it in. The graveyard turns into a working set.

use-cases / idle-staging-stops-getting-deleted / lifecycle

What an idle container actually does

Three states, one container row, one bill. The active state burns CPU. The idle state burns nothing. The wake state takes a few hundred milliseconds and your staging is back exactly the way you left it.

01 / ACTIVE

Reviewer is poking at it

Your teammate is logged in, exercising the new endpoint, watching the dashboard. The container's processes are scheduled, its memory pages are hot, its CPU time is real. The flat-rate server is doing its job.

while watchedbilled
02 / IDLE

Nobody touched it for ten days

The container is suspended. Its filesystem still resolves, its disk delta still exists, its proxy domain still answers. KSM dedupes the RAM pages and BTRFS dedupes the disk blocks across containers on the same server — idle marginal cost is structurally near zero. It adds nothing to the flat-rate server price you already pay.

while idleno extra charge
03 / WAKE

Somebody pings the URL — it's back

The first request that arrives wakes the container. The same container ID, the same env vars, the same volumes, the same SSH host. The state your reviewer left behind is the state that comes back. No restore script, no fresh provision, no day rebuilding what you deleted.

to resumefew hundred ms

Hoody bills the server, flat-rate. The idle state is the rest of the container's life — and it is the state where every staging environment lives most of the time. KSM and BTRFS dedup mean idle containers add nothing to that server price.

use-cases / idle-staging-stops-getting-deleted / powers

What this changes about staging

Once idle is free, you stop making the decisions that staging was making for you.

PRESERVATION

You stop deleting environments to save money

The environment your reviewer used three weeks ago is still there, suspended, addressable by container ID. The CFO doesn't see it on the bill because it isn't on the bill. The conversation that used to end in 'nuke two of three' doesn't happen.

SPEED

You stop rebuilding what you deleted

The reviewer pings the URL, the container wakes, their session resumes. No fresh provision, no seed data, no waiting for a Heroku dyno to come back from sleep. The previous afternoon's work is the next afternoon's starting point.

WORKING SET

The graveyard turns into a working set

Last quarter's launch staging, the abandoned payments rebuild, the customer-specific demo from Q4 — they all stay alive at zero cost. When somebody asks 'do we still have that environment?' the answer is yes.

use-cases / idle-staging-stops-getting-deleted / ledger

What the CFO used to see, and what they see now

The line items on the AWS invoice for an always-on staging fleet, and what those line items collapse into when idle costs nothing.

OLD INVOICE · ALWAYS-ONbillable per hour
  • ec2 staging-pr-2148 · t3.medium · 720h
  • ec2 staging-customer-acme · m5.large · 720h
  • ec2 staging-payments-rebuild · t3.large · 720h
  • rds staging-db cluster · 720h
  • elb shared-staging-alb · 720h
  • ebs gp3 attached volumes · 1.4 TB
five environments · six line items · one cleanup PR pending forever
NEW INVOICE · IDLE-FREEflat-rate server · idle adds nothing
  • container staging-pr-2148 · idle 22 weeksincluded
  • container staging-customer-acme · idle 4 weeksincluded
  • container staging-payments-rebuild · idle 24 weeksincluded
  • container staging-mobile-v3 · active this weekincluded
  • container staging-launch-prep · idle 1 weekincluded
the active week shows up · the rest cost nothing

The CFO doesn't ask about the three idle environments because they don't appear. The conversation about deleting them never starts.

use-cases / idle-staging-stops-getting-deleted / numbers

What the container row actually guarantees

Numbers come from the Hoody Containers API and the snapshot model — not from invented benchmarks.

  1. PER IDLE MONTH$0

    An idle container adds no per-hour charge. You pay for the bare metal server — flat-rate. KSM and BTRFS dedup mean idle containers fold into the server you already rent.

  2. DISK FOOTPRINTdelta

    Snapshots are content-addressed and stored as deltas. The base image is shared across every container that descended from it. Storage is included in the flat-rate server price — no separate per-delta charge.

  3. BACK FROM IDLEwake

    GET /api/v1/containers/[id] resolves the suspended container. The first request that touches its proxy domain wakes it; the state it had when you stopped watching is the state that returns.

Per the Hoody Containers API: containers persist as rows with snapshot_count and last_used_snapshot fields. Snapshot retention defaults to your project's policy; expires_at is configurable per snapshot.

use-cases / idle-staging-stops-getting-deleted / punchline

Staging gets to live, because letting it live no longer costs anything.

before · the always-on billafter · the idle row
WHAT THE CFO USED TO SEE$420/mo · 5× ec2 · 5× ebs · idle still billedtwo environments deleted last quarter to make the chart smaller
WHAT THEY SEE NOWGET containers/staging-pr-2148 · idle 90d · still hereno cron job, no cleanup PR, no 'we'll need this back someday' graveyard
use-cases / idle-staging-stops-getting-deleted / replaces

What this replaces

The standard always-on staging stack — and the cron jobs and tribal knowledge that grow up around it. Each one charges by the hour. Hoody bills the server, flat-rate; for staging environments that sit idle most of the time, the marginal cost is structurally nothing.

  • AWS EC2 staging instancesAlways billed, even at 03:00 on a Sunday with nobody logged in
  • Heroku staging dynosSleep mode loses session state and adds a cold-start tax on wake
  • Render staging servicesPer-service monthly fee whether the URL was hit once or a thousand times
  • custom 'staging-down' cron jobsA Lambda that deletes any environment idle > N days, plus the slack channel where people ask why theirs is gone
  • the 'we deleted staging' tech debtA Notion page of environments that 'might be useful again' but were nuked to flatten the chart
  • shared 'staging' that everyone fights overOne environment for ten reviewers because three felt expensive — the daily standup tax of stepping on each other's branches
use-cases / idle-staging-stops-getting-deleted / cta

Stop deleting environments to save money. The graveyard is now a working set.

use-cases / idle-staging-stops-getting-deleted / related

Read the others