GoatDB
lastmod 2025-03-13created 2025-03-131 edits
Lightweight NoDB for Deno and React
Features
- Real-time version-controlled database for lightweight deployment environments
- Optimized for prototyping, self-hosting, Single-Tenant apps, and ultra-lightweight Multi-Tenant environments without a backend or DB
- No separate infrastructure needed → runs the entire DB on the client, with no server-side indexing required
- Offline-First architecture → keeps working on the client and can recover even if the server goes down
- Edge-Native → performs most processing on the client to minimize server load
- Real-time sync support → automatically syncs client and server state
- A server cluster can be set up easily by setting replica locations in peers at initialization
- Supports server-to-server sync via a sync protocol, and scales without code changes even when more servers are added
- GoatDB's React Hooks provide a complete state management solution and allow synchronous (mutable) state modification
- For example, a change such as task.set('done', true) is reflected in memory immediately, and GoatDB automatically handles diffing, local storage commits, server sync, and conflict resolution in the background
- Each node keeps a public/private key pair, and the private key is never exposed externally
- Every commit is digitally signed, so tampered changes are rejected automatically
- Data access can be controlled through custom permission policies
- Three-Way Merge: automatically merges and cleans up conflicting changes
- Logoot-style sequential ID assignment: applies a unique identifier system that prevents insert/delete conflicts within data