explaingit

streetwriters/notesnook

14,038TypeScriptAudience · generalComplexity · 3/5Setup · moderate

TLDR

An open-source note-taking app that encrypts your notes on your device before syncing, so even the service can never read your content, available on web, desktop, and mobile.

Mindmap

mindmap
  root((notesnook))
    Privacy
      Zero-knowledge
      On-device encryption
      Vericrypt checker
    Platforms
      Web browser
      Desktop app
      Mobile app
    Tech stack
      TypeScript React
      React Native
      Electron libsodium
    Features
      Web clipper
      Note import
      Cross-device sync
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace Evernote or other cloud notes apps with one where only you can read your notes

USE CASE 2

Save web pages into encrypted notes using the browser extension web clipper

USE CASE 3

Import existing notes from other apps and keep them privately encrypted

USE CASE 4

Access the same encrypted notes across phone, desktop, and browser with automatic sync

Tech stack

TypeScriptJavaScriptReactReact NativeElectronlibsodium

Getting it running

Difficulty · moderate Time to first run · 30min

Requires creating a free account with an email address, self-hosting the backend is possible but adds significant setup complexity.

Open-source, check the repository license for specific terms on use and redistribution.

In plain English

Notesnook is an open-source note-taking app positioned as a privacy-focused alternative to Evernote. All notes are encrypted on your device before they leave it, using two specific encryption algorithms (XChaCha20-Poly1305 and Argon2), so the service itself never sees your note content. This approach is sometimes called zero-knowledge encryption. The app is available across web browsers, Windows, Mac, and Linux desktops, and Android and iOS phones. A browser extension called the web clipper lets you save content from any web page directly into your notes. All clients share the same core codebase and sync through the same backend. The technical stack is TypeScript and JavaScript throughout, with React powering the web and desktop interfaces, React Native handling the mobile apps, and Electron wrapping the desktop version. Everything lives in a single repository with separate packages for the editor, cryptography layer, core sync logic, theme, and logging. The cryptography package is a wrapper around libsodium, a widely audited encryption library. If you want to independently verify that the encryption works as described, the project links to a tool called Vericrypt where you can check those claims yourself without trusting the developers. To use the app, you visit the website and create a free account with an email address. The README links to a blog post explaining why email is required. You can import existing notes from other apps using a separate Importer tool. Support is available via Discord, email, Twitter, or by filing a GitHub issue. Contributing guidelines are included in the repository for anyone who wants to help build it.

Copy-paste prompts

Prompt 1
I want to run Notesnook locally from source. Walk me through setting up the monorepo, installing dependencies, and starting the web app.
Prompt 2
How does Notesnook's zero-knowledge encryption work? Explain XChaCha20-Poly1305 and Argon2 in simple terms and show how the cryptography package wraps libsodium.
Prompt 3
I'm moving from Evernote to Notesnook. What does the import process look like and where do I find the Notesnook Importer tool?
Prompt 4
How is the Notesnook monorepo structured? What are the separate packages and which one handles sync between devices?
Open on GitHub → Explain another repo

← streetwriters on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.