# selfstore vs Evolu Source: https://selfstore.dev/compare/evolu Evolu is a local-first SQLite framework whose data is encrypted under a mnemonic; selfstore is a smaller library whose output is a portable encrypted file. The closest kin, with a real difference. ## What Evolu is The project in this space closest to selfstore's convictions. A local-first framework over SQLite with typed queries (Kysely), where all data is encrypted under a key derived from a cryptographically strong secret the user holds - representable as a **mnemonic**. Restore on any device by entering the words. The sync server is swappable; the default is one they operate. It is a genuinely good design, and if you want SQL on the client with real encryption, it deserves the look. ## What selfstore is Smaller and shaped differently. No SQL, no schema DSL, no query language: plain JSON collections plus binary files, an IndexedDB working copy, and a merge that runs in the browser. What it produces is the thing Evolu does not: a **portable encrypted ZIP** on an [open spec](https://selfstore.dev/docs/format), readable without this library at all, that the user can hold, copy and open years later. And there is no server in the loop, swappable or otherwise: the destination is a file on their disk, their Google Drive, a WebDAV server or an S3 bucket they control. | | Evolu | selfstore | | --- | --- | --- | | Data model | SQLite, typed SQL queries | JSON collections + files | | Queries | Yes, Kysely | None (snapshot model) | | The user's key | A mnemonic | A passphrase, or a passwordless group | | Recovery | Re-enter the mnemonic | Open the backup file | | Sync | A sync server (theirs by default) | Storage the user already owns | | The artefact | Rows on a server, encrypted | A ZIP the user holds | | Deletes | Soft, for time travel | Tombstoned, no history | ## Use Evolu when - You want to write SQL against local data, with types. - A mnemonic is the recovery story you want, and a sync server is fine. ## Use selfstore when - "Where is my data" must have an answer the user can point at: a file, on something they own, that opens in any archive tool. - You want nothing hosted, by anyone, including the library's author. Map of this site for a model: https://selfstore.dev/llms.txt Every page in one file: https://selfstore.dev/llms-full.txt