Turso Edge Database Review (2026)
Turso brings SQLite to the edge — replicate your database to 30+ locations worldwide with sub-millisecond reads. Built on libSQL (their open-source fork of SQLite). Here's whether it delivers.
What Is Turso?
Turso is a distributed SQLite database designed for edge computing. Your data lives close to your users, everywhere.
Key stats:
- Based on libSQL (open-source SQLite fork)
- 30+ edge locations
- Embedded replicas (database in your app)
- Sub-1ms local reads
- Compatible with SQLite ecosystem
- Generous free tier
What We Love
1. Edge Replication
Your database, everywhere:
Traditional database (single region):
User in Tokyo → request → US-East database → response
Latency: 150-200ms for every read
Turso (multi-region):
User in Tokyo → request → Tokyo edge replica → response
Latency: 1-5ms for reads
Writes go to primary → replicate to all edges in <100ms
2. Embedded Replicas
The killer feature — a SQLite database inside your app:
import { createClient } from '@libsql/client';
const db = createClient({
url: 'file:local-replica.db', // Local SQLite file
syncUrl: 'libsql://your-db.turso.io', // Remote primary
authToken: 'your-token',
});
// Reads: instant (local file)
await db.execute('SELECT * FROM users WHERE id = ?', [userId]);
// → 0.1ms — it's a local file read
// Writes: sent to primary, then synced back
await db.execute('INSERT INTO users (name) VALUES (?)', ['Alex']);
// → Network round-trip to primary, then local replica updates
// Sync on demand
await db.sync();
Why this matters: Your app carries its own database. Reads are literally filesystem reads. No network latency at all.
3. SQLite Compatibility
It's SQLite — the most deployed database in the world:
What works:
✅ Standard SQL queries
✅ SQLite functions and extensions
✅ Drizzle ORM support
✅ Prisma support
✅ Any SQLite library (with libSQL client)
✅ JSON functions
✅ Full-text search (FTS5)
What's different:
- Uses libSQL wire protocol (not raw SQLite file access)
- Writes go through primary (not fully distributed writes)
- Some SQLite extensions may not be available
4. Developer Experience
Clean SDK and tooling:
# CLI
turso db create my-app
turso db locations add my-app --location nrt # Tokyo
turso db locations add my-app --location lhr # London
turso db tokens create my-app
# Schema management
turso db shell my-app
→ CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);
// TypeScript SDK
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 posts WHERE author_id = ? ORDER BY created_at DESC LIMIT ?',
args: [authorId, 20],
});
5. Pricing
The free tier is genuinely generous:
Starter (Free):
- 9 GB total storage
- 500 databases
- 24 billion row reads/mo
- 25 million row writes/mo
- 3 locations
Scaler ($29/mo):
- 24 GB storage
- 10,000 databases
- Unlimited reads
- 100 million row writes/mo
- 6+ locations
- Point-in-time recovery
Enterprise: Custom
What Could Be Better
1. Write Latency
Writes go to the primary, not the nearest edge:
Read from Tokyo edge: 1-5ms ✅
Write from Tokyo: 150-200ms (round-trip to primary in US)
For read-heavy apps (blogs, content, dashboards): perfect
For write-heavy apps (real-time collaboration): consider alternatives
2. SQLite Limitations
SQLite's architecture means:
- No native JSONB (JSON functions work but slower than Postgres)
- No pub/sub or change streams
- No stored procedures
- Limited concurrent write throughput
- Schema migrations need care (ALTER TABLE limitations)
3. Ecosystem Maturity
PostgreSQL (Neon/Supabase):
Decades of ecosystem, every tool works, massive community
Turso/libSQL:
Growing fast, most ORMs support it, but smaller ecosystem.
Some tools assume Postgres and won't work with SQLite.
4. Vendor Lock-in Concerns
While libSQL is open source, Turso's edge replication and embedded replicas are platform features. Migrating away means losing the edge distribution.
Turso vs Alternatives
Feature Turso Neon PlanetScale D1
Engine SQLite PostgreSQL MySQL SQLite
Edge replicas ⚡ Best 🟡 Limited ❌ ✅ CF only
Embedded replica ⚡ Yes ❌ ❌ ❌
Read latency ⚡ <1ms ✅ 5-20ms ✅ 5-20ms ⚡ <5ms
Write latency 🟡 Primary ✅ Primary ✅ Primary 🟡 Primary
Free tier ⚡ Generous ✅ Good ❌ Removed ✅ Good
ORM support ✅ Growing ⚡ Full ⚡ Full 🟡 Limited
Best for Edge reads Full Postgres MySQL apps CF Workers
Best Use Cases
✅ Content sites (blogs, docs, marketing pages)
✅ User-facing dashboards (read-heavy)
✅ Mobile app backends (embedded replica = offline support)
✅ Multi-tenant SaaS (database per tenant)
✅ Personalization engines (fast reads at edge)
🟡 Mixed read/write apps (works but writes aren't edge-fast)
❌ Write-heavy transactional systems
❌ Complex relational queries (Postgres is better)
❌ Real-time collaboration (need Postgres with pub/sub)
Verdict
Rating: 8.5/10
Turso nails its core promise — SQLite at the edge with sub-millisecond reads. The embedded replica feature is genuinely innovative and enables architectures that weren't practical before. The free tier is excellent.
Deductions for write latency limitations, smaller ecosystem than Postgres, and the inherent constraints of SQLite. But for read-heavy applications, Turso delivers the fastest database reads available.
Try Turso — the free tier handles real production workloads, not just toy projects.