Work / 2026 – now
Rescriptus
A free writing app for novelists that puts a full manuscript editor and a deep worldbuilding wiki in one place, and keeps your book as plain files in storage you choose.
- Role
- Solo project. Design, build and hosting.
- Built with
- TypeScript, Next.js, React, CodeMirror 6, Yjs, Typst (WebAssembly), Playwright

Why I built it
I’m writing a fantasy novel, and I build the world before I write in it. The tools I tried did one half well: writing apps treat worldbuilding as an afterthought, and wiki tools can’t hold a manuscript. Rescriptus does both in one place.
It’s free, all of it. There’s no paid version, no subscription and no account to make. It isn’t AI either: nothing is generated, and your writing never leaves the storage you pick.
What it does
- A manuscript editor built for drafting. Mark any stretch of prose as raw, drafted, cleaned or published, and keep alternate versions of a passage to switch between before you choose one.
- A story wiki. Typed pages for characters, places and anything else, with family trees, relationship maps, timelines, calendars and a name maker.
- Maps. Draw terrain and floor plans, generate towns, import Azgaar maps and measure distances.
- Planning. A plan board, a plot grid, a release schedule and daily word goals.
- Working with other people. Live co-writing, guest reading with comments, and copies for beta readers.
- In and out. Import from Scrivener and Word. Export a print-ready PDF, EPUB, Word document or a website.
- Spelling and grammar checks that run on your device, using a rule-based checker.
Engineering
- The server never sees your writing. The browser talks straight to the storage you choose: the browser itself, a folder on your computer, GitHub, Google Drive, Dropbox or OneDrive. It works offline.
- Your book is plain files. Markdown and YAML in ordinary folders, readable in any text editor, with no hidden database. Files you didn’t change stay byte-for-byte identical, and a file it can’t parse opens read-only instead of being rewritten.
- A save engine designed not to lose work. A write journal, per-file locks, leader election between open tabs, three-way merges that keep a conflict copy when they can’t merge cleanly, and a recovery page.
- Print-quality PDFs in the browser, by compiling the Typst typesetting engine to WebAssembly.
- Tested hard. Around 6,000 unit tests, about 170 Playwright scenarios across Chromium and WebKit with an accessibility gate, and 575 visual-regression baselines covering light and dark themes on desktop and phone.
- Locked down. A strict Content Security Policy with per-request nonces, and network access limited to the storage providers.
- Self-hosted. It runs in Docker on my own server behind a Cloudflare Tunnel, and CI runs on my own GitHub Actions runners.





