One home, not another meter.
The billing records and production incident that led me from metered managed platforms and fragmented AWS infrastructure to one consolidated Hetzner operating surface.
I did not move because managed platforms failed at being managed platforms. I moved because their billing and limits turned ordinary development activity into operational risk for the way I build.
In April, one Vercel receipt reached $137.06. In July, customcapbd.com crossed a Supabase cached-egress allowance and its production requests were restricted. Meanwhile, an AWS stack forecast $213.76 for the month. The causes were different, but the pattern was the same: I was renting separate meters for work I wanted to operate as one system.
19 APR 2026
Shipping code became a billable event.
During this period I was pushing frequently. Production pushes triggered automatic builds, and the receipt made build activity—not application traffic—the dominant charge.
Unexpected did not mean unexplained once the bill arrived. It meant ordinary development cadence had become another usage meter I needed to watch.

The receipt records 1,070 build minutes at $115.14. The complete paid total was $137.06.

The following receipt separately records build CPU minutes and build minutes inside a $48.44 total.
- Build minutes
- 1,070
- $115.14 on the April receipt
- Paid total
- $137.06
- Receipt paid 19 April 2026
- Following total
- $48.44
- Build CPU and build minutes both present
11 JUL 2026
A quota became a production event.
customcapbd.com crossed the cached-egress allowance. Supabase restricted production services and requests returned HTTP 402 until the plan was upgraded or the billing cycle reset on 26 July.
The database was not deleted: dashboard database access remained available. But the production path was blocked. I paid $21 for the immediate upgrade instead of leaving the business stalled, and the interruption broke my momentum on the artwork/KAI build.

The production screen records 29.269 GB of cached egress against 5 GB and states that project requests respond with HTTP 402 while restricted.
- Cached egress
- 29.269 GB
- 5 GB fair-use allowance
- Allowance used
- 585%
- Recorded on the usage screen
- Production response
- HTTP 402
- Requests restricted until upgrade or reset
- Immediate recovery
- $21
- Owner-paid upgrade instead of waiting for 26 July
The separate free-project inactivity pause shown in the private source folder is not part of this incident and is intentionally excluded from this record.

The owner-captured summary records $188.70 month to date and a $213.76 month-end forecast. Resource identifiers and topology were removed.
12 AUG 2026
The AWS bill was a stack of responsibilities.
AWS solved each infrastructure concern with a capable service. The operating problem was accumulation: compute, container tasks, ingress, managed data, networking and support each introduced another meter and another surface to understand.
- EC2 compute + overhead
- $90.24
- Fargate + load balancing
- $31.75
- RDS + ElastiCache
- $23.60
- Support + VPC
- $41.20
These grouped lines describe the owner-captured month, not current AWS list prices or a claim that every AWS architecture costs the same.
NOW
One machine changed the unit of cost.
$70–$80
One monthly server bill
The consolidated Hetzner machine now carries the server work together. Inside its physical capacity, shipping another build, adding another backend, or moving data between local services does not create another provider usage line.
- DeliveryCoolify deployments, domains, health checks and rollbacks
- DataPostgres, Redis, vector search and application storage
- BackendsNode, Rust and Python services on shared compute
- Background workCRON, workers, queues, scraping and browser systems
- AI infrastructureAgents, gateways and supporting model services
“Unlimited” here means there is no internal per-build, per-backend or per-database meter. It does not mean infinite compute, storage, bandwidth or resilience; the physical machine is the boundary.
Control moves responsibility, too.
- Patch and harden the host and every exposed service.
- Maintain backups, test restores and keep a recovery path outside the machine.
- Monitor capacity, health, storage and network behavior before users feel it.
- Design for one larger failure domain instead of pretending consolidation removes failure.
Specialist services still earn their place.
A server does not become an identity provider, an email-delivery network or an observability product merely because it has spare capacity.
- Clerk
- Identity, MFA and organisations
- Resend
- Transactional email delivery
- Sentry
- Errors, tracing and uptime
The lesson was not “self-host everything.”
The lesson was not “self-host everything.” It was to stop paying unrelated meters for workloads that naturally belonged together, while keeping specialist services where they still earn their place.