Keep personal markdown notes that only you can read, even from the server operator.
Self-host a private notes app on your own Cloudflare account for family or friends.
Study a small, auditable example of client-side end-to-end encryption using WebAuthn passkeys.
| ddyy/pknotes | 0xkinno/neuralvault | 0xmayurrr/ai-contractauditor | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | hard | easy |
| Complexity | 4/5 | 4/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Needs a Cloudflare account and a passkey provider that supports the WebAuthn PRF extension.
pknotes is a note taking app that encrypts everything you write using your passkey instead of a password. It runs on Cloudflare Workers, and the encryption key comes from your passkey through a WebAuthn feature called PRF, so there is no master password and the person running the server has no way to read your notes. When you log in with your passkey, the same action that proves who you are also produces the bytes used to unlock your notes on your device. Those bytes never leave your browser. The server only ever stores your passkey's public key, an encrypted copy of your real encryption key, and the encrypted notes themselves. If someone copied the entire database, they would find nothing readable. Adding a new device just wraps the same key again, so passkeys can sync across your devices through services like iCloud Keychain without re-encrypting anything. A one-time recovery code, shown once when you sign up, is the backup way to unlock your key if you lose your passkeys. The project is upfront about its limits. The server can see how many notes you have, roughly how big they are, and when they change, and it could show you an old version of a note, though it cannot alter or swap one. Like any web app, whoever hosts the code you run in your browser could in theory ship a bad version, so trust rests on the code being small and readable, about 1,500 lines, and on the option to host it yourself instead. Under the hood it is built with Hono for the server, a Cloudflare D1 database for storage, and a React and Vite frontend with a CodeMirror editor for writing markdown. Losing every passkey and the recovery code means the notes cannot be recovered, since nobody, including the developer, holds a spare key. It can be deployed with one click on Cloudflare or set up manually, and registration can be closed once your own account exists.
pknotes is a self-hostable notes app on Cloudflare Workers where your passkey, not a password, generates the key that encrypts everything, so the server never sees readable data.
Mainly TypeScript. The stack also includes TypeScript, Hono, Cloudflare Workers.
The README does not state a license.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.