Why We Don't Offer a Free Database, and What We Built Instead
The most common question we get after "is the free tier really free?" is "why is there no free database?". Fair question. We give away containers, and a container without a database is half an app. The answer is about what can sleep and what cannot, and it is worth explaining, because it also explains why every free database you will find comes with a clock or a pause button.
Why a container can be free
A free container on SnapDeploy sleeps after 15 minutes without traffic, and the free tier is capped at 100 container-hours a month. Most free containers are awake for a few hours a month: they serve a demo, a portfolio, a side project someone opens now and then. The rest of the time they use nothing. Sleeping is the whole trick. It is what lets a free tier exist without an expiry date or a card, because a container nobody is looking at is not consuming anything.
Why a database cannot
A database cannot sleep the way a web container can. If Postgres is stopped when a request arrives, the app that depends on it fails: connection refused, then a pool of dead connections, then a timeout page shown to the visitor. So a database has to run around the clock, and it needs persistent storage that survives restarts, backups that run whether or not you visited this week, and someone to answer when the connection string stops working. None of that stops when the project is abandoned after a weekend. A free database is a promise to keep something running forever for every account that ever clicked "create", and we would rather not make a promise we would have to quietly break later.
How the others make "free database" work
Every free database we know of solves the same problem with one of three tricks. None of them is dishonest; they are just worth knowing before you build on one.
| Trick | Who | What it means for you |
|---|---|---|
| Expiry | Render: free Postgres expires 30 days after creation, with a 14-day grace period | Fine for a demo; a calendar reminder for anything else. |
| Pause when idle | Supabase: projects pause after 7 days without activity; Neon: compute suspends when idle and resumes on the next query, within 100 compute-hours a month | The first request after a pause is slow or fails; your app needs retry logic. |
| Shared, capped instance | MongoDB Atlas M0: 512 MB on a shared cluster, no expiry | Genuinely free for small data; throttled throughput and no dedicated resources. |
Neon and Atlas are good choices for a hobby app and we say so in our own guides. Their economics work because they built engines that can pause or share at a scale we do not operate at. We are a container host; we run stock PostgreSQL, MySQL, MariaDB and MongoDB on dedicated instances next to your containers, and a dedicated instance does not pause.
What we did instead
- A $1 trial that is the real thing. The DB Sprint Pack is 12 hours of a full Mini-tier instance (PostgreSQL 16, MySQL 8, MariaDB 11, MongoDB 7, Redis 7 or RabbitMQ 3) for $1, with persistent storage, daily backups and 50 connections. Not a throttled sandbox: the same instance you would pay for monthly, for long enough to find out whether it fits. Data is kept for 24 hours after the trial ends, and converting to a monthly plan re-attaches the same volume, so nothing is migrated.
- Plain monthly prices. Mini is $29/month for the SQL engines and MongoDB, $12 for Redis, $14 for RabbitMQ, with the admin tools (pgweb, phpMyAdmin, mongo-express) and daily backups included. The prices are on one page, they do not change with usage, and they are the same for everyone.
- No lock-in on the free side. A free container talks to Neon, Supabase, Atlas or any other database over a normal connection string. We would rather you use a good free external database than a bad free internal one.
What the $1 trial is for, in practice
- A demo or a hackathon. Twelve hours covers a pitch, a workshop or a weekend build day, with a real Postgres instead of a SQLite file that vanishes on the next deploy.
- Testing a migration. Restore a dump into a Mini for a dollar, run the app against it, and know whether the schema and the connection limits fit before you commit to a month.
- Trying an engine you have not used. The same dollar buys MongoDB, MariaDB, Redis or RabbitMQ at the same size, with the browser admin tool attached, so the comparison is between engines, not between pricing pages.
What it is not for is production. The 12 hours end, the instance stops, and after the 24-hour grace period the volume is gone unless you converted. That limit is the point: it is what lets the trial be real rather than throttled.
The same logic for Redis and RabbitMQ
People sometimes ask why the cache is not free either, since Redis is "just memory". It is a process that has to be up at 3 a.m. when your container wakes and asks for a session, and a cache that sleeps is a cache that is empty when you need it. Redis Mini is $12/month and RabbitMQ Mini $14/month for the same reason the databases are $29: they run whether or not you do. For an app that is idle most of the time, a serverless provider such as Upstash, which charges per command and has a free plan, is the better fit, and we say so in our Redis guide.
Would we ever add one?
Maybe, in the pause-when-idle form, if we build the engine work that makes it safe: a layer that holds connections while an instance resumes, so applications see a slow query rather than an error. That is a real project, not a pricing switch. Until then, the honest answer to "why no free database" is that a database cannot sleep, and free things on this platform are free because they can.
Current prices for every add-on are on the add-on pricing page; the compute free tier (4 containers, 100 container-hours a month, no card) is on the free tier docs page. Render, Supabase, Neon and Atlas limits are as published on their pages in September 2026.