Database & Cache
turso

Turso

TypeScriptOpen SourceSQLiteEdge

Edge-native SQLite database built on libSQL — embed a database per tenant or deploy replicas globally close to your users with a generous free tier.

License

MIT

Language

TypeScript

74
Trust
Good

Why Turso?

Multi-tenant apps where each tenant gets their own isolated database

Edge functions that need a local SQLite replica for low latency reads

Hobby projects or startups needing a simple, cheap database with a great free tier

Signal Breakdown

What drives the Trust Score

npm downloads
120k / wk
Commits (90d)
150 commits
GitHub stars
4k ★
Stack Overflow
200 q's
Community
Growing
Weighted Trust Score74 / 100

Download Trend

Last 12 months

Tradeoffs & Caveats

Know before you commit

Complex relational schemas with heavy write throughput — PostgreSQL scales better

Apps already on Supabase or PlanetScale with deep integrations

Pricing

Free tier & paid plans

Free tier

Free: 500 databases, 9GB storage

Paid

Starter: $29/mo, Scale: $299/mo

Alternative Tools

Other options worth considering

supabase
Supabase95Excellent

Open-source Firebase alternative. Combines Postgres, auth, file storage, realtime subscriptions, and edge functions in one platform. The default backend for indie SaaS with a generous free tier.

planetscale
PlanetScale79Good

Serverless MySQL platform with database branching — deploy schema changes like code with non-blocking migrations and global replication.

convex
Convex73Good

Serverless database with real-time reactivity — write server functions in TypeScript, get live queries and automatic consistency without a separate backend.

Often Used Together

Complementary tools that pair well with Turso

cloudflare-workers

Cloudflare Workers

Serverless Edge

54Limited
View
hono

Hono

Backend Frameworks

84Strong
View

Learning Resources

Docs, videos, tutorials, and courses

Get Started

Repository and installation options

View on GitHub

github.com/tursodatabase/turso-client-ts

npmnpm install @libsql/client

Quick Start

Copy and adapt to get going fast

import { createClient } from '@libsql/client';

const db = createClient({
  url: process.env.TURSO_DATABASE_URL,
  authToken: process.env.TURSO_AUTH_TOKEN,
});

const result = await db.execute('SELECT * FROM users WHERE id = ?', [1]);
console.log(result.rows);

Community Notes

Real experiences from developers who've used this tool