Zwei Wege zum Start.
Ein privates Fundament.
Haven ist der fertige Arbeitsbereich, mit dem dein Team die MindooDB-Plattform schon heute im Browser testen kann. Das MindooDB SDK ist die quelloffene Datenschicht darunter - binde sie in dein eigenes Produkt ein oder baue Apps für Haven. Beide Wege teilen dieselbe Ende-zu-Ende-Verschlüsselung, denselben Local-First-Sync und dieselbe signierte Historie.
Öffne Haven im Browser, installiere es als PWA und arbeite in wenigen Minuten mit deinem Team zusammen - verschlüsselt von Anfang an, local-first, ohne Server-Setup.
- Kostenlose Beta unter
haven.mindoodb.com- ohne Kreditkarte. - Installierbar auf iPhone, iPad, Android, macOS, Windows oder Linux.
- Nutze den Demo-Server, betreibe Haven lokal oder verbinde es mit deinem eigenen MindooDB-Server.
Installiere das SDK in Node.js, im Browser oder in React Native und bring dein erstes verschlüsseltes, local-first synchronisiertes Dokument an einem Nachmittag zum Laufen. Dasselbe SDK treibt Haven und jede eigene App darauf an.
- Ein SDK, drei Runtimes, kein Klartext auf der Leitung.
- Dieselbe Datenschicht wie in Haven und im MindooDB App SDK.
- Du baust stattdessen eine Haven-App? Dann geht es über Apps & SDK im Haven-Menü weiter.
Plattform-Guides
Jeder Guide führt dich von der Installation bis zum funktionierenden synchronisierten Dokument. Alle drei Runtimes sprechen dasselbe Protokoll und können untereinander synchronisieren.
Quickstart: Tenant, Dokument, Sync
Ein Aufruf erzeugt den Tenant mit Admin- und Benutzerschlüsseln, den KeyBag und den Eintrag im Verzeichnis. Auf jeder Plattform ist es derselbe Code — nur der Import-Pfad ändert sich.
import {
BaseMindooTenantFactory,
InMemoryContentAddressedStoreFactory,
} from "mindoodb";
const storeFactory = new InMemoryContentAddressedStoreFactory();
const factory = new BaseMindooTenantFactory(storeFactory);
// 1) Create tenant — generates admin + user keys, KeyBag, and directory
const { tenant, adminUser, appUser, keyBag } = await factory.createTenant({
tenantId: "acme",
adminName: "cn=admin/o=acme",
adminPassword: "admin-password",
userName: "cn=alice/o=acme",
userPassword: "alice-password",
});
// 2) Create a document
const db = await tenant.openDB("contacts");
const doc = await db.createDocument();
await db.changeDoc(doc, (d) => { d.getData().name = "John Doe"; });
// 3) Publish tenant to server + push encrypted changes
await tenant.publishToServer("https://sync.acme.com", {
registerUsers: [factory.toPublicUserId(appUser)],
});
const remote = await tenant.connectToServer("https://sync.acme.com", "contacts");
await db.pushChangesTo(remote); Du willst einen zweiten Benutzer hinzufügen? Funktionsweise zeigt den vollständigen Join-Ablauf für mehrere Benutzer.
Wie alles zusammenspielt
Jeder MindooDB-Client — ob in einem Node.js-Backend, in einem Web-Frontend oder in einer React-Native-App — spricht dasselbe verschlüsselte Sync-Protokoll. Der Server speichert und leitet Geheimtext weiter, ohne je Klartext zu sehen. Benutzer können offline arbeiten und synchronisieren nahtlos, sobald wieder eine Verbindung besteht.
Den vollständigen Ablauf für mehrere Benutzer ansehen →