notesnook README

The project's README from github.com/streetwriters/notesnook. As one markdown file: README.md.

Notesnook Logo

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

notesnook (streetwriters/notesnook)

Searching Database…

14.8K ·GitHub
这是什么?Notesnook 是一款免费、完全开源、端到端加密的笔记应用,定位为注重隐私的 Evernote 替代品。
这是单一应用,还是包含多个客户端的 monorepo?这是一个 monorepo,包含网页版、桌面版和移动版(Android/iOS)客户端,以及 core、crypto、editor 等共享包。
如何搭建开发环境?克隆代码后,运行初始化脚本(npm run prepare,其实际执行 husky install && npm run bootstrap),然后使用各项目对应的构建命令,例如网页客户端使用 npm run build:web。
我需要用 Yarn 或 pnpm 来参与开发吗?不需要。该项目所有子项目都只使用 NPM,不使用 Yarn、pnpm 或类似工具。
Notesnook 注重隐私,为什么还要求提供电子邮箱?README 将此列为容易引起困惑的已知问题,并附有专门的说明链接,表明尽管采用零知识设计,邮箱仍是必需的。
我的数据到底是如何加密的?Notesnook 在设备端对所有内容加密,加密算法使用 XChaCha20-Poly1305,密钥派生使用 Argon2,并遵循零知识原则。
我能从 Evernote 等其他应用导入笔记吗?可以。README 中提到了一个名为 Importer 的专用工具,用于从其他笔记应用迁移和导入数据。
我能自己验证加密的声明吗?可以。有一个名为 Vericrypt 的独立工具,专门用于让用户自行验证 Notesnook 的加密声明。
各个客户端使用了哪些技术?各平台的前端都使用 React;移动应用使用 React Native,桌面客户端使用 Electron,代码混用 JavaScript 和 TypeScript 编写。
有网页剪藏工具吗?有。monorepo 中包含一个网页剪藏扩展,以及其核心剪藏逻辑,二者作为独立的包存在。
What are similar projects?Trilium, PrivacyNotes.app, joplin, blinko, siyuan, devhub, ente, docs
Size
297.1 MB
Stars
14.8K
Age
5y
Commits · 90 Days