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

Try Rescriptus

The Rescriptus chapter editor, with coloured status marks on passages and story wiki links in a side panel.

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.