Self-Hosting Postgres in 2026: A Practical Checklist
Managed Postgres is wonderful — until the bill arrives. Here's what we learned moving 200 GB back to a self-hosted instance.
For most teams, managed Postgres (RDS, Neon, Supabase) is the right answer. Until it isn't. We crossed that line at around 200 GB and four-figure monthly bills.
The checklist that worked for us
- Backups before anything else. Daily
pg_basebackup+ WAL archiving to S3, restored monthly to verify. - Connection pooling. PgBouncer in transaction mode, sized to your real concurrent load (not the headline).
- Observability.
pg_stat_statements, plus a Grafana dashboard for slow queries, replication lag, and bloat. - Failover plan. Even if you start with one node, write down the recovery procedure now.
- Encryption. At rest (LUKS) and in transit (TLS only).
Six months in: same uptime, half the cost, and fewer surprises in the monthly invoice. Your mileage will vary — but if you're spending more on managed than on engineers, it's time to do the math.
Related articles.
- IT
Why React Server Components Are More Than Just Hype
After two years in production, RSC has matured. Here's what actually changed about how we build apps — and where the rough edges remain.
- IT
The Quiet Power of TypeScript: Branded Types for Safer APIs
Branded types are the cheapest, least-known TypeScript trick that catches an entire class of bugs at compile time.
- IT
Edge Runtime vs Node.js: When the Hype Doesn't Match the Bill
Edge functions are fast — until your code hits a database. A pragmatic look at where edge wins and where it quietly loses.