← All Posts
· Nearbase Team

Neon vs Turso: Postgres or SQLite for Your App?

Neon vs Turso: one serverless Postgres for everyone, or a SQLite database per tenant. We priced both. What decides it is concurrent writers, not the bill.

Neon vs Turso

Both get called serverless databases. Only one of them runs Postgres.

Neon is PostgreSQL with the compute split off, so it can pause, autoscale, and branch. Turso is SQLite sold as a fleet: one small database per customer, and each one can be copied into the application that reads it. Which engine you need usually settles the question before price does.

Choose Neon if your app is one relational database with many people writing to it at once, and you want Postgres types, extensions, and tooling to work unchanged. Choose Turso if you are handing every customer, device, or agent its own database, and reads matter far more than writes. Choose neither if you want one always-on Postgres in Jakarta, Manila, or Dubai at a price that holds still. Nearbase is built for that case.

A 200-tenant app runs an estimated $10 a month on Neon Launch, against Turso Developer’s published $4.99. The two cards do not convert into each other. Neon bills CU-hours, Turso bills rows read and written. What actually decides it is concurrent writers per database, not price.

Neon vs Turso at a glance

DimensionNeonTurso
What it isServerless PostgreSQL: storage separated from a compute layer that pauses and branchesA cloud SQLite platform: many small databases, replicated into the app that reads them
EngineCommunity PostgreSQL, patched where Neon’s storage attachesSQLite lineage through libSQL, with a from-scratch Rust engine in beta
Billing shapeUsage: $0.106 per CU-hour on Launch, $0.222 on Scale, plus $0.35 per GB-month of storageFlat plan tiers from $4.99 a month, billed on rows read, rows written, storage, and syncs
Free plan100 projects, each with 100 CU-hours and 0.5 GB of storage100 databases, 5 GB of storage, 500 million rows read and 10 million written a month
Idle behaviourSuspends after five minutes; a restart takes a few hundred millisecondsNever suspends, because nothing is billed by time
Concurrent writesPostgres MVCC, many writers on one databaseSQLite’s one-writer-at-a-time model per database, with concurrency managed by Turso Cloud
Asia and Middle EastSingapore, the only Asian region among its eightTokyo and Mumbai, two of its six
Data residencyNo Southeast Asian or Middle Eastern region; a project region is fixed at creationNo Southeast Asian or Middle Eastern region; replicas travel, the primary does not
Where it falls shortThe bill tracks usage upward, and Singapore is its only Asian regionIt is not Postgres, so a Postgres app does not port, and replicas serve stale reads until they sync
Resources and supportDocs and community, with SLAs and HIPAA on the Scale planDocs, Discord, and community support up to Scaler; priority email and Slack on Pro

The two billing rows do not convert into each other, so architecture decides this one before price gets a say.

What is Neon?

Neon is PostgreSQL with the storage pulled out from underneath it. Your data sits in Neon’s own storage layer, and the Postgres process on top can pause, resize, or duplicate itself without moving any of it.

For a reader weighing SQLite, the important part is what Neon does not change. The engine is community PostgreSQL, patched only where Neon’s storage layer attaches underneath it. The SQL, the types, the extensions, and every driver ever written for Postgres behave exactly as they would anywhere else.

Compute comes in Compute Units, each roughly 1 vCPU and 4 GB of memory. Neon bills them by the CU-hour, with storage billed separately.

Neon is now part of Databricks, and its own pricing page sells the database under the Lakebase name.

Neon homepage introducing serverless Postgres with autoscaling and branching Neon homepage.

What is Turso?

Turso is a hosted SQLite platform, built for thousands of small databases rather than one large shared one. A database per tenant, per user, per device, or per agent, each created and destroyed through an API call.

Its distinctive feature is the embedded replica. A copy of the database file sits inside your application process, so those reads never go over the network. Writes travel to a remote primary and sync back. Turso’s documentation still calls embedded replicas fully supported in production. But it points new projects that need sync somewhere else: Turso Sync, built on a different replication mechanism.

The engine started as libSQL. Turso forked SQLite and added the two things SQLite cannot do on its own, replication and reaching the database over a network. That fork is now being replaced by a Rust engine started from scratch, still in beta, and it is where Turso’s concurrent writes came from. A team adopting Turso today is choosing between a supported older path and an unfinished newer one.

It runs on AWS, in the six regions its published locations list names.

Turso homepage describing its cloud SQLite platform and embedded replicas Turso homepage.

One big database, or one database per user?

Neon scales a single database up; Turso scales the number of databases out. You get one Postgres instance per project, autoscaling between a floor and a ceiling you set. Your tenants share tables, kept apart by a tenant column and row-level security. Growth means a bigger compute size on the same database.

Turso does the opposite. Every tenant gets a file of their own, created through the Platform API in the time it takes to make an HTTP request. Growth means more databases, each one small, each one independently replicated and independently restorable. Turso’s own free plan allows 100 of them, and every paid tier removes the cap.

The shapes are not interchangeable, and your schema probably already belongs to one of them.

TWO WAYS TO SCALE Scale it up Spread it out one database one database each

A per-tenant fleet buys real things. Noisy neighbours stop existing, because one customer’s heavy query runs against their own file. Deleting a customer means deleting a database rather than cascading through joined tables, and restoring one customer to yesterday no longer means restoring everybody.

It also costs real things. Cross-tenant questions become application code, because a query cannot span the fleet. Schema migrations have to run across every database, not once. And reporting, analytics, anything needing a join across customers, that all moves somewhere else.

What happens when two users write at the same time?

Neon lets both write, because Postgres allows concurrent writers; Turso makes one wait, because a default Turso Cloud database allows only a single writer per file. Turso now offers concurrent writes as an early preview on its new engine. On a default database, that difference outlives any pricing page.

Postgres uses multiversion concurrency control. Many connections write to the same database at once, and readers never block writers. Neon inherits that unchanged, because underneath its storage layer it is running community PostgreSQL.

Neon pays for the privilege in a different currency. Those concurrent writers all land on one compute instance. One tenant writing hard is felt by every other tenant in the same tables. The fix is to pay for a larger compute size. The contention does not disappear. It becomes a bill.

SQLite takes the opposite trade: one writer at a time per database file. Turso Cloud handles that internally rather than exposing the controls. Its own limitations documentation notes that busy_timeout has no effect, for exactly that reason. Across a per-tenant fleet the constraint mostly disappears, because one customer writing cannot block another when they are not in the same file. Inside a single busy database it is a hard ceiling.

Reads carry the subtler cost. A Turso replica serves reads locally and forwards writes to the remote primary. The client that just wrote sees its own change immediately, and every other reader waits for the next sync. That is read-your-writes for one connection and eventual consistency for everyone else.

The gap is small and it still breaks things. One developer writing about Turso replicas behind serverless functions walks through what it does to an auth flow. The session is written to the primary in the US. The next request reads from a replica in Australia, the row is not there yet, and the user is logged straight back out.

The writeup pins the cause on stateless functions. Each invocation opens a fresh connection. A fresh connection has no replication index, the thing that keeps a long-lived one in sync. That writeup puts replication latency at 200 to 300 milliseconds, quoting Turso’s documentation. The fix is a short-lived cookie that forces reads to the primary after a critical write. Nothing was broken. The design simply surfaced in the login flow.

Turso’s own embedded-replica documentation adds two warnings worth reading before you commit. Opening the local database file while a sync is running can corrupt it. And serverless runtimes with no writable filesystem cannot use embedded replicas at all. That rules the feature out on a large share of deployment targets.

Neon: Postgres that switches itself off

Neon’s answer is one database that grows, sized by the minute rather than by the month.

Who it’s for

Neon is for one shared Postgres that a lot of people write to, and that spends real time doing nothing. If your tenants live in the same tables and the database is quiet at night, you pay for the hours you use.

It suits anyone who needs Postgres itself. Extensions like pgvector and PostGIS work, as do real foreign keys, window functions, and every Postgres driver and ORM ever written. There is nothing to port.

What it does well

A Neon branch is a second database you get in seconds, and Turso has nothing like it at the Postgres level. The branch copies nothing. It reads the parent’s storage until you change something, which is why a big parent branches as fast as a small one.

Scale to zero is the other half. Compute suspends after five minutes of inactivity, and Neon’s own documentation puts the restart at a few hundred milliseconds. One developer timed it on Hacker News, before the Databricks acquisition, and got 600 to 980 milliseconds. Treat the vendor figure as a best case rather than a promise. Turso never sleeps, so it has no equivalent number at all.

Where it falls short

This is where the two rate cards diverge.

Neon costs more the more your app gets used. That is the whole billing model, and it is the thing Turso does not do. Compute is billed per CU-hour, so more traffic buys more compute-hours at retail rates. Nothing sets a ceiling in advance. Neon’s own pricing page puts a high-load 100 GB workload at $701 a month, and we found nothing on any plan that stops the number climbing before you get there.

Turn suspend off to dodge cold starts and Neon becomes an always-on compute unit. It bills every hour above its 0.25 CU floor.

Asia is where Neon loses to Turso outright. Its region documentation lists eight AWS regions. Exactly one of them is Asian: Singapore. The Azure regions are closed to new projects. Turso, whatever else it gives up, reaches both Tokyo and Mumbai. A project’s region is fixed at creation, and changing it means building a new project and migrating into it.

Pricing

PlanComputeStorageIdle behaviour
Free100 CU-hours per project, sizes up to 2 CU0.5 GB per projectSuspends after five minutes, not adjustable
Launch$0.106 per CU-hour, sizes up to 16 CU$0.35 per GB-monthSuspends after five minutes, can be disabled
Scale$0.222 per CU-hour, sizes up to 56 CU$0.35 per GB-monthConfigurable, including always-on

Neon pricing page showing the Free, Launch and Scale plans with CU-hour and GB-month rates Neon pricing page.

Three lines sit outside compute and storage, and they are the ones that surprise people. Instant restore history runs $0.20 per GB-month. Scheduled backups and snapshots run $0.09 per GB-month. Egress is $0.10 per GB once a paid plan clears its included allowance.

Branches are included up to a point: 10 per project on Launch, 25 on Scale. Past that, Neon charges $1.50 per extra branch-month. That is prorated hourly at $0.002, and only for the hours a branch actually exists. Neon’s own pricing page puts typical spend at $15 a month for an intermittent 1 GB workload and $701 for a high-load 100 GB one.

Use cases

  • A branch-per-pull-request preview database, created and destroyed by CI
  • An internal tool queried during business hours and idle the rest of the day
  • A Postgres app that needs pgvector or PostGIS without running the extension yourself
  • An agent platform spinning up short-lived databases through an API

Pick Neon when you need real Postgres and your databases genuinely idle. Skip it when one database runs all month, when you need a bill that holds still, or when your users sit in a city Neon does not reach.

Turso: a database for every customer

Turso’s answer is the opposite one: not a database that grows, but a fleet that multiplies.

Who it’s for

Turso fits local-first and offline-capable apps, where the database has to keep working when the network does not. A mobile client reading from a local file and syncing later is the shape the product is designed around.

It fits per-tenant SaaS just as directly. If every customer’s data can live in its own database and nothing needs to query across them, the fleet model removes a whole class of isolation problems.

What it does well

Read latency is the headline, and it is real. An embedded replica turns a network round trip into a local file read. No amount of regional placement matches that, because the distance is zero.

Database creation is the other genuine strength. Making one through the Platform API is a single request, not a provisioning event. That is what puts a database per user within reach.

Vector search is built into the engine rather than added to it. On Neon, embeddings mean installing pgvector and running it inside the same Postgres you are already paying compute for. On Turso, the vectors sit in the tenant’s own file next to the rows they describe, and a per-user index stays a per-user index.

Where it falls short

It is not Postgres, and that is not a detail. An application written against Postgres does not move to Turso by changing a connection string. Types, JSONB behaviour, extensions, and the concurrency model are all different. Adopting Turso for an existing Postgres app means rewriting the data layer.

Replica staleness is the harder limit. A replica lags the primary until it syncs. Turso’s embedded-replica documentation puts no figure on that lag today. That 200 to 300 millisecond figure comes from Turso’s own documentation, cited in the login-flow writeup.

The engine is new, and it shows. A bootstrap bug in the beta engine zero-fills the first page of a fresh embedded replica, breaking it on first open. A separate libSQL issue records embedded-replica sync refusing to run on the free tier at all. Both were open when we checked.

Pricing

PlanPriceStorageRows read and written each month
Free$05 GB500 million read, 10 million written
Developer$4.99 a month9 GB, then $0.75 per GB2.5 billion read, 25 million written
Scaler$24.92 a month24 GB, then $0.50 per GB100 billion read, 100 million written
Pro$416.58 a month50 GB, then $0.45 per GB250 billion read, 250 million written

Turso pricing page showing the Free, Developer, Scaler and Pro plans Turso pricing page.

Read Turso’s pricing page next to Neon’s, and the numbers to watch are rows, not hours. Nothing on that table bills for time, so a database nobody queries costs whatever its bytes cost and no more. Overages on Developer run $1 per billion extra rows read and $1 per million extra rows written, easing on the higher tiers. Embedded syncs are billed separately by the gigabyte. Point-in-time restore stretches from one day on Free to 90 on Pro.

The step from Scaler to Pro is the one to plan around. It is $24.92 to $416.58, roughly seventeen times the price, with nothing in between. That jump is also where SSO, BYOK encryption, HIPAA, SOC 2, and any support beyond the community forum begin. A production database with a compliance question attached does not have a $100 option here.

Use cases

  • A SaaS product giving every customer an isolated database on signup
  • A mobile or desktop app that must read and write while offline
  • An AI agent given a scratch database per session
  • A read-heavy edge app where the same rows are queried from many regions

Pick Turso for local-first apps and per-tenant fleets that tolerate eventual consistency. Skip it if you actually need Postgres, if writes are heavy, or if stale reads would break your product.

How stable are the Neon and Turso engines?

Turso is replacing its foundation while still selling on top of it. Neon carries none of that risk, because it never wrote an engine. It runs community Postgres, patched where the storage layer attaches, and what Neon built sits underneath it.

The stable engine is libSQL, a fork of SQLite. Its own repository is blunt about the ceiling: libSQL “inherits SQLite’s fundamental limitations such as the single-writer model.”

The replacement is a database written from scratch in Rust, not a fork, and it adds the concurrent writes the fork could never have. Turso’s announcement post goes further still, describing a shared Rust core with different database front ends compiled onto it, Postgres among them.

Read that as a concession. If concurrent writes and Postgres compatibility are worth building, they were worth having.

Concurrent writes have since reached Turso Cloud, as an early preview open to everyone. It is not the default. You switch it on in the dashboard, create a tursodb database instead of a SQLite one, then open transactions with BEGIN CONCURRENT. Underneath, MVCC checks for conflicts when a transaction commits, not when it starts. And it checks row by row, not page by page. Two writers now collide only if they touched the same row. Retries do not disappear. They narrow to that case. The Postgres front end is not on sale in any form.

Read it also as unfinished. The Rust engine is in beta and the Postgres work is early. The Register covered the announcement as a change of direction rather than a shipping product. The thread on Hacker News drew three comments. The one substantive reply called the framing misleading and read the plan as “a sort of universal database engine with different front ends.”

The awkward part is that the repository already tells new projects to start on the beta rather than the stable fork. Buy Turso Cloud for what it does today. Treat the Postgres work as a reason to look again in a year, not a reason to wait.

Can you switch from Neon to Turso later?

Moving between Neon and Turso is usually not cheap.

Moving between two Postgres providers is routine work. Both speak the same wire protocol, and pg_dump and logical replication apply either way. The data comes out in a format the destination already understands. That is not the situation here. Postgres and SQLite are different engines with different type systems, different SQL dialects, and different concurrency semantics.

What actually has to change:

  • Schema. Postgres types with no SQLite equivalent, including JSONB, arrays, enumerated types, and anything from an extension, need redesigning rather than converting.
  • Queries. Window functions, common table expressions, and vendor-specific SQL differ in support and behaviour between the two dialects.
  • The data layer. Drivers and ORMs are engine-specific, so the connection layer and much of the query code is rewritten, not reconfigured.
  • Assumptions. Code written for many concurrent writers behaves differently against one writer per database, and code written for local reads behaves differently against a network round trip.

None of this is impossible. It is a project with a scope, and that scope is rewriting the data layer, not migrating the data. Choose as though the decision is durable, because for most teams it will be.

Regions and residency: where Neon and Turso actually run

Turso reaches further into Asia than Neon does, though neither reaches far enough for most of the region.

Turso’s six regions are Tokyo, Mumbai, Ireland, Virginia, Ohio, and Oregon, two of them Asian. Neon’s list runs to eight, reaching Asia through Singapore alone, with Sydney covering Oceania. Older marketing putting Turso in dozens of locations describes its retired Fly.io deployment, not the AWS platform it runs on today.

Neither reaches Southeast Asia beyond Singapore, and neither operates in the Middle East. Jakarta, Manila, Kuala Lumpur, Bangkok, and Dubai are outside both footprints. A page issuing several sequential queries from Manila against a primary in Tokyo or Singapore pays that round trip every time.

Turso’s embedded replicas complicate the picture in a useful way. A local replica genuinely removes read latency wherever your application runs, including cities neither vendor operates in. Writes still travel to the primary, so a write-heavy app in Jakarta gains far less than a read-heavy one. Serverless runtimes without a filesystem cannot use replicas at all.

If a contract says the data has to sit in Indonesia, neither vendor can say yes. A Turso replica in the same building does not help, because the primary is still somewhere else. A replica only helps with latency, not residency, since the primary is what actually counts there. What does help is a provider whose primary already sits in those cities.

How to choose between Neon and Turso

  1. Draw your tenancy boundary. If a single query has to touch more than one customer’s data, you need one shared database, which means Neon. If every customer’s data is genuinely self-contained, Turso’s fleet model fits. It hands you isolation you would otherwise build by hand.
  2. Count your concurrent writers per database. Many writers on one database is Postgres territory. A few writers per database, with reads dominating, is where SQLite’s single-writer model stops costing you anything.
  3. Find your users on a map. Both vendors are thin across Asia, so check their region lists against where your traffic actually comes from before either engine argument matters.

What one workload actually costs on Neon vs Turso

Neither rate card converts into the other. Take a per-tenant SaaS with 200 customers and 2 GB of data in total. It reads 300 million rows a month and writes 3 million. The database is busy about six hours a day, averaging half a Compute Unit.

Change to that workloadNeon Launch, estimatedTurso Developer, published
Base case: 200 tenants, 2 GB, 6 hrs/day at 0.5 CU90 CU-hours at $0.106, plus 2 GB at $0.35, about $10 a month$4.99 a month, because 200 tenants exceed the free plan’s 100-database cap
Same app, left always on90 busy CU-hours plus 142.5 idle at the 0.25 CU floor, so 232.5 in all, about $25 a month with storage$4.99, unchanged, because nothing here bills for time
Same hours, ten times the writesRises with the work. If it lifts the average from 0.5 to 1 CU, that is 180 CU-hours, about $20 with storage$9.99, being $4.99 plus 5 million writes over the 25 million allowance at $1 per million

Turso is cheaper in this shape and stays cheap as long as the app is idle or lightly used, because idle time costs it nothing. What moves a Turso bill is writing. What moves a Neon bill is being busy, and only you know which of those your app is about to do.

Nearbase runs Postgres in the cities neither one reaches

Neon runs Postgres and stops at Singapore. Turso reaches Tokyo and Mumbai and is not Postgres. Between those two sits one always-on database in a Southeast Asian or Middle Eastern city, at a price somebody has to defend in a budget.

u/Medium-Yam-7677 asked for exactly that on r/PostgreSQL, posting a requirements list for a managed Postgres provider rather than a full backend platform:

What I need from the database provider is automated backups, patching, basic monitoring, reliable uptime, and clearly allocated CPU, memory, and storage. I don’t use database branching, and scale to zero isn’t useful for this workload.

Nearbase runs managed PostgreSQL in ten regions: Jakarta, Manila, Kuala Lumpur, Hong Kong, Singapore, Tokyo, Seoul, Dubai, and Bangkok, plus Virginia in the United States. Neither Neon nor Turso operates in Manila or Dubai. A database in those cities can help satisfy an in-country residency requirement, not just sit nearer to the people it serves.

You choose an instance rather than a usage curve. The entry instance is General Purpose ARM, 1 vCPU and 2 GB, at $6 a month. Storage is billed apart from it, $3.6 per 10 GB with a 20 GB minimum. The smallest configuration lands near $13 a month all-in. A Dedicated 32 vCPU and 256 GB instance is $2,682. The pricing page lists every instance size between those two ends. Those figures hold in every region, and nothing is added per query or per gigabyte of egress.

Backups, patching, failover, and the 99.99% uptime SLA the homepage publishes are the baseline, not the selling point. What is different is that none of them is a usage line. A bill for that same 200-tenant app does not move when writes spike, the way Neon’s CU-hours do and Turso’s per-row overages do.

Nearbase homepage showing managed PostgreSQL across ten regions at one flat monthly price Nearbase homepage.

If you ship through a branch per pull request, that workflow is the thing Neon does better than anyone, and reason enough to stay. If your app is built on offline sync or a database per device, that is the shape Turso was designed around. Flat pricing does not substitute for it. And if your users sit in Europe, or in the Americas outside Virginia, nine Asian and Middle Eastern regions do not cover you.

There are more Neon alternatives than these two.

If your database is one always-on Postgres and your users are in Asia, start an instance and pick the city.

Frequently asked questions

Is Turso a Postgres database?

No. Turso is SQLite lineage, built on libSQL and now on a from-scratch Rust engine, so Postgres types, extensions, and drivers do not carry over. It is also reached through Turso’s own SDKs and an HTTP API, not the Postgres wire protocol. psql, pgAdmin, and anything else that speaks Postgres will not connect to it at all. Turso has announced a Postgres-compatible database on the same engine, but that work is early and is not what Turso Cloud sells today.

Which costs less for a small per-tenant SaaS, Neon or Turso?

Turso, usually, and by a few dollars rather than an order of magnitude. For a 200-tenant app that is an estimated $10 a month on Neon Launch, against Turso Developer’s published price of $4.99. Where that flips is the more useful thing to know. Neon bills the hours a database is busy, so an app left always on keeps paying while nobody is using it. Turso bills rows, so the same idle app costs only what its bytes cost. Turn the writes up instead and both climb, Neon through compute and Turso through its per-million write overage. Idle time is the axis that separates these two. Write volume is not.

What is libSQL, and how is it different from SQLite?

Turso forked SQLite, called the fork libSQL, and has maintained it since. It reads and writes the same file format SQLite does, with replication and network access bolted on. libSQL still carries SQLite’s one-writer-at-a-time rule, and the project says so itself. The Rust engine Turso is building to replace it is not a fork, and it does support concurrent writes.

Is Turso production ready?

Yes for the workloads it was designed for, with two caveats worth budgeting. The engine is mid-replacement, and support stays community-only until the $416.58 Pro tier, which is a long way up from $24.92. Read-heavy and per-tenant apps are the safe fit. Anything that cannot tolerate a replica reading a few hundred milliseconds behind the primary needs design work before launch, not after.

Does Neon have a region in Asia?

One: Singapore. Turso reaches both Tokyo and Mumbai, which is why geography goes against Neon in this matchup. Neither vendor operates anywhere in Southeast Asia beyond Singapore, and neither is in the Middle East. For a large part of Asia, the honest answer is that both are remote. Providers running in-region, Nearbase among them, are where traffic from Jakarta, Manila, or Dubai gets a local primary.

Should I use SQLite or Postgres for a production app?

Use Postgres unless your data separates cleanly per user, device, or tenant. Postgres handles many simultaneous writers, joins across everything you store, and an extension ecosystem covering vectors, geospatial data, and time series. SQLite is faster to read and far simpler to operate, but it serialises writes per file, so it earns its place when each file has few writers. Hosted SQLite platforms like Turso make the second pattern practical at scale; they do not remove the single-writer rule underneath it.

Can Turso handle concurrent writes?

On a default Turso Cloud database, no. SQLite serialises writes to one at a time per file, and Turso Cloud manages that internally rather than exposing a busy timeout to tune. The per-tenant model routes around the limit anyway, because separate customers write to separate files. Turso Cloud now also offers concurrent writes as an early preview on its new Rust engine, opened to all users. It needs a tursodb database and transactions declared with BEGIN CONCURRENT, and conflicts are detected per row at commit. Buying that today means buying preview software.

What are embedded replicas, and when do they help?

An embedded replica is a copy of the database file living inside your application process, so reads are local file reads instead of network calls. They help most for read-heavy apps, offline-capable clients, and deployments far from the primary. They help least for write-heavy workloads, since writes still travel to the primary, and they are unavailable in serverless runtimes with no writable filesystem.

Does Neon still scale to zero, and does Turso?

Neon suspends compute after five minutes of inactivity on every plan, and paid plans can disable it. Turso does not charge for compute at all, so the question does not apply in the same form. An idle Turso database is not suspended, and costs only the bytes it stores. That means Turso has no cold start, while Neon trades a few hundred milliseconds of restart for genuinely zero idle compute cost.

Can I move from Turso to Neon later?

Not as a data migration. The engines differ, so schema, queries, drivers, and every assumption about write concurrency change with them. Moving between two Postgres hosts is a pg_dump and a replication window; moving between SQLite and Postgres is a rewrite of the data layer. Direction does at least matter. Going to Postgres, you gain types and concurrency you were working around. Going the other way, you give them up and rebuild whatever depended on them.

Last updated 2026-08-07