Hobbyist
comparison

What you give up, and what you get back

Hobbyist is not a business and has nothing to sell you, which means this page has no reason to be an advertisement. Rows it loses stay in the table and say so. Every price is dated, and every assumption behind a scenario is printed next to it rather than in a footnote.

The short version

If you have ten mostly-idle side projects, Neon's free tier and Cloudflare's free tier both cost nothing and are genuinely good. That is the honest starting point, and no scenario below is rigged to hide it.

Hobbyist is worth running when you want the box to be yours, when your projects outgrow a free tier, when you want a Postgres and an app and a worker and a queue in one namespace on one machine, or when you would simply rather not be a row in somebody's usage table. It is also v0-alpha, and that is the row at the bottom of the parity table.

parity

Feature by feature

 HobbyistCloudflareNeonSupabaseFly.io
Postgresyes1noyesyesyes
Scale to zeroyesn/a2yespartial3yes
Wake on connectyes4n/a2yesno3partial5
Runs on hardware you ownyesnonopartial6no
Self-hosted, and still sleepsyes7nonono6no
Database branchingno8partialyesyesno
Dashboard / studiopartial9yesyesyesyes
HTTP apps from a Dockerfileyes10partialnonoyes
Workers / edge functionsyes11yespartialyespartial
Durable Objectsyes12yesnonono
Queuespartial13yesnopartialno
Object storageno14yesyesyespartial
Backups you can restorepartial15yesyesyesyes
Point in time recoveryno16partialyesyespartial
Custom domains and TLSpartial17yesn/ayesyes
MCP tools for agentsyes18yesyesyesno
Multi-regionno19yesyesyesyes
Auth as a serviceno19yesyesyesno
Realtime subscriptionsno19yesnoyesno
Walk away with your datayes20partialyesyesyes
Production ready todayno21yesyesyesyes
  1. Postgres 18, unmodified, on a plain data directory. The reliable part of the project.
  2. Cloudflare has no managed Postgres. D1 is SQLite and Workers are request scoped, so scale to zero is not a feature it has, it is how the platform works.
  3. Free tier projects are paused after a week of inactivity, and resuming is manual. That is pausing, not sleeping, and it is capped at two active projects.
  4. A proxy speaking the Postgres wire protocol holds the connection open, starts the container, waits for real readiness, then finishes the handshake. Measured p50 170ms.
  5. Fly Machines auto stop and auto start. It is closest to the same idea, on machines rather than on a database connection.
  6. Self-hosted Supabase is a large multi-container stack that never sleeps. You can own the hardware, and it will run at full cost whether or not anything is using it.
  7. This is the wedge, and the reason the project exists.
  8. Copy-on-write branching is Phase 1.5. The cloneTree primitive it needs is written. The feature is not.
  9. Studio browses tables, runs SQL and reads schema. It is v0-alpha, network exposed by design, and best kept behind a tunnel.
  10. Any Dockerfile. hobby deploy detects the kind from the directory contents.
  11. workerd, through Miniflare, which is a documented development tool being run as a server. The tradeoff and its fallback are recorded in ADR 0011.
  12. Including alarms that fire for an object whose container is stopped, verified against real Docker.
  13. Consuming works, and a message wakes a sleeping consumer. Producing from inside a container is broken on Linux.
  14. S3-compatible storage is Phase 3.
  15. Whole-project snapshots are implemented and tested in the daemon and reachable from no command or route. pg_dump and hobby eject both work today.
  16. Cut deliberately rather than deferred. PITR means WAL archiving, a retention policy and a restore path that needs its own testing discipline. ADR 0016.
  17. Caddy is wired and off by default. Certificates are not persisted across a container replacement, which matters against rate limits.
  18. Fourteen tools over the daemon API. Creating an app or worker from an agent is not wired yet.
  19. Explicitly out of scope. Adding it needs a decision record arguing the case, and the reason is that scope, not competition, is what kills this project.
  20. hobby eject hands you a docker-compose.yml and the data directory, and hobby eject --release stops it managing them.
  21. It is v0-alpha. This row is the one that matters most right now.
what a box costs

Hobbyist costs whatever the machine costs

There is no licence, no per-project fee and no usage metering, so the entire price of running it is the price of the box. Requires Ubuntu, Debian, or macOS, and Docker.

BasisSpecificationCost
Home server, hardware you already own
Electricity only. At 15W average and $0.20/kWh that is $2.19 a month.
An old laptop or desktop under a desk~$1 to $4 / mo
Mac mini M4, bought for this
Hardware over three years is $16.64, plus about $0.70 of electricity. Apple rates it at 4W idle and 65W maximum.
10-core, 16 GB, 256 GB, $599~$17.50 / mo
Cheap VPS
The tier the cold start budget is written against, and the one that has never been measured.
DigitalOcean basic, 1 vCPU, 1 GiB, 25 GiB SSD$6.00 / mo
Hetzner cloud
The best price to performance in this list, and the machine most of this audience actually buys.
CX23, 2 vCPU, 4 GB, 40 GB NVMe, 20 TB traffic€2.99 / mo
Hetzner dedicated
Where a self-hosted box stops being a compromise. 64 GB of ECC memory runs a great many sleeping databases.
AX42, Ryzen 7 PRO 8700GE, 64 GB DDR5 ECC, 2 x 1.92 TB NVMe€46 / mo + €39 setup

Assumptions in that table

  • Electricity at $0.20 per kWh. Yours will differ, and it is the figure to change first.
  • Bought hardware amortised over three years, at which point it is still working.
  • Bandwidth is not counted: every option here includes far more than a hobby project uses.
  • A domain is not counted either. A `.sh` runs roughly $30 the first year and $45 to renew.

All hardware prices checked 2026-08-21.

what the platforms charge

The rates the scenarios are built from

PlatformFree tierFirst paid tier
Neon0.5 GB storage and 100 CU-hours per project, up to 100 projects. Scales to zero after 5 minutes. Hitting a monthly limit suspends compute until the next billing monthLaunch: pay for use with no stated monthly minimum. $0.106 per CU-hour, $0.35 per GB-month. Scale: $0.222 per CU-hour
Supabase500 MB database, 5 GB egress, two active projects, and projects are paused after a week of inactivityPro from $25 per month, 8 GB disk per project then $0.125 per GB, 250 GB egress then $0.09 per GB, $10 of compute credits. Never pauses
Fly.ioNo free tier for machinesshared-cpu-1x with 1 GB is $5.92 per month in Amsterdam. Volumes $0.15 per GB-month, snapshots $0.08 per GB-month with the first 10 GB free, egress $0.02 per GB in North America and Europe
CloudflareWorkers 100,000 requests a day at 10ms CPU each. D1 5 GB storage. R2 10 GB-month. Durable Objects 100,000 requests a day. Queues 10,000 operations a day$5 per month minimum. 10M requests and 30M CPU-milliseconds included. R2 $0.015 per GB-month. Queues $0.40 per million operations
HobbyistNot applicable. There is no tier, no metering and no accountThe price of the box, above

Platform prices read from each vendor's own pricing page on 2026-08-21. Fly.io Managed Postgres is priced separately and is not quoted here, because its pricing page was not reachable at the time of checking. Prices change; this page does not update itself.

worked examples

Two scenarios, with the assumptions in the open

Ten small side projects, mostly idle

Assumed

  • Ten projects, each one Postgres database, about 200 MB of data.
  • Each is genuinely used about an hour a day, and idle the rest of the time.
  • Negligible bandwidth. No custom domains.
OptionMonthlyWhy
Neon, free$0Ten projects fit well inside 100. About 30 CU-hours each against a 100 CU-hour allowance, and 200 MB against 500 MB. This genuinely costs nothing
Cloudflare, free$0Also nothing, but it is D1 and Workers rather than Postgres, so it is a different application, not a cheaper one
Hobbyist on a Hetzner CX23€2.99All ten on one box. Nine are asleep at any moment, which is the only reason they fit in 4 GB
Hobbyist on hardware you own~$2.19Electricity
Fly.io~$1.50+Machines auto stop, so idle time is cheap, but ten 1 GB volumes still bill at $0.15 per GB-month. Managed Postgres would add its own line
Supabase~$115The free tier allows two active projects and pauses them after a week, so ten needs Pro: $25 plus ten Micro instances at about $10 each, less the $10 credit

Hobbyist does not win this one on price, and pretending otherwise would be the kind of comparison this project has no reason to publish. It wins on whose machine it is.

Ten real projects: a database, an app and a worker each

Assumed

  • Ten projects. Each has a Postgres with 5 GB of data, an HTTP app, and a worker.
  • Each is used a few hours a day. 50 GB of database storage in total.
  • Custom domains on the ones that face the world.
OptionMonthlyWhy
Hobbyist on a Hetzner AX42€4664 GB of ECC memory and 3.8 TB of NVMe. Thirty resources on one box, most of them asleep at any moment. One price, and it does not move when you add the eleventh project
Hobbyist on a Hetzner CX23€2.99Plausible if usage really is spread out, uncomfortable if several wake at once. 4 GB is the constraint, not the disk
Neon, Launch~$17.50 + compute50 GB at $0.35 per GB-month is $17.50 before a single CU-hour. Databases only: the apps and workers live somewhere else and cost something else
Supabase, Pro~$115+$25 plus compute per project, plus disk beyond the 8 GB included per project
Fly.io~$60+Twenty machines at $5.92 if they were always on, less with auto stop, plus 50 GB of volumes at $7.50, plus Managed Postgres

The shape that matters is not the number, it is the slope. A box is a fixed price and a platform is a function of what you use. Below some usage the platform is free and the box is a waste. Above it, the box stops moving and the platform does not.

do not use this

When Hobbyist is the wrong answer

  • anything payingIt is v0-alpha with no warranty, written by one person. If someone is paying you for uptime, buy uptime from someone who sells it.
  • other people's dataEvery tenant here is assumed to be the same person. There is no isolation between projects beyond what Docker gives you, and hardening that is deliberately out of scope.
  • you need PITRPoint in time recovery was cut rather than deferred. Snapshots are written and not yet reachable. Today, backup means pg_dump.
  • multi-region, or high availabilityOne box. If a feature needs a cluster it is out of scope, and that is a permanent answer rather than a roadmap item.
  • you want auth, realtime, or edgeAll three are explicitly out of scope. Supabase and Cloudflare are good at them and this will never compete there.

The full status page is more detailed and is the thing to read before installing anything.