v0.6.0 "Cumulus" is live — Cloud & Edge support

Your data,
everywhere you are.

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.

Get Started → See it in action
✓ MIT Open Source ✓ 424 tests passing ✓ Zero-config setup
terminal — zsh
$ npm install @nebula-db/nebula-db
# ✓ installed in 1.2s — no server, no config

$ node -e "import('@nebula-db/core').then(m => {
const db = m.createDb({ adapter: new m.MemoryAdapter() });
db.collection('users').insert({ name: 'Ada' });
console.log('🚀 NebulaDB ready');
})"
# 🚀 NebulaDB ready

Powering local-first apps across the stack

BrowserNode.jsDenoCloudflare WorkersVercel EdgeAWS Lambda
Why NebulaDB

Designed for how you actually build

We obsessed over the details so you don't have to think about your database.

⚡

TypeScript-first, not TypeScript-afterthought

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.

🔄

Reactive by default

Subscribe to any query. When data changes, your UI knows instantly. No polling, no websockets to wire up.

🌍

Truly portable

Same code in the browser, Node, Deno, and edge runtimes. Swap adapters without touching your queries.

🔌

Plugins, not forks

Auth, encryption, sync, geospatial, audit logging — drop in what you need. Build your own in minutes.

🔍

Queries that think

Full-text search, geo queries, compound indexes, and a query optimizer that learns your access patterns.

🔒

Secure from line one

Encryption at rest, field-level encryption, and audit trails — not bolted on, built in.

Developer Experience

Feels like it was made for you

Because it was. Every API decision starts with: "would a developer love this?"

The database that disappears

You shouldn't think about your database. NebulaDB handles the hard parts — indexing, reactivity, persistence — so you can focus on your app.

  • Schema-optional: start schemaless, add structure when you're ready
  • Zero-config: working database in under 10 lines of code
  • Offline-first: your app works without a connection, syncs when it can
  • Framework bindings for React and Vue with hooks built in
app.ts
import { createDb } from '@nebula-db/core';
import { SQLiteAdapter } from '@nebula-db/adapter-sqlite';
import { createSyncPlugin } from '@nebula-db/plugin-sync';

// Persistent + synced in 12 lines
const db = createDb({
adapter: new SQLiteAdapter('./app.db'),
plugins: [createSyncPlugin({ serverUrl })]
});

const todos = db.collection('todos');
await todos.insert({ text: 'Ship it 🚀', done: false });

// Live UI updates — no refresh needed
todos.subscribe({}, docs => render(docs));
Storage Adapters

One API, fourteen backends

Start with memory. Ship with Postgres. Move to the edge. Your code never changes.

🧠
Memory
Zero-setup dev
💾
SQLite
Local persistence
🌐
IndexedDB
Browser storage
📦
LocalStorage
Simple browser KV
📁
Filesystem
Node.js files
🐘
PostgreSQL
Production SQL
🍃
MongoDB
Document store
🐬
MySQL
Classic relational
⚡
Redis
Cache layer
☁️
Cloudflare D1
Edge SQL
▲
Vercel KV
Serverless Redis
🦕
Deno KV
Deno native
λ
AWS Lambda
Serverless
🔀
Hybrid
Local + cloud
Ecosystem

Plugins for every need

Official plugins, maintained with the core. Community plugins welcome.

🔐 Auth

Beta

Users, sessions, and role-based access control.

@nebula-db/plugin-auth

🛡️ Encryption

Tested

Transparent at-rest and field-level encryption.

@nebula-db/plugin-encryption

📝 Audit

Beta

Full operation logging for compliance.

@nebula-db/plugin-audit

💾 Backup

Beta

Snapshots, incremental backups, multi-target.

@nebula-db/plugin-backup

📡 Streaming

Beta

Real-time metrics and windowed analytics.

@nebula-db/plugin-streaming

🔄 Sync

Tested

Bidirectional sync with conflict resolution.

@nebula-db/plugin-sync

🗺️ Geospatial

Beta

$near queries, bounding boxes, geo-indexes.

@nebula-db/plugin-geospatial

🔍 Full-Text

Beta

Stemming, ranking, and fuzzy search.

@nebula-db/plugin-fulltext
Comparison

How NebulaDB stacks up

Honest comparison with the alternatives.

NebulaDBSQLiteIndexedDBFirebase
Zero-config setup✓✓~✗
TypeScript-first✓✗✗~
Runs in browser✓✗✓✓
Runs on edge✓✗✗~
Reactive queries✓✗✗✓
Offline-first✓✓✓~
No vendor lock-in✓✓✓✗
Self-hostable✓✓✓✗
Get Started

Your database is one
command away.

Join developers building local-first apps with NebulaDB.

npm install @nebula-db/nebula-db

★ Star on GitHub   Read Documentation