Notesnook is a free, open source note taking & knowledge management project written in TypeScript and released under GPL-3.0. It has 14,604 GitHub stars, 1,007 forks and 1,012 open issues, and was last pushed 13 hours ago. On this registry it ranks #13 of 25 tracked projects in Note Taking & Knowledge Management, with 5 head-to-head comparisons available. It gained 28 stars over the last 6 tracked days.

Notesnook — Zero-knowledge encrypted notes that sync across all devices

What is Notesnook?

What it is

Notesnook is an open-source, end-to-end encrypted note-taking application in the productivity and knowledge-management ecosystem. It is presented as a free alternative to Evernote, with clients for the web, desktop, and mobile platforms. The project uses a TypeScript and JavaScript monorepo, React for the interface, React Native for mobile apps, and Electron for the desktop app.

The concrete problem it solves is keeping notes synchronized across devices without exposing their contents to the service provider. Notesnook addresses this by encrypting data on the user's device with XChaCha20-Poly1305 and Argon2, and by publishing its client code under GPL-3.0 so users can inspect the implementation.

Key capabilities

  • Notesnook encrypts note data locally on the user's device using XChaCha20-Poly1305 and Argon2.
  • The project provides web, desktop, and Android/iOS clients from a shared codebase and a common core package.
  • The desktop client is built with Electron, while the mobile clients are built with React Native.
  • A web clipper package and browser extension are included for capturing page content into notes.
  • A cryptography package wraps libsodium, and a streamable file-system package provides a streaming interface around an IndexedDB based file system.

Who uses it and how

  • Individuals who want an Evernote-like note-taking experience with local encryption can use the web client or download the desktop and mobile apps.
  • Cross-platform users can keep notes available on the web, on a desktop computer, and on Android or iOS devices.
  • Browser users can use the web clipper extension and clipper core to capture page content for later note-taking.
  • Developers can build and modify the web, desktop, and mobile clients from the monorepo using NPM, React, React Native, Electron, and TypeScript.

Getting started

The README points users to the Notesnook website for downloads and access to the web client, and it states that the repository contains the code needed to build the web, desktop, and mobile clients. Developers can work from the monorepo with NPM, since the project does not use Yarn or PNPM.

When to use it — and when not to

Notesnook is a good match for users who want an open-source, end-to-end encrypted alternative to Evernote and who value a public codebase for web, desktop, and mobile clients. It may be less suitable for users who need a documented self-hosted deployment path, because the README describes client builds and downloads but does not provide Docker images, database setup, storage configuration, SMTP setup, or backend deployment instructions. The repository metadata also lists 1,012 open issues and 0 contributors, so potential users should review current maintenance and support before adopting it for critical note-taking needs.

project readme (upstream, from github) — read inline

Notesnook

An end-to-end encrypted note taking alternative to Evernote.

Website | About us | Roadmap | Downloads | Twitter | Discord

Overview

Notesnook is a free (as in speech) & open-source note-taking app focused on user privacy & ease of use. To ensure zero knowledge principles, Notesnook encrypts everything on your device using XChaCha20-Poly1305 & Argon2.

Notesnook is our proof that privacy does not (always) have to come at the cost of convenience. We aim to provide users peace of mind & 100% confidence that their notes are safe and secure. The decision to go fully open source is one of the most crucial steps towards that.

This repository contains all the code required to build & use the Notesnook web, desktop & mobile clients. If you are looking for a full feature list or screenshots, please check the website.

Developer guide

Technologies & languages

Notesnook is built using the following technologies:

  1. JavaScript/Typescript — this repo is in a hybrid state. A lot of the newer code is being written in Typescript & the old code is slowly being ported over.
  2. React — the whole front-end across all platforms is built using React.
  3. React Native — For mobile apps we are using React Native
  4. Electron — For desktop app
  5. NPM — listed here because we don't use Yarn or PNPM or XYZ across any of our projects.

Note: Each project in the monorepo contains its own architecture details which you can refer to.

Monorepo structure

Name Path Description
@notesnook/web /apps/web Web client
@notesnook/desktop /apps/desktop Desktop client
@notesnook/mobile /apps/mobile Android/iOS clients
@notesnook/web-clipper /extensions/web-clipper Web clipper
@notesnook/core /packages/core Shared core between all platforms
@notesnook/crypto /packages/crypto Cryptography library wrapper around libsodium
@notesnook/clipper /packages/clipper Web clipper core handling everything related to actual page clipping
@notesnook/editor /packages/editor Notesnook editor + all extensions
@notesnook/editor-mobile /packages/editor-mobile A very thin wrapper around @notesnook/editor for mobile clients
@notesnook/logger /packages/logger Simple & pluggable logger
@notesnook/sodium /packages/sodium Wrapper around libsodium to support Node.js & Browser
@notesnook/streamable-fs /packages/streamable-fs Streaming interface around an IndexedDB based file system
@notesnook/theme /packages/theme The core theme used in web & desktop clients

Contributing guidelines

If you are interested in contributing to Notesnook, I highly recommend checking out the contributing guidelines. You'll find all the relevant information such as style guideline, how to make a PR, how to commit etc., there.

Support & help

You can reach out to us via:

  1. Email
  2. Discord
  3. Twitter
  4. Create an issue

We take all queries, issues and bug reports that you might have. Feel free to ask.

Additional Resources

Frequently asked questions

Is Notesnook free to use?

Notesnook is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Notesnook do?

Zero-knowledge encrypted notes that sync across all devices

What is Notesnook written in?

Notesnook is primarily written in TypeScript. Its source is publicly available at https://github.com/streetwriters/notesnook, and it has 14,604 GitHub stars.