Papyra 1.0 is out. It's a notes app you run on your own server. It looks like Google Keep, and every note is a plain .md file.
That's the whole idea. The rest of this post is pictures.

The desk. Cards you can pin, colour, tag and drag around.
The folder is the storage
Every note is a Markdown file with a small YAML header. Here's one, straight off the disk:

No database blob. No export step. Just a file.
And here's the whole data folder. Your notes live in users/1/notes/. Everything Papyra keeps for itself goes in a hidden .papyra/ folder.
There is a SQLite database and a search index. They're caches. Delete them and Papyra rebuilds them from the files.
Other tools can edit your notes
Because they're files, anything can change them. Papyra notices and catches up. Here I add a line to a to-do list from a shell, and the open app updates on its own:

A real command on the real file. No reload.
Point Obsidian at the folder and it opens. Write a new note in Obsidian and it shows up in Papyra. grep works. Syncthing works. Git works.
What's in 1.0
Live editing together. Share a note and two people can type in it at the same time, with named cursors. It's still a .md file on disk.
Fast full-text search. Press Ctrl+K and type.
Links between notes. Type [[ to link another note. Every note lists what links to it.
Version history. Step back through earlier versions and see what changed.
A vault for private notes. Locked notes are blurred, open with a PIN (or your fingerprint), and are encrypted on disk.
Comments. Select text, leave a comment, resolve it later.
Pictures and PDFs inside notes. Drop them in. PDFs preview in place.
Works offline. Keep typing with no signal. It syncs when you're back.
Also in the box: two-step sign-in with an authenticator app, passkeys, single sign-on (OIDC), sharing by link, import from Obsidian and Google Keep, export to a zip, sealed backup files, and backup to a private GitHub repo.
It works on phones, too.
Install
One container, one volume:
curl -O https://raw.githubusercontent.com/lyfie-org/papyra/main/docker-compose.hub.yml
docker compose -f docker-compose.hub.yml up -d
Open http://localhost:8080 and create the first account. That's it. The image is built for amd64 and arm64, so a Raspberry Pi 4 or 5 works too.
Release Note
1.0 means I use it every day and I'm happy for you to. It does not mean it's finished or bug-free. It makes backups for you: keep them.
There's no hosted version and no native mobile app. There's an AI assistant in the code, but it's switched off for now.
And if Papyra isn't for you, delete it. You still have a folder of Markdown files. That's the point.
I'm Rahul. I vibe-coded Papyra: what would have taken me a year or more to build by hand took a few months. It's GPLv3 and self-hosted: one Docker container, your notes as plain Markdown files.










Top comments (0)