We are currently rewriting the entire Evolu codebase to implement a new synchronization protocol and remove the dependency on Effect. This rewrite aims to make Evolu more efficient, flexible, and easier to use while enabling powerful new features.
The rewrite has been completed, and the new sync is almost done. Expect experimental releases before the final stable version.
Thank you for your support and patience as we make Evolu better than ever! 💡
Local-first platform designed for privacy, ease of use, and no vendor lock-in
NonEmptyString1000
, PositiveInt
, etc.)Local-first apps allow users to own their data by storing them on their devices. Modern browsers provide API designed precisely for that. How is it different from keeping files on disk? Files are not the right abstraction for apps and cannot synchronize among devices. That's why traditional apps use the client-server architecture. But using client-server architecture also means that users' ability to use an app depends on some server that can be offline, temporarily or forever, if a company decides to ban a user or even goes bankrupt. That's unfortunate. Luckily, a way to restore data ownership exists. It's Evolu.
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 pnpm.
Install the dependencies with:
pnpm install
Build Evolu monorepo:
pnpm build
Start developing and watch for code changes:
pnpm dev
Start iOS developing (pnpm dev must be running too):
pnpm ios
Lint and tests:
pnpm lint test
Describe changes for release log:
pnpm changeset