An end to end encrypted note taking application with zero knowledge architecture and cross device synchronization.

Notesnook is an open-source, end-to-end encrypted cross-platform app for note-taking. It focuses on user privacy through a zero-knowledge architecture, ensuring that all data is encrypted on the local device before it ever reaches a server. The software is available as a cross-platform application, providing a consistent experience across desktop, mobile, and web browsers.
Users deploy the software via dedicated clients for Android, iOS, and desktop environments. It includes a specialized web clipper extension that allows users to capture content from the internet and save it directly into their encrypted notebooks. The application is designed for personal knowledge management, secure journaling, and organized note storage that remains synchronized across multiple devices without exposing the content to the service provider.
The project is organized as a monorepo to maintain consistency across its various clients. The front-end is developed using React, while the desktop client utilizes Electron and the mobile applications are built with React Native. A shared core package manages the business logic across all platforms, and a dedicated cryptography library wraps libsodium to handle the encryption and decryption processes. For local data storage, the system employs a streaming interface around an IndexedDB based file system, which ensures efficient data handling within the browser and desktop environments.
Notesnook is a privacy-centric tool for users who require the convenience of cloud synchronization and cross-platform access without sacrificing the confidentiality of their personal data.
A self-hosted note-taking tool for quick capture using a timeline-first interface and markdown-native formatting.
A markdown editor providing real-time preview and distraction-free writing modes for desktop operating systems.
Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.