October 29, 2025
Adapters meet drama
SwirlDB: Modular-first, CRDT-based embedded database
Offline-friendly plug-in data brain thrills devs—then size-shaming and 'where are relations?' erupt
TLDR: SwirlDB is a modular, offline-friendly database that lets browser and server work the same, built for conflict-free syncing. Early reactions praise the plug-and-play design and planned encryption, but debate the hefty 830KB browser build and whether it supports classic relational features like foreign keys.
SwirlDB just dropped as a plug-and-play, adapter-powered database that treats your browser and server like equal partners. It’s built on CRDTs—conflict-free data that merges changes automatically—so teams can edit offline and not fight over saves. The dev crowd loved the concept… until the comments set the stage for drama.
The loudest cheer came from encryption fans: gagik_co swooned over promised field-level protection, calling it a “godsend,” but sighed that it’s not ready yet. Others compared the “everything is an adapter” vibe to PouchDB, with knubie loving the idea but clutching pearls at the ~830KB browser bundle (“large!”). Meanwhile, SkiFire13 opened a new front: is this more than a fancy key‑value store? Where are the relational staples like foreign keys?
Between the praise (mentalgrear’s “most excellent”) and the side-eye, you’ve got a classic internet split: fans of modular Lego-style databases vs. skeptics worried about size and missing table-style features. Bonus meme: someone dubbed it “IKEA for databases,” where you can swap storage, sync, auth, and encryption like furniture parts. If you can handle adapter drama, SwirlDB’s CRDT core (think Automerge) and runtime configuration might be your new offline-friendly toy, but expect debates over bundle weight and “is it relational” to rage on.
Key Points
- •SwirlDB is a modular, adapter-based embedded database built on an Automerge-powered CRDT engine.
- •Browser and server act as equivalent peers, sharing unified traits; adapters provide platform-specific storage and sync.
- •Adapters cover storage, sync, auth, and encryption, and are swappable at runtime without recompilation.
- •Architecture uses a 3-crate Rust system with WASM/JS bindings for browsers and a pure Rust server with HTTP/WebSocket sync (axum + tokio).
- •Storage traits (DocumentStorage, ChangeLog) unify implementations such as localStorage, IndexedDB, redb, and memory, with noted browser library sizes.