Your partner in Marketing & IT
Menu
Custom solution ยท app / privacy

End-to-end encrypted notepad โ€” PWA app (self-hosted)

PWAE2E encryptionWebCryptoSelf-hostedOfflineNo framework

A quick note saved in your system notepad stays on that one computer โ€” it is nowhere to be found on your phone or a second device. The cloud (Notion, Keep, OneNote) means an account with a third-party provider and data outside your control. We built an app that flips this model: your data sits on your own hosting, and the encryption key never leaves your devices. The server โ€” and anyone who gains access to its files โ€” sees nothing but ciphertext. The app installs from the browser as a standalone window on Windows, macOS and iPhone, works offline and saves changes on its own. One tool, every platform, zero subscription.

How it works โ€” step by step

Step 1

Passphrase on the device

Once per device you enter a passphrase; a key is derived from it (PBKDF2) and stays strictly local.

Step 2

You write a note

The title is the first line of the content. You never click "Save" โ€” the app does it for you.

Step 3

Encryption in the browser

Content and title are encrypted with AES-256-GCM before anything leaves the device.

Step 4

Saved to your hosting

Only ciphertext reaches the server, as a plain file. The backend does not know the key and can decrypt nothing.

Step 5

Cross-device sync

A note from your computer is waiting on your phone and second computer โ€” with no action on your part.

Step 6

Conflict detection

Editing in parallel on two devices ends in a clear choice of version, not a silent overwrite.

Step 7

Offline mode

With no connection you can still view recent notes; pending saves send themselves once you are back online.

What you get

Your data, yours alone

Even a full leak of the server files reveals no content โ€” without the key it is unreadable ciphertext.

One app, every platform

A PWA from a single codebase on Windows, macOS and iPhone โ€” no app stores and no separate versions.

Autosave and zero friction

Saved a second after you pause typing and when you close the window โ€” you never lose a thought.

Lightweight hosting

Runs on the cheapest PHP + HTTPS hosting: no database, no dependencies, no build process.

Fully auditable

Around 700 lines of custom code and zero external libraries โ€” no supply-chain vulnerabilities.

Works offline

View and write without a connection; sync catches up automatically once you reconnect.

Details

Privacy that is not a marketing slogan

Encryption happens in the browser (WebCrypto, AES-256-GCM) before data leaves the device. The key, derived from your passphrase (PBKDF2, 600,000 iterations, random salt), stays in the device memory. Even titles are encrypted separately โ€” the server knows neither the content nor the names of your notes. We deliberately document the boundary of the model: it protects against a data leak from the server, not against tampering with the app code itself โ€” an unavoidable limit of every web-based E2E application.

Sync without silent overwrites

Every save carries a marker of the version the client last saw. When the server holds newer content, you get a clear choice โ€” "keep mine / load theirs" โ€” and late saves after a network failure write a copy alongside rather than overwriting the newer version. On top of that, saves are queued and a note is only switched after it has loaded successfully โ€” so one note's content never lands under another note's identifier.

Deployment without DevOps

The whole thing is a few files copied to any PHP + HTTPS hosting. No database, migrations or build process. Notes are ordinary files in a directory cut off from the web, with unguessable names and path-traversal protection; login is based on an HMAC token and a year-long cookie (resilient to iOS clearing its storage).

Got a question? Looking for a solution?

Write to us โ€” we reply quickly and to the point.