Get Started / React Native

React Native quickstart (native-first)

Recommended path is native Automerge + native crypto in an Expo dev build or production build.

1) Run setup helper

# In your Expo / React Native app root
npx mindoodb setup-react-native

This copies patch files, configures patch-package, and prints Metro setup guidance.

2) Initialize native Automerge

import "./mindoodb-polyfills";
import { UseApi } from "@automerge/automerge/slim";
import { nativeApi } from "react-native-automerge-generated";

UseApi(nativeApi);

3) Minimal todo flow

const storeFactory = new InMemoryContentAddressedStoreFactory();
const cryptoAdapter = new QuickCryptoAdapter(quickCrypto);
const factory = new BaseMindooTenantFactory(storeFactory, cryptoAdapter);

// create user -> tenant -> db -> todo doc
const db = await tenant.openDB("todos");
const doc = await db.createDocument();
await db.changeDoc(doc, async (d) => {
  d.getData().title = "Pay invoices";
  d.getData().done = false;
});

Expected result: after running the sample flow, your UI should show a todo like Pay invoices (done: false).

Expo Go note

Expo Go is a limited fallback path and can be much slower for crypto-heavy operations. Prefer native dev builds for realistic performance.