Privacy is a fundamental right, an irrevocable entitlement held by all human beings from the moment of birth. However, this boundary has been crossed systematically over and over again, and a large population still lives under heavy monitoring and censorship.
This application encrypts notebook content in your browser before storing or sharing it. Keep your device, E2E key, and notebook link secure to help protect your content.
- Use it as a personal private notebook. For example, for daily notes, family secrets, etc.
- Personal lockbox. You can store private information such as passport numbers, etc.
- Share your notes with some of your friends for a limited time.
- Many more possibilities not listed here.
- There is a
View Allbutton, which shows all pages together with the same card and Markdown styling as the reading view. You can use your browser's search feature there to find the information you need. - While editing a multi-note notebook,
Hide sidebar/Show sidebartoggles the note list to give the editor and preview more room. - If you want to make a link to another notebook, sometimes the browser won't refresh due to routing issues. You can add another
/in front of/index.htmlto work around that. - Markdown code fences display language labels and syntax highlighting for Python, Java, Bash, JavaScript, CSS, JSON, YAML, Rust, Go, C, and C++. Other fence types are shown as plain text, and diagrams are not rendered.
- Indented Markdown code blocks are preserved in the note preview and View All, including notes that start with code.
- You create or modify the notebook in your browser on your local computer. Then you can choose to save it as a file or publish it to the web.
- If you save to a file, you can choose plain text or encrypted. When you publish a notebook, encryption and decryption happen in your browser. An
E2E keyadds password-based protection; we recommend using one for sensitive content. - This notebook is fully integrated and compatible with PrivateBin. You can save the data in PrivateBin and then decrypt and view it from this app.
You can read or write a notebook and then save or load from a local file.
- The
E2E keyis strongly recommended as it provides better protection. - Once you load the content, you can modify the note or save it with a different
E2E key.
- When creating it, you can start writing a notebook from scratch or load it from a pre-saved file.
- There are two ways to share the notebook:
- If this app is configured with PrivateBin, you can directly save it from the app. Then the shareable URL will appear at the top right of your screen.
- You can also gather the note data and publish it to a publicly available PrivateBin. This app can load from the public URL and translate it into another URL that you can share. Here is a list of publicly available PrivateBins: https://github.com/PrivateBin/PrivateBin/wiki/PrivateBin-Instances-Directory
- Here is a Peppa Pig's simple trivial questions without a password. And you need the answers from the simple one to open Peppa Pig's Advanced trivial questions.
- 中文问答 00后不懂的事情. 你必须答出来之前的题目才能够看 巧问妙答和笑话.
- Of course, you can always create a brand new notebook.
Here are a few notebook sites publicly available. They are mainly for demo purposes.
https://privapps.github.io/notebook/
There are two types of No Backend:
- Relays the notes to remote third-party PrivateBin sites. If the third-party storage dies or recycles, data will be wiped out.
- All your data is in your URL.
You can also find Docker images at https://hub.docker.com/u/privapps
See build details at https://github.com/privapps/notebook-docker-nginx-fpm-alpine-privatebin
We would love to hear your opinions. Please let us know via our Feedback Form.
The configuration is located at assets/config.json.
You can use PrivateBin as a backend. Additionally, there is a custom-built backend that allows editing existing notebooks, making it like a wiki/blog. See details at: https://github.com/privapps/notebook-docker-nginx-fpm-alpine-privatebin/
This project uses Angular 21.2 and Angular CLI 21.2.
Use Node.js 24 LTS and npm 10 or newer for development. The supported runtime range is recorded in package.json.
- In the root folder, do:
npm ci
- Launch the PrivateBin Docker container (note: using port 9080):
docker run -d --restart="always" --read-only -p 9080:8080 -v c:/temp/php:/app privatebin/nginx-fpm-alpine - Check the following two files, one for Angular proxy and the other for the app configuration:
\proxy.conf.json \src\assets\config.json - Start developing the app as a regular Angular one:
npm start -- --proxy-config proxy.conf.json
- Run the application checks:
npm run build npm run pbuild npm test npm run lint - Release:
npm run pbuild
To accomplish copying the URL and sharing it with others, some characters are replaced in the address bar after #:
/is replaced by___=is replaced by,?is replaced by---
If you have an encrypted file on your machine and don't want to or can't launch a web server, you can do:
inlinedata=$(cat "<encrypted_file>" | base64 -i - | sed 's'/\//./g')
# URL should be
# <prefix>#/notes/0/type,inline&symmetric,<key>&base64,<inlinedata>- Implement editable backend, so existing notebooks can be modified
- All your data in your URL
bitcoin:bc1qmyewq7mh03a3sd5zgvvg3y5sqgm5un3e7eayhq?time=1614371109
Thank you for helping with the maintenance and further development of the app. Please stand up to protect privacy, promote freedom of speech, and fight against censorship.
