lathe docs

Fly.io Postgres alternative

Fly.io Managed Postgres, or one machine at a flat price.

Fly.io's Managed Postgres is a highly available cluster: more than one node, automatic failover, backups and pooling, priced by plan plus provisioned storage. Lathe makes the opposite trade: one dedicated machine, no standby, and a flat price with the storage and 20 TB of traffic in it. Which is right depends on whether your app needs a standby to take over when a machine fails.

Where the two differ.

Fly.io: a cluster, priced by plan and storage
Managed Postgres plans start at $38 a month for Basic (shared-2x, 1 GB of memory) and $72 for Starter (shared-2x, 2 GB), and every plan includes high availability, backups and connection pooling. Storage is $0.28 per provisioned GB a month on top, up to 1 TB per cluster.
Lathe: one machine, one number
The entry plan is $15 a month for 1 vCPU, 2 GB of memory and 20 GB of NVMe storage, and every plan includes 20 TB of traffic a month. Every engine you switch on runs on it for the same price.
Version and updates
Fly.io's documentation lists the extensions of the Postgres 16 distribution, and security patches and version upgrades as still under development. Lathe runs PostgreSQL 17, the upstream build, with minor versions and security updates applied in a fixed weekly window (Sundays 03:00 UTC).
Pooling and extensions
PgBouncer on port 6432 for many short connections, direct Postgres on 5432 for migrations and sessions. pgvector, pg_stat_statements, pg_trgm and pgcrypto from the start, more from the allowed list per database.
What you give up
High availability. Fly.io keeps a standby that takes over when a node fails; a Lathe instance is one machine, restored from its daily backup if the machine itself is lost. Fly.io's private network to your other Fly apps is also something Lathe does not have: connect over TLS instead.
When to stay
If your app runs on Fly.io and a standby taking over matters more than the bill, the cluster is worth its price. If you are paying for failover you do not need, one machine is the simpler deal.

Good for

  • A small production database that does not need a standby
  • A project paying cluster prices for a database a single machine can hold
  • Moving to PostgreSQL 17 while you are moving anyway
  • Putting the app, its cache and its database on one bill

Questions

How do I move from Fly.io Managed Postgres?

pg_dump against the cluster's connection string, pg_restore --no-owner --no-privileges into the Lathe instance's direct port, then change DATABASE_URL in your app. Use the pooled port 6432 where you used a pooled connection before.

Can my app stay on Fly.io?

Yes. It connects over TLS like any client, with the connection string in its secrets. Choose a Lathe location near the app's region, since every query crosses the distance between them.

Is one machine safe for production?

For many small products, yes: backups run daily, 7 kept, and the latest one is restored and checked every month. If restoring from a backup after a hardware failure would be unacceptable for your app, you want the cluster.

Are the Fly.io numbers on this page current?

They were checked against Fly.io's pricing page and Managed Postgres documentation on September 23, 2026. Check them again before quoting them - pricing pages change.

Every number on this page comes from the pricing page's facts.

One Postgres machine, from $15 a month.

Live about 5 minutes on average after checkout. Cancel any time; Mini starts with a 14-day free trial.

Start free - 14 days, no card needed