Turso logo

Turso

A hosted SQLite platform billed by rows read and written, built for running many small databases.

$4.99/mo (Developer)Free tier

What it actually does

Turso hosts SQLite (via its libSQL fork) as a managed service and bills primarily by rows read and rows written rather than by compute time. It is designed to run thousands of small databases, which makes a database-per-customer pattern practical.

For a solo founder it is the cheapest paid entry in this category at $4.99/mo, and the free tier's 5 GB of storage and 500M monthly row reads suit read-heavy apps like content sites. Embedded replicas let you keep a local copy at the edge for low-latency reads.

The limits are the SQLite dialect and the billing asymmetry. There are no Postgres extensions or stored procedures, and auth, file storage, and functions all need separate services. Reads bill per billion but writes bill per million, so write-heavy workloads such as analytics or logging get expensive, and a missing index that forces a full-table scan directly inflates the read count.

Turso vs its main rivals

The tools people actually weigh against Turso: Cloudflare D1, Neon, PlanetScale. Same criteria for every column, including where Turso loses.

Turso logoTursoCloudflare D1 logoCloudflare D1Neon logoNeonPlanetScale logoPlanetScale
Pricing & access
Free tierUnknown5 GB, 500M readsUnknown5 GB, 150M readsUnknown100 CU-hUnknownNone
Starting price$4.99/mo$5/mo Workers$0.106/CU-h$5/mo
Billing modelPer rowPer rowPer CU-hPer node
Database engine
SQLite / libSQLYesYesYesYesNoPostgresNoPG/MySQL
Extensions / stored proceduresNoNoNoNoYesYesYesYes
Scaling & limits
Database-per-tenant at scaleYesUnlimitedUnknownCappedUnknownPer-projectNoNo
Embedded / edge replicasYesYesYesEdgeNoNoUnknownReplicas
Free storage5 GB5 GB0.5 GBNone
Bundled services
Bundled authNoNoNoNoUnknownBetaNoNo
Developer & API
CLIFreeFreeFreeFree
Portability
Self-host / open sourceYeslibSQL OSSNoNoYesYesNoNo
Worth it for
  • Cheapest paid entry in the category at $4.99/mo, and the free tier's 5 GB storage is unusually large
  • Database-per-user patterns are practical: 100 free databases, unlimited on paid plans
  • Row-based billing is predictable for read-heavy apps, with 500M free row reads on the free tier
Watch out for
  • Writes bill per million rows while reads bill per billion, so write-heavy workloads like analytics get expensive fast
  • SQLite dialect means no Postgres extensions and no stored procedures
  • A missing index that forces a full-table scan inflates the row-read count directly

Pay less for it

5 ways found
Free tier is large

5 GB storage and 500M monthly row reads cover a lot of read-heavy traffic before you pay anything

Index everything read-heavy

Proper indexes stop full-table scans that would otherwise multiply your billed row reads

Self-host libSQL

libSQL is open source, so you can run it on your own server and drop the hosted bill entirely

Start on Developer, not Scaler

At $4.99/mo Developer covers most early apps; the next tier jumps to $24.92/mo

Cheaper swap

Cloudflare D1If your app already runs on Cloudflare Workers, D1 folds SQLite into the $5 Workers plan with no separate database bill

See this for your whole stack, with your real numbers

StackTracker tracks what you actually pay for Turso and every other tool, flags overpayment, and shows the dollars you would save by switching.

See plans

Is it the right tool for you

Pick it if
  • Your app is read-heavy, like a content site or catalog
  • You want a database-per-customer architecture without per-database cost
  • You want the lowest possible monthly bill and are comfortable with SQLite
Skip it if
  • Your workload is write-heavy, such as analytics or logging → use Neon
  • You need Postgres extensions or stored procedures → use PlanetScale

Track what Turso and the rest of your stack cost

StackTracker adds up every subscription, plus your hours, so you see the real number.

Prices and limits last verified 2026-07-20.