* web: bump version to 3.4.0-beta.1 * mobile: bump version * mobile: hide inbox settings when inbox api is disabled * mobile: fix failed inbox item text goes outside the view * mobile: add validation for creating api key name input * mobile: fix api key shows expired status if set to never expire * mobile: fix typo Notesbook to Notesnook * mobile: add missing setup inbox keys screen * mobile: update linkedom version * mobile: fix ts errors * mobile: show error on both inputs in case of invalid keypair * mobile: fix expired text not visible in light mode * mobile: show loading in switch item when disabling inbox api * mobile: enable save button only if keys are edited * mobile: make failed inbox item error json vertically scrollable * mobile: fix inbox pgp keys title text mismatch * mobile: ask user password before showing pgp keys * mobile: show inbox keys saved success message when inbox api created * intl: cleanup * mobile: show generic error below input fields * mobile: show full date-time on inbox api keys * mobile: update inbox enabled setting on userFetched event Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com> * core: add extensive logging around sync * mobile: fix scrollview in sheet --------- Co-authored-by: Ammar Ahmed <ammarahmed6506@gmail.com> Co-authored-by: 01zulfi <85733202+01zulfi@users.noreply.github.com> Co-authored-by: Ammar Ahmed <40239442+ammarahm-ed@users.noreply.github.com>
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:
- 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.
- React — the whole front-end across all platforms is built using React.
- React Native — For mobile apps we are using React Native
- Electron — For desktop app
- 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:
We take all queries, issues and bug reports that you might have. Feel free to ask.