Liesel — A Local-First Reader With RSVP

Liesel is a local-first web app for reading .txt and .epub documents, with RSVP (Rapid Serial Visual Presentation) as the flagship mode. Everything you do persists, so reloading drops you back on the exact word, page or scroll position.

Reading modes

  • RSVP — one chunk flashed at a time, with the Optimal Recognition Point letter colored and held on a fixed focal line so your eye never moves. Configurable speed, minimum chunk size, punctuation pause, long-word dwell and font size.
  • Scroll — the whole document as flowing text, with optional auto-scroll whose speed is derived from a target words-per-minute. Swipe to adjust the speed while it runs.
  • Paginated — viewport-sized pages turned with arrows or swipes, reflowing on resize while keeping your place.
  • Listen — the document read aloud with the browser’s text-to-speech, highlighting each spoken word. Voice and rate are remembered per book.

All four modes share one word-index anchor, so switching modes keeps you on the same word. EPUBs are parsed into chapters with a Contents panel showing per-chapter progress.

Vanilla JavaScript, no build step and no runtime dependencies. Your books stay in your browser.

Built with AI

This app was built with AI. I made it together with Claude, Anthropic’s AI assistant, using Claude Code, a tool that works directly in the terminal. I described the reading modes and how each one should feel. Claude wrote the code, and I directed the design, made the product decisions and tested everything in the browser. Commits that Claude wrote are marked as co-authored by Claude in the git history.

Click here to try it out!