Create, share, fetch and model Atomic Data! AtomicServer is a lightweight, yet powerful CMS / Graph Database. Demo on atomicdata.dev. Docs on docs.atomicdata.dev
This repo also includes:
- Atomic Data Browser, the React front-end for Atomic-Server.
@tomic/libJS NPM library.@tomic/reactReact NPM library.@tomic/svelteSvelte NPM library.atomic_libRust library.atomic-cliterminal client.fluttera Dart / Flutter client for Atomic Data, plus AtomicCanvas, a collaborative infinite drawing canvas that syncs peer-to-peer between devices.docsdocumentation / specification for Atomic Data (docs.atomicdata.dev).
Status: alpha. Breaking changes are expected until 1.0.
- 🏠 Local-first: create and edit data with no server at all. Resources are addressed by
did:adidentifiers and resolve peer-to-peer over the Mainline DHT, so an identity is a keypair you hold rather than an account on someone else's machine. Edits are signed CRDT commits that merge when you reconnect. - 🔒 Encrypted at rest, per agent: each agent's in-browser database is encrypted with XChaCha20-Poly1305, under a key wrapped by that agent's own private key. Signing out leaves the cache in place but unreadable to the next session, so no wipe is required.
- 🔑 Passkey-backed recovery: a WebAuthn passkey wraps the backup of your agent secret (Argon2id + AES-GCM), so onboarding hands you nothing to write down, and a lost device doesn't have to mean a lost account.
- 🚀 Fast (less than 1ms median response time on my laptop), powered by actix-web and redb
- 🪶 One self-contained binary (~70MB): server, web app, full-text search and database in a single file, with no runtime dependencies and nothing to install alongside it.
- 💻 Runs everywhere (linux, windows, mac, arm)
- 🔧 Custom data models: create your own classes, properties and schemas using the built-in Ontology Editor. All data is verified and the models are sharable using Atomic Schema
- ⚙️ Restful API, with JSON-AD responses.
- 🔎 Full-text search with fuzzy search and various operators, often <3ms responses. Powered by tantivy.
- ✨ AI with MCP support, use any model via OpenRouter or host your own with Ollama.
- 🗄️ Tables, with strict schema validation, keyboard support, copy / paste support. Similar to Airtable.
- 📄 Documents, collaborative, rich text, similar to Google Docs / Notion.
- 💬 Group chat, performant and flexible message channels with attachments, search and replies.
- 📂 File management: Upload, download and preview attachments.
- 💾 Event-sourced versioning / history powered by Atomic Commits
- 🔄 Real-time synchronization: instantly communicates state changes with a client. Build dynamic, collaborative apps using websockets (using a single one-liner in react or svelte).
- 🧰 Many serialization options: to JSON, JSON-AD, and various Linked Data / RDF formats (RDF/XML, N-Triples / Turtle / JSON-LD).
- 📖 Pagination, sorting and filtering queries using Atomic Collections.
- 🔐 Authorization (read / write permissions) and Hierarchical structures powered by Atomic Hierarchy
- 📲 Invite and sharing system with Atomic Invites
- 🌐 Embedded server with support for HTTP / HTTPS / HTTP2.0 (TLS) and Built-in LetsEncrypt handshake.
- 📱 Runs on mobile:
atomic_libcompiles into Flutter apps through flutter_rust_bridge, so phones get the same local-first store, signing and peer sync as the browser, not a thin REST wrapper. See/flutter. - 📚 Libraries: Javascript / Typescript, React, Svelte, Rust, and a Dart / Flutter client
Atomic.Data.Screencap.mp4
Check out the documentation for installation instructions, API docs, and more.
Issues and PRs are welcome! And join our Discord! Read more in the Contributors guide.
Atomic Data and AtomicServer have been supported by NLnet through the NGI Assure, NGI0 Entrust and NGI0 Commons funds, with financial support from the European Commission's Next Generation Internet programme, and through Eurostars. This is a large part of why the project is MIT licensed and has no proprietary core. Details and grant agreement numbers.