NebulaDB is the TypeScript-first embedded database that runs in the browser, on the server, and at the edge. No server to manage. No config to wrestle. Just fast, reactive data — wherever your code runs.
Powering local-first apps across the stack
We obsessed over the details so you don't have to think about your database.
Every API is fully typed with inference. Your collections, queries, and plugins all carry their types through. Write db.collection('users').find({ role: 'admin' }) and your editor already knows the shape of every result.
Subscribe to any query. When data changes, your UI knows instantly. No polling, no websockets to wire up.
Same code in the browser, Node, Deno, and edge runtimes. Swap adapters without touching your queries.
Auth, encryption, sync, geospatial, audit logging — drop in what you need. Build your own in minutes.
Full-text search, geo queries, compound indexes, and a query optimizer that learns your access patterns.
Encryption at rest, field-level encryption, and audit trails — not bolted on, built in.
Because it was. Every API decision starts with: "would a developer love this?"
You shouldn't think about your database. NebulaDB handles the hard parts — indexing, reactivity, persistence — so you can focus on your app.
Start with memory. Ship with Postgres. Move to the edge. Your code never changes.
Official plugins, maintained with the core. Community plugins welcome.
Users, sessions, and role-based access control.
@nebula-db/plugin-authTransparent at-rest and field-level encryption.
@nebula-db/plugin-encryptionFull operation logging for compliance.
@nebula-db/plugin-auditSnapshots, incremental backups, multi-target.
@nebula-db/plugin-backupReal-time metrics and windowed analytics.
@nebula-db/plugin-streamingBidirectional sync with conflict resolution.
@nebula-db/plugin-sync$near queries, bounding boxes, geo-indexes.
@nebula-db/plugin-geospatialStemming, ranking, and fuzzy search.
@nebula-db/plugin-fulltextHonest comparison with the alternatives.
| NebulaDB | SQLite | IndexedDB | Firebase | |
|---|---|---|---|---|
| Zero-config setup | ✓ | ✓ | ~ | ✗ |
| TypeScript-first | ✓ | ✗ | ✗ | ~ |
| Runs in browser | ✓ | ✗ | ✓ | ✓ |
| Runs on edge | ✓ | ✗ | ✗ | ~ |
| Reactive queries | ✓ | ✗ | ✗ | ✓ |
| Offline-first | ✓ | ✓ | ✓ | ~ |
| No vendor lock-in | ✓ | ✓ | ✓ | ✗ |
| Self-hostable | ✓ | ✓ | ✓ | ✗ |
Join developers building local-first apps with NebulaDB.