Evolu is a TypeScript library and local-first platform.
For detailed information and usage examples, please visit evolu.dev.
The Evolu community is on GitHub Discussions, where you can ask questions and voice ideas.
To chat with other community members, you can join the Evolu Discord.
Evolu monorepo uses Node.js and pnpm.
Install dependencies:
pnpm install
Install Playwright browsers for local test and verify runs:
pnpm playwright:install
Run the browser install step again after Playwright updates or if the browser cache was removed.
Build scripts
pnpm build- Build packages (required once after clone/pull for IDE types)pnpm build:docs- Build doc (required once after clone/pull)pnpm build:web- Build docs and webpnpm build:web:fast- Deleteapi-referenceand build web only
Web build notes
- On macOS Tahoe, you may need to raise Launch Services limits too (shell
ulimit -nis not enough):sudo launchctl limit maxfiles 262144 262144
Start dev
pnpm dev- Start relay and web serverspnpm relay- Start relay server only (for mobile development)pnpm ios- Run iOS example (startrelayfirst)pnpm android- Run Android example (startrelayfirst)
Examples
Note: To work on examples with local packages, run
examples:toggle-depsfirst.
pnpm examples:react-nextjs:dev- Dev server for React Next.js examplepnpm examples:react-vite-pwa:dev- Dev server for React Vite PWA examplepnpm examples:svelte-vite-pwa:dev- Dev server for Svelte Vite PWA examplepnpm examples:vue-vite-pwa:dev- Dev server for Vue Vite PWA examplepnpm examples:build- Build all examples
Linting
pnpm lint- Lint codepnpm lint-monorepo- Lint monorepo structure
Testing
pnpm playwright:install- Install browsers required by Playwright-based Vitest projectspnpm test- Run tests- Vitest VS Code extension
Release
pnpm changeset- Describe changes for release log
Verify
pnpm verify- Run all checks (build, lint, test) before commit