// the find
fireproof-storage/fireproof
The vibe coding database runs in the browser, fits in the context window, and syncs anywhere.
Fireproof is a local-first embedded document database for JavaScript that stores data as content-addressed encrypted blobs with CRDT-based multi-writer conflict resolution. It runs entirely in the browser with no backend required, syncing via pluggable gateways to S3, Cloudflare D1, or a custom server. The primary target is AI-generated apps and rapid prototypes where you want persistence without standing up infrastructure first.
The CRDT + Merkle clock design means multi-writer conflicts are handled structurally, not by last-write-wins — that's a real architectural advantage over IndexedDB wrappers. The gateway abstraction is genuinely portable: the same database code runs in IndexedDB, the file system, memory, or a cloud backend without touching application logic. Encryption is built in at the storage layer, not bolted on — blobs are encrypted before they leave the client, so commodity object storage works without trusting the host. The React hooks API is minimal and reactive enough that you can wire up live collaboration in a handful of lines.
The monorepo is fragmented into ~30 packages under core/, cloud/, and cli/ with overlapping responsibilities and several .ts-off files left in the tree — signs of ongoing architectural churn rather than a settled design. Key management is explicitly marked as unsolved: the README admits the default extractKey behavior is a deprecated internal API with a warning, and secure key management is on the roadmap but not shipped. Query capability is limited to range scans over indexed fields; there's no join, aggregation, or full-text support, which is fine for the target use case but means you'll hit a wall fast on anything beyond simple document retrieval. Deno support is listed as TODO in two places in the README itself, which makes the 'works everywhere' claim feel aspirational rather than tested.