Turso vs Supabase: pricing, billing model and which to choose

Turso (SQLite-compatible, billed per row) and Supabase (PostgreSQL, billed per plan and compute) compared with their October 2026 prices and three calculated workloads.

In this article
In 30 seconds

They do not charge the same way: Turso bills rows read and written, Supabase bills plan, compute and disk; for a 12 GB workload with 4,000 million reads, Turso Scaler costs $24.92 and Supabase Pro about $25.50.

1. Two different models, not two comparable prices#

Turso and Supabase solve the managed database problem with different ideas. Turso offers SQLite-compatible databases and charges per rows read and written plus storage. Supabase offers PostgreSQL with authentication, files and functions, and charges a monthly plan plus project compute, disk and egress.

AspectTursoSupabase
EngineSQLite-compatiblePostgreSQL
How it chargesMonthly plan plus rows read and written and storageMonthly plan plus project compute, disk and egress
Unit that grows with your useRows read and writtenInstance size, disk and egress
Several databases100 on Free; unlimited on paid plansOne project per database; Free allows 2 active
Also includesLightweight databases and reads close to the userAuthentication, file storage and functions
RestorePITR of 1 to 90 days depending on the planDaily backups on Pro; PITR as a paid add-on

That is why comparing only the entry price misleads: what matters is what grows with your usage. The table summarizes the model differences; the prices are those on each provider's official pages, read on October 17, 2026.

Go deeperSupabase Free vs Pro: differences, limits and when to upgrade

Documentation: Turso: pricing ↗ · Supabase: pricing and plans ↗

2. Turso's plans#

Turso has four plans with included quotas and an overage price per unit. Paid plans allow an unlimited number of databases. Prices are in dollars per month.

PlanPriceDatabasesStorageRows readRows writtenRestore (PITR)
Free$01005 GB500 million10 million1 day
Developer$4.99 a monthUnlimited9 GB (+$0.75/GB)2.5 billion (+$1 per billion)25 million (+$1 per million)10 days
Scaler$24.92 a monthUnlimited24 GB (+$0.50/GB)100 billion (+$0.80 per billion)100 million (+$0.80 per million)30 days
Pro$416.58 a monthUnlimited50 GB (+$0.45/GB)250 billion (+$0.75 per billion)250 million (+$0.75 per million)90 days

Supabase prices are in the Supabase pricing guide and in the Free vs Pro comparison. In short: Free costs nothing with 500 MB and 2 active projects; Pro starts at $25 a month with $10 of compute credits and 8 GB included.

Go deeperManaged database prices in 2026: Neon, Supabase, PlanetScale, Turso and Cloudflare D1

Documentation: Turso: pricing ↗

3. Three calculated workloads#

To see how each model behaves, the code calculates the best Turso plan and the Supabase Pro cost for three workloads. It is an estimate: Supabase does not bill per row but its capacity depends on compute, and Turso does not reserve compute. The large example includes $50 extra compute (a Medium instance).

python
TURSO = {  # plan: (base, GB incl., reads incl. in M, writes incl. in M, USD/GB extra, USD per 1,000 M extra reads, USD per M extra writes)
    "Free": (0.00, 5, 500, 10, None, None, None),
    "Developer": (4.99, 9, 2_500, 25, 0.75, 1.00, 1.00),
    "Scaler": (24.92, 24, 100_000, 100, 0.50, 0.80, 0.80),
    "Pro": (416.58, 50, 250_000, 250, 0.45, 0.75, 0.75),
}

def turso_cost(gb, reads_m, writes_m):
    best = None
    for plan, (base, gb_inc, read_inc, write_inc, r_gb, r_read, r_write) in TURSO.items():
        if r_gb is None:  # Free: only if it fits within what is included
            if gb > gb_inc or reads_m > read_inc or writes_m > write_inc:
                continue
            total = base
        else:
            total = (base + max(0, gb - gb_inc) * r_gb
                     + max(0, reads_m - read_inc) / 1_000 * r_read
                     + max(0, writes_m - write_inc) * r_write)
        if best is None or total < best[1]:
            best = (plan, total)
    return best

def supabase_pro_cost(gb, extra_compute=0.0):
    return 25.0 + extra_compute + max(0, gb - 8) * 0.125

workloads = [("Small", 2, 200, 5, 0.0), ("Medium", 12, 4_000, 60, 0.0), ("Large", 40, 30_000, 300, 50.0)]
for name, gb, reads_m, writes_m, extra_compute in workloads:
    plan, total = turso_cost(gb, reads_m, writes_m)
    print(f"{name}: Turso {plan} {total:,.2f} | Supabase Pro {supabase_pro_cost(gb, extra_compute):,.2f}")
Prices from Turso's and Supabase's official pages read on 2026-10-17. Prints Free $0.00 on the small workload, Scaler $24.92 on the medium one and Scaler $192.92 on the large one.
WorkloadStorageReads per monthWrites per monthTurso (best plan)Supabase Pro
Small2 GB200 million5 millionFree · $0$25 (Micro)
Medium12 GB4,000 million60 millionScaler · $24.92$25.50 (Micro)
Large40 GB30,000 million300 millionScaler · $192.92$79 (Medium)

With small workloads, Turso Free costs nothing and Supabase needs Pro because 2 GB exceeds Free's 500 MB. On the medium workload the prices almost coincide. On the large one, Turso's write billing dominates ($160 of the $192.92) while Supabase Pro with Medium compute comes to $79: there, the capacity you need weighs more than the per-row price.

4. Which to choose for your case#

There is no overall winner. The table turns the criteria into decisions.

If your case is…Look first atUsually fits
You need PostgreSQL, extensions or built-in authenticationThe engine and what comes includedSupabase
Many small databases (per customer or per tenant)The database limit and per-row billingTurso
Very high reads with moderate writesThe price per billion rows readTurso
Predictable load and advanced SQLA fixed plan with reserved computeSupabase
Zero-cost prototypeThe free plan's limits for eachEither one; compare 500 MB and 5 GB

Before deciding, estimate your rows read and written per month: it is the figure that changes Turso's cost the most. For Supabase, estimate disk size and compute.

5. If you migrate between them#

Moving from SQLite to PostgreSQL (or the reverse) is not just changing the connection string.

  • Data types: PostgreSQL is strict about types; SQLite is more flexible. Review dates, booleans and large integers.
  • Functions and extensions: anything that depends on PostgreSQL extensions does not exist in SQLite.
  • Concurrency and transactions: locking models differ; test your concurrent writes.
  • Tools and ORM: confirm your ORM supports both dialects and test migrations in a staging environment.

Go deeperPostgreSQL: Find the Right Index with EXPLAIN

Documentation: SQLite: official documentation ↗

6. Keep your numbers current#

Plans and quotas change. The figures in this guide are those on the official pages on October 17, 2026; confirm the conditions before deciding.

  • Note the date you read each rate.
  • Measure your real rows read and written for a month before choosing a Turso plan.
  • Compare more options in Codifly's database comparator.

Sources and scope

Documentation checked on October 17, 2026. Examples and decision criteria are editorial proposals; adapt them to your application's contract and validate them in an authorized test environment.

Compare these options

Compare databases

Review pricing, limits, conditions and sources for each option.

Open comparison
Advice

Is your case different?

Tell us your context and the options you're weighing. We reply with criteria and sources, and never sign you up for anything.

Request advice