Joplin screenshot
#116 B Rank #198

Joplin

A cross-platform, end-to-end-encrypted note-taking app with an optional self-hosted sync server for keeping devices in sync without a cloud vendor. Standout trait is genuine E2EE support baked into the sync protocol.

Notes/Docs TypeScript Medium to deploy $8/mo equiv
60.8 / 100

βš™ Full Stack

The sync server is a Node.js/Koa app backed by Postgres or SQLite, acting mostly as encrypted-blob storage for clients that do the real note-editing work locally (Electron desktop, mobile, CLI). The bulk of the project's engineering is client-side, not server-side.

πŸ“ˆ Scaling Analysis

The sync server itself is a thin, largely stateless blob-sync layer, so it scales adequately for personal or small-team use, but it was never built as a high-throughput multi-tenant service β€” most of the interesting engineering (search, editing, E2EE) lives in the clients, not the server.

πŸš€ Running on Nexlayer

Deploy the sync server as its own pod with a Postgres pod (`postgres.pod:5432`) for multi-user durability instead of the SQLite default. `APP_BASE_URL` needs to point at the Nexlayer-issued `<% URL %>` so client sync and share links work correctly.