HubLensTauriepicenter-so/epicenter
epicenter-so

epicenter

Other#Local-first#CRDT#Svelte#Tauri#TypeScript
View on GitHub
4,491

// summary

Epicenter is an ecosystem of open-source, local-first applications that store data as plain text and SQLite files on your machine. It utilizes Yjs CRDTs to ensure seamless multi-device synchronization while maintaining user privacy through client-side encryption. Developers can leverage the core workspace library to build custom applications that share a unified, typed data schema.

// technical analysis

Epicenter is an ecosystem of local-first, open-source applications designed to provide users with full ownership of their data by storing it in a single folder of plain text and SQLite files. The architecture centers on Yjs CRDTs as the source of truth, which are materialized into SQLite for high-performance querying and markdown for human-readable accessibility. This design solves the fragmentation of data across multiple tools by allowing different applications to read and write to the same shared workspace, while ensuring privacy through client-side encryption and a relay-only sync server.

// key highlights

01
Uses Yjs CRDTs as a single source of truth to enable seamless, multi-device synchronization of local data.
02
Materializes data into SQLite and markdown files, allowing users to query, grep, or edit their information using external tools like Obsidian.
03
Implements client-side end-to-end encryption, ensuring the sync server acts only as a relay and never gains access to user content.
04
Provides a modular library, @epicenter/workspace, that allows developers to define typed schemas and build custom apps with built-in sync capabilities.
05
Features a strict architectural separation between core logic, middleware, and application layers to ensure maintainability and reusability.
06
Supports a diverse set of local-first tools, including transcription, note-taking, and browser-based tab management, all sharing the same data layer.

// use cases

01
Building local-first applications with shared CRDT-backed data schemas
02
Synchronizing notes, transcripts, and chat histories across multiple devices
03
Integrating AI tool calling with local workspace data and virtual filesystems

// getting started

To start using Epicenter, you can download pre-built binaries for macOS, Windows, or Linux from the GitHub releases page. Developers interested in building on the platform should clone the repository, ensure Bun and Rust are installed, and run 'bun install' to set up the environment. You can then explore the @epicenter/workspace library to define your own schemas and integrate CRDT-backed tables into your applications.