EweserDB

Local-first database SDK

Your notes.
Your data.
Every app.

EweserDB is a local-first, user-owned database. Write in one app, read in another. No lock-in, no vendor dependency, works offline.

Ewe Note
CRDT Sync
Flashcard App

The Data Dilemma

Apps should not hold your notes hostage.

The old world

  • You ask Notion: "Can I have my notes?"
  • Switching apps means starting over
  • Offline? Hope the app cached something
  • Your AI assistant cannot see your PKM

EweserDB world

  • Notion asks you: "Can I see your notes?"
  • All your data follows you to any app
  • Offline first. Always available. Always yours.
  • AI agents access your data via MCP, while you stay in control

"It is like decentralized Firebase, but users own the data, not the platform."

Your data, liberated.

Features built for true data ownership and seamless interoperability.

01

Works Offline, Always

Your data lives in your browser first. Notes sync when you are back online, automatically and silently.

02

Use Multiple Apps, Share One Dataset

Take notes in Ewe Note. Review flashcards in another app. Both read the same data with no export step.

03

Real-Time Collaboration

Share a room with a teammate. Edit together live. Conflict-free CRDT merging keeps every change intact.

04

Skip the Onboarding

Try a new app with your existing data already loaded. No friction. No vendor lock-in. No cold start.

05

Self-Host or Use Our Server

One-click deploy on Railway or run it on your own VPS. You own the server, so you own the data.

06

AI on Your Terms

Give Claude, Copilot, or any MCP-compatible agent access to your notes. You control what it can see and write.

For Developers

Build interoperable apps in minutes

Add @eweser/db to your app. Users bring their own data. No backend required.

Terminal
$ npm install @eweser/db yjs
app.ts
import { Database } from '@eweser/db';

const db = new Database({
  initialRooms: [{ collectionKey: 'notes', name: 'My Notes' }]
});

const room = db.getRoom('notes');
const Notes = room.getDocuments();

Notes.new({ text: 'Hello from any app' });

TypeScript-native

Strongly typed schemas for notes, flashcards, profiles, and _ref links between collections.

Yjs CRDT under the hood

Conflict-free offline sync with IndexedDB locally and Hocuspocus over WebSocket in real time.

MCP server built in

Claude Desktop and VS Code Copilot can connect through @eweser/mcp with no extra backend.

No backend required

Point your app at eweser.com or any self-hosted homeserver. Auth and sync are already handled.

Shared schemas

Interoperate with other EweserDB apps out of the box or extend with your own document types.

Open source, MIT

The whole monorepo is public. Self-host the stack and stay independent of our servers.

"Apps must compete on experience, not lock-in. Third parties can build on your users' data without needing permission from the original developer."

EweserDB philosophy

For Users

Try Ewe Note free

No sign-up friction. Works on our hosted server. Your data stays local in your browser first.

Open Ewe Note