SQLite is enough (and that’s the point)

The database anxiety industrial complex

Somewhere along the way, “real websites” got defined as: app server + MySQL + Redis + a queue + a CDN config you pretend you understand. That’s a fine stack for a product with a hundred engineers. It’s theater for a brochure site, a personal blog, or a small business that just needs to ship.

SQLite is a different bet: one file on disk, ACID transactions, absurdly battle-tested, and boring in the best way.

What you actually get

Portability — copy forma.db, you’ve copied the CMS state

Speed on cheap hosts — no connection pool ritual

Simpler backups — zip the file (or better: a versioned site package)

Fewer failure modes — no “database server went away” at 2am

What you give up (honestly)

Concurrent write-heavy apps with dozens of editors will eventually want a bigger store. Fine. Most Forma sites are one admin, writing pages and posts. SQLite is built for that shape.

The Forma take

Forma keeps content in one SQLite file on purpose. Not because MySQL is evil — because moving a site should feel like moving a folder, not negotiating with a DBA you don’t have.

If your CMS needs a second VM before you’ve published three pages, the CMS is the problem.