A simple, desktop note‑taking app with encryption. All notebooks and notes are stored locally and encrypted with a passphrase you supply on startup. This is a project started to learn electron (and a bit more about encryption.)
-
Organization
Create multiple notebooks, each containing any number of notes. Drag notes and notebooks around to your liking! -
Automatic saving
Notes are saved automatically as you type. -
AES‑256 encryption
Your data is encrypted on disk using a key derived from your passphrase via PBKDF2. -
Portable data folder
Copy your user data folder (containing the encrypted database and salt) to another computer and open with the same passphrase.
- On first launch a 16‑byte random salt is created and stored in your user‑data folder.
- Each startup, you enter your passphrase; the app runs PBKDF2 once to generate a 256‑bit key.
- Note titles and content are encrypted with AES‑256‑GCM and stored in a local SQLite database.
- Without the correct passphrase and salt, the database contents are unreadable.
- The encrypted SQLite file (paperback.db) and the salt live in your OS’s user‑data directory.
- Copy that entire folder to a new computer, install Paperback there, and enter the same passphrase to unlock all your notes.
-
Clone the repository.
-
Run
npm install. -
In development use
npm run start. -
For a production build use
npm run buildand thennpm run distto package an installer.
- Upon first using the app, you'll be prompted with a request for a passphrase
- This will be the ONLY passphrase that works! Don't forget it!
- Once entered, you'll be able to add notebooks and notes as you like!
- Try creating a notebook!
- Just remember that you'll be prompted with entering the passphrase every time you start the app!
- Vue.js 3 & Tailwind CSS: Frontend
- Electron.js: Backend
- Better-sqlite3: Database
- Vuedraggable: For dragging/moving notes & notebooks
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.



