Stars
Forks
Watchers
Developer links
Marfa
Marfa is a data layer you run yourself, where your notes, tasks, reading, and records live in one typed store that any app, script, or AI agent you allow can read and write. You decide what kinds of things you keep and how they connect, and the server checks every write against that structure, so a task, a book, and a person stay linked instead of scattered across five apps. Connectors pull in what already lives elsewhere, from GitHub repositories and issues, Todoist tasks, Readwise highlights, and RSS feeds, each writing under its own type with its own key. Keys are scoped, so the script that imports your reading list can never touch your tasks, and every change flows back out through a live event stream and full-text search. The marfa command line writes and reads from scripts and agents, the TypeScript SDK builds web apps on the same API, and the Swift SDK keeps an offline working copy on your devices that syncs its writes when your instance is reachable again. A folders command mirrors your notes as plain Markdown files on disk. Everything sits in one SQLite database and a folder of files on your server, with container deployment that streams backups to your own bucket. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. Apache-2.0 licensed.
Benefits
- Your Structure, Enforced
- Define the kinds of records you keep and how they link, and the server validates every write against that schema, so data stays coherent across every app using it.
- One Store, Many Apps
- Notes, tasks, reading, and files live in a single SQLite database on your server, and apps become interchangeable views onto it instead of silos you migrate between.
- Keys That Reach Less
- Every app, script, and connector gets a scoped credential that reaches only the data it was given, so a feed importer can never read or rewrite your tasks.
- Offline, Then It Syncs
- Swift SDK clients keep a working copy of the data they need and queue their writes offline, then send them when your instance answers again, with the instance arbitrating conflicts.
Features
- Typed Schemas And Edges
- Custom types describe your records and edges link them, with values checked against declared types, bounds, and defaults on every write the API accepts.
- Connectors Bring Data In
- GitHub, Todoist, Readwise, and RSS connectors pull outside data into your instance under their own types, and Todoist and GitHub App changes flow back to the vendor.
- Search And Event Stream
- Full-text search finds records across types, content-addressed blobs store file attachments, and a live event stream lets apps react the moment anything in your data changes.
- CLI For Scripts And Agents
- The marfa command line reads and writes the same API your apps use, so shell scripts and AI agents work your data directly, and notes mirror as Markdown.
- TypeScript And Swift SDKs
- Web apps build on @withmarfa/client generated from the OpenAPI surface, while native apps embed the Rust core through the Swift SDK and the @withmarfa/core Node module.
- Backups Stream To Your Bucket
- Container deployment replicates the SQLite database with Litestream and mirrors blobs to a bucket you control, so a lost server restores from your own storage, not a vendor's.