Evolu

active

by Daniel Steigerwald and Evolu contributors · since 2022 · also known as Evolu local-first

Local-first TypeScript platform: SQLite on each device, end-to-end encrypted sync through relays.

relationalembedded libraryopen source (permissive)emerging

Overview

Evolu is a local-first library and platform for TypeScript apps. Each device keeps its data in SQLite (WASM in browsers, native on React Native/Expo and Electron), queries it with type-safe SQL via Kysely, and syncs changes end-to-end encrypted through relays you can self-host, so the relay never sees plaintext. Identity is a mnemonic-based owner key rather than a server account. It suits privacy-sensitive apps where the server should never see user data; Trezor Suite uses it in production. The project is small and the platform still describes its general release as upcoming.

Strengths & trade-offs

Strengths

  • +End-to-end encrypted sync; relays store only ciphertext
  • +Real SQLite on every device with type-safe queries
  • +Self-hostable relays with no vendor account
  • +Used in production by Trezor Suite

Trade-offs

  • −Small project with a single lead maintainer
  • −Key-based identity makes account recovery a UX problem you must solve
  • −No server-side querying of user data by design

Great for

  • +Privacy-first personal apps (notes, finance, health)
  • +Wallet and security tooling
  • +Offline-capable apps without a backend team

Think twice for

  • −Apps where the server must query or aggregate user data
  • −Large multi-tenant SaaS backends

Capabilities

Native or official first-party support · 7 of 25 tracked

✓Transactions
✓Joins
✓Secondary indexes
✓Durable persistence
✓Encryption at rest
✓Offline sync
✓Runs in WebAssembly
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Compression
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
Active active
Transactions
Limited ACID
Consistency
Eventual
Schema
Strict
Architecture
Embedded, Distributed
Query languages
SQL (via Kysely query builder)

Every device is a writer; data converges via CRDT-style merge through relays.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsTypeScript API, Relay sync protocol
client languagesTypeScript
used byTrezor

Alternatives to Evolu

Compare all→
JazzDocument14.2

Local-first database with built-in sync, permissions and edit history, being rebuilt as a relational Jazz 2.

evolu vs jazz →
TinyBaseKey-Value18.4

Tiny reactive in-memory store for tables and values, with persisters and CRDT sync.

evolu vs tinybase →
PowerSyncRelational23.3

Sync engine that keeps on-device SQLite in sync with Postgres, MongoDB, MySQL or SQL Server.

evolu vs powersync →
RxDBDocument20.2

Reactive local-first NoSQL database for JavaScript with pluggable storage and replication.

evolu vs rxdb →
TriplitDocument19.2

Full-stack syncing database for TypeScript apps; development has stalled since 2025.

evolu vs triplit →
ElectricSQLRelational30.4

Read-path sync engine that streams partial replicas of Postgres to clients over plain HTTP.

evolu vs electricsql →

Evolu FAQ

What is Evolu?

Evolu is a relational database by Daniel Steigerwald and Evolu contributors, first released in 2022. Evolu is a local-first library and platform for TypeScript apps. Each device keeps its data in SQLite (WASM in browsers, native on React Native/Expo and Electron), queries it with type-safe SQL via Kysely, and syncs changes end-to-end encrypted through relays you can self-host, so the relay never sees plaintext. Identity is a mnemonic-based owner key rather than a server account. It suits privacy-sensitive apps where the server should never see user data; Trezor Suite uses it in production. The project is small and the platform still describes its general release as upcoming.

Is Evolu open source?

Yes. Evolu is open source. License: MIT License.

Does Evolu support ACID transactions?

Partly. Evolu offers limited ACID guarantees (for example, single-record or single-partition transactions), with eventual consistency.

Does Evolu scale horizontally?

Evolu does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB). It supports active-active multi-region writes.

How can I run Evolu?

You can self-host it and embed it in your application.

What is Evolu best for?

Evolu is a strong fit for privacy-first personal apps (notes, finance, health); wallet and security tooling; and offline-capable apps without a backend team. Think twice for apps where the server must query or aggregate user data.

What are the best alternatives to Evolu?

Common alternatives to Evolu include Jazz, TinyBase, PowerSync, RxDB and Triplit. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is Evolu?

Evolu ranks #242 of 844 databases on the WhichDB Score (13.9/100), and #75 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.