The default for production should usually be managed
Self-hosting Postgres is real work: backups, monitoring, version upgrades, patching, replication, failover. Managed providers handle all of that for a relatively modest premium. For most teams, the right starting point is managed; self-host only when you have a measured reason.
The major options
- Supabase — managed Postgres + Auth + Storage + Realtime + edge functions. Generous free tier; opinionated platform-style approach. Great fit for solo and small-team SaaS.
- Neon — serverless Postgres with branching (each git branch can have its own DB). Pay for what you use. Strong for ephemeral preview environments.
- RDS / Aurora (AWS) — the enterprise default. Lots of knobs, predictable pricing, strong at scale.
- AlloyDB (GCP), Azure Flexible Server — cloud-native equivalents.
- Railway, Render, Fly.io — developer-experience focused; great for indie projects.
Things to compare
Free tier (for prototyping), backup automation, point-in-time recovery, supported extensions (pgvector? Anything more exotic?), connection pooling included, scale-up path, region availability, support story.