Quick verdict
Choose Turso if your data fits SQLite's model and you want reads from a local file inside the app (embedded replicas or Turso Sync), offline-capable clients, or hundreds of small per-user databases at a low price. Choose Neon if you need PostgreSQL itself: its SQL dialect, types, extensions and ecosystem, plus copy-on-write branches with data for every pull request and compute that scales to zero when idle. The engine choice usually decides this before the services do; see SQLite vs PostgreSQL.
Turso offers SQLite-compatible databases in two forms. Turso Database is an in-process engine written in Rust (MIT licence, pre-1.0; v0.8.2 on 6 October 2026) that Turso describes as replacing libSQL, its earlier SQLite fork, as its intended direction. Turso Cloud is the managed service that hosts Turso Database and libSQL databases, with branching, point-in-time recovery and analytics. Apps can query Turso Cloud over the network, or keep a local copy through embedded replicas or Turso Sync.
Neon is serverless PostgreSQL built on separated storage and compute, now part of Databricks and branded Lakebase Postgres. It supports Postgres 14 to 18, autoscales compute, scales to zero after 5 minutes idle, and creates copy-on-write branches that include data. New projects run in AWS regions only. Plans are Free, Launch and Scale.
For backend platforms rather than databases, see Turso vs Supabase and Supabase vs Neon.
Side by side
| Aspect | Turso | Neon |
|---|---|---|
| Engine | SQLite-compatible: Turso Database (Rust, pre-1.0) or libSQL | PostgreSQL 14 to 18 |
| Where queries run | Turso Cloud over the network, or locally from an embedded replica or synced file | Neon compute over the network (TCP, or HTTP/WebSocket via the serverless driver) |
| Idle behaviour | Billed by rows read and written, not compute hours | Scale to zero after 5 minutes idle; billed per CU-hour |
| Branching | A branch is a new, separate database created from an existing one; counts towards the database quota | Copy-on-write branches with schema and data, from now or a past point |
| Point-in-time restore | 1 day on Free, 10 days Developer, 30 days Scaler, 90 days Pro | 6 hours on Free, up to 7 days Launch, up to 30 days Scale |
| Many small databases | 100 databases on Free, unlimited on paid plans | Up to 100 projects on Free, 10 branches per project |
| Concurrency | Turso Database adds BEGIN CONCURRENT (MVCC) beyond SQLite's single writer | Standard Postgres MVCC; pooling up to 10,000 connections |
| Ownership and licence | Turso; engines MIT | Part of Databricks; storage engine Apache-2.0 |
| Main trade-off | Local reads and cheap per-tenant databases, but SQLite semantics and a pre-1.0 engine | Full Postgres with data branching, but network round trips and compute-hour billing |
Key differences
SQLite-compatible versus PostgreSQL
This is the deciding difference. Turso speaks SQLite's dialect and file format, with SQLite's flexible typing and a single database file. Turso Database adds features SQLite lacks, including BEGIN CONCURRENT for concurrent writers under MVCC (one of two conflicting transactions must roll back and retry), change data capture, vector support and experimental Postgres compatibility. Neon is PostgreSQL: its types, JSONB, extensions, roles and the wider Postgres tool ecosystem, with documented differences such as no tablespaces and a neon_superuser role instead of a true superuser.
In our assessment, if your schema or tooling already assumes Postgres, Neon is the natural fit; if your app already uses SQLite, Turso keeps the same model and adds a cloud copy.
Local reads versus network queries
Turso can place the database inside your application. An embedded replica keeps a local file that syncs from a Turso Cloud primary; Turso documents that reads run locally and writes go to the cloud primary, with the writing replica seeing its own writes immediately. Turso Sync, recommended for new projects that need sync, adds local writes with explicit push() and pull(). Both need a filesystem. Turso's older Edge Replicas (copies in many regions) are deprecated for new users.
Neon is always reached over the network. For serverless and edge runtimes it provides a driver that queries over HTTP or WebSockets. Side by side, as shown in each vendor's docs:
// TypeScript, @libsql/client (Turso): remote query with a bound parameter
import { createClient } from "@libsql/client";
const client = createClient({
url: process.env.TURSO_DATABASE_URL,
authToken: process.env.TURSO_AUTH_TOKEN,
});
const result = await client.execute({
sql: "SELECT * FROM users WHERE id = ?",
args: [1],
});
// JavaScript, @neondatabase/serverless (Neon): tagged-template query
import { neon } from "@neondatabase/serverless";
const sql = neon(process.env.DATABASE_URL);
const postId = 12;
const posts = await sql`SELECT * FROM posts WHERE id = ${postId}`; Branching and restore
Neon's branches are its signature feature: copy-on-write clones with schema and data, created from the current state or a past point inside the restore window, without loading the parent. That suits a database per pull request or preview environment.
Turso branching creates a new database from an existing one (turso db create my-new-database-branch --from-db my-existing-database). The docs note the branch is completely separate, schema changes must be merged by hand, it needs its own token, and it counts towards your plan's database quota. Turso's point-in-time history is longer on its higher plans (up to 90 days on Pro) and Turso Cloud can recover deleted databases for up to five days.
Billing models
Turso charges a plan fee and meters rows read, rows written, storage and sync volume; there are no compute hours. Neon meters compute in CU-hours (one CU is about 4 GB of RAM with associated CPU) and storage in GB-months, and charges nothing for compute while a database has scaled to zero. For a read-heavy app with many tiny tenants, Turso's row-based model may be simpler to predict; for a single larger Postgres database with bursts of activity, Neon's compute-hour model applies. Neither vendor publishes a worked example we can quote, so model your own workload.
Pricing and licensing
Turso. Listed on the Turso pricing page in October 2026, in USD. Free: 0 USD, 100 databases, 5 GB storage, 500 million rows read and 10 million rows written per month, 3 GB of syncs, 1 day of history. Developer: 4.99 USD per month (a saving is shown for yearly billing), unlimited databases, 9 GB storage then 0.75 USD per GB, 2.5 billion rows read then 1 USD per billion, 25 million rows written then 1 USD per million, 10 days of history. Scaler: listed at 24.92 USD per month, 24 GB storage, 30 days of history. Pro: listed at 416.58 USD per month, 50 GB storage, 90 days of history. Enterprise: custom.
Neon. Listed on the Neon pricing page and plans documentation in October 2026, in USD. Free: 0 USD, up to 100 projects, 100 CU-hours per project per month, 1 GB storage per project, 10 branches per project, 6 hours of restore history. Launch: 0.106 USD per CU-hour, autoscaling up to 16 CU, up to 7 days of history. Scale: 0.222 USD per CU-hour, fixed computes up to 56 CU, up to 30 days of history. Storage on paid plans is 0.35 USD per GB-month; Neon states there is no monthly minimum on Launch and Scale.
Pricing checked on the vendors' official pages on 7 October 2026. Prices change; confirm before buying.
Where each one leads
Turso strengths
- Local reads from an embedded replica or synced file inside the app
- Many databases per account for per-user or per-tenant designs
- Row-based billing with no compute hours, and a low-cost entry plan
- MIT-licensed engines you can also run fully embedded without the cloud
- Long point-in-time history on higher plans (up to 90 days)
Neon strengths
- Full PostgreSQL 14 to 18 with extensions and the Postgres ecosystem
- Copy-on-write branches that include data, from now or a past point
- Scale to zero and autoscaling, billed per CU-hour
- Serverless driver for HTTP and WebSocket queries from edge runtimes
Limitations
Turso limitations
- SQLite semantics; not a drop-in for Postgres applications
- Turso Database is pre-1.0 and libSQL now gets maintenance rather than new features
- Branches are separate databases that count towards the quota, with manual merging
- Edge Replicas are deprecated for new users; local copies need a filesystem
Neon limitations
- Every query is a network round trip; no embedded or offline copy
- A database that has scaled to zero must start compute again on the next connection
- Free restore history is only 6 hours
- Now owned by Databricks, and new projects are AWS only
When to choose each
Choose Turso if
- Your app already uses SQLite and needs a managed cloud copy
- You want reads served from a local file, or offline-capable clients that sync
- You need hundreds or thousands of small isolated databases
- Read-heavy workloads where row-based billing is easy to predict
Choose Neon if
- You need PostgreSQL features, extensions or tools
- You want a database branch with real data for every pull request
- Your database is idle much of the time and should scale to zero
- You may later move to RDS, Aurora or any other Postgres host
When neither is right
- You deploy on Cloudflare Workers and want a SQLite database bound to the Worker: see Cloudflare D1 vs Turso.
- You want auth, storage and APIs as well as the database: see Supabase vs Neon.
- You need provisioned Postgres inside your AWS account: see Neon vs AWS RDS.
- Your workload is analytical: see DuckDB vs SQLite.
Final recommendation
Decide on the engine first. If SQLite's model fits and local reads or per-tenant databases matter, Turso is the more specialised choice, with the caveat that its newer engine is still pre-1.0. If you need PostgreSQL, Neon gives you serverless Postgres with branching that includes data and compute that sleeps when idle, with the caveat of Databricks ownership and an AWS-only footprint for new projects.
Frequently asked questions
Is Turso a replacement for Postgres?
Not directly. Turso is SQLite-compatible; Turso Database has experimental Postgres compatibility, but applications written for PostgreSQL should use a Postgres service such as Neon.
Which has better branching, Turso or Neon?
Neon's branches are copy-on-write clones with data and can start from a past point in time. Turso's branches are new databases created from an existing one, separate from the original and counted against your database quota.
Do Turso and Neon both have free plans?
Yes. Turso Free includes 100 databases and 5 GB of storage. Neon Free includes up to 100 projects with 100 CU-hours and 1 GB of storage per project.
Can I use Turso and Neon from edge functions?
Yes. Turso offers HTTP-capable clients such as @tursodatabase/serverless and @libsql/client; Neon offers @neondatabase/serverless, which queries over HTTP or WebSockets. Turso's embedded replicas need a filesystem, so they do not fit every edge runtime.
Sources
- Turso pricing
- Turso docs: Turso Cloud
- Turso docs: Branching
- Turso docs: Concurrent writes
- Turso docs: Embedded replicas
- Turso docs: TypeScript SDK reference
- Turso Database (GitHub repository, MIT)
- Neon pricing
- Neon docs: Plans
- Neon docs: Branching
- Neon docs: Serverless driver
- Neon docs: Postgres compatibility
Checked October 2026.
How we research comparisons: our editorial method.