Why jcell?
A lightweight, type-safe document database that fits in your pocket.
Zero Setup
No database server, no codegen, no heavy dependencies. Just install the package and start coding. Works with file-based, in-memory, SQLite, or Cloudflare D1.
Full TypeScript Inference
Schemas are defined in TypeScript — your editor gets full autocomplete, type checking, and refactoring support. The infer type lets you derive document types seamlessly.
Schema Validation
Built-in validation for strings, numbers, booleans, dates, arrays, objects, enums, and references. Default values, optional fields, and auto-generated UUIDs included.
Powerful Query Builder
Chainable query API with filters (.eq(), .gt(), .contains(), etc.), sorting, pagination, projections, and relationship population via .with().
Aggregation Pipeline
MongoDB-style aggregation stages: $match, $group, $sort, $limit, $count. Convenience methods for sum, avg, min, max.
Hooks & Transactions
Lifecycle hooks (before:insert, after:update, etc.) and transaction support for adapters that implement it. Build middleware pipelines with ease.
Multi-Runtime
Runs on Node.js, Bun, and Cloudflare Workers with the same API. Swap adapters without changing business logic.
Studio UI
Visual database browser with dashboard, data editor, schema viewer, query runner, and relation explorer. Like Prisma Studio, but for jcell.
Migrations
Named, reversible migrations with automatic tracking. Run db.migrate([m001, m002]) and jcell handles the rest.
