All releases

v0.21.0

A reading mode that feels like a book

October 2026
This release adds a book-style reading mode and fixes how choices are worded.
  • Reading mode. Open any chapter in a full-screen book from the header button or with Ctrl+Shift+Enter (Cmd+Shift+Enter on a Mac). Chapters swap inside the book without a flicker. It works on Infinite stories, short stories and crossovers. Click outside the book or press Escape to close it.
  • A book you can hold. The pages sit in a hardcover with stacked page edges and a gutter shadow. Book look is on by default and can be switched off.
  • Real pages. The text is laid out in whole pages that never cut a line, with "Page 2 of 4" at the bottom. A turn lifts the page and swings it over, a small step at the end of a chapter glides instead, and the next turn opens the next chapter at its first page. Going back glides to the last page of the previous chapter. Reduced motion gets a plain fade.
  • Quiet controls. The toolbar is gone. Settings, sound and close sit as icons inside the right page's top corner, and Previous chapter on the book's left edge. Controls position in the settings moves them to any corner of either page, as a corner, a row or a column, and the text makes room so nothing sits under them. A second after the book opens they fade to 25% and come back at once when you hover, tab to them or tap near them. Turning pages leaves them faded. The Behaviour settings choose when they fade (immediately, after 1, 5, 10 or 30 seconds, or never) and how visible they stay (10% to 75%). On a phone they fold into one corner button. The first open points you at the gear once. A+ and A- change the text size in one tap and keep you on the line you were reading. On a phone, pinch the page to do the same. Fullscreen hides the browser bars where the browser allows it.
  • Settings beside the book. The gear opens a panel docked on the left, and the book itself is the preview. Pick Parchment, Sepia, Night or Slate: one preset now applies in light and dark mode alike. The backdrop starts at 95% darkness. In User Settings, the Reading tab's Configure reading mode button opens a sample chapter with the panel already open.
  • Choose the left page. Show the chapter's picture with its title, or the previous chapter. In an Infinite story the previous chapter lists its choices: pick another one and the right page fades into that chapter. The picture can be the chapter's own or the nearest earlier one, falling back to the cover, and it shows whole by default instead of cropped. With the previous chapter or no left page, the picture opens the right page above the chapter title.
  • Turn pages your way. Click the right side of the page or swipe left to turn one page, and go back with the left side or a swipe right. Page Down, Space and the arrow keys do the same. Linear stories end each chapter with a Next page button. The page stops right after the last choice or Next page button, with no blank paper below it.
  • Backdrops behind the book. Reading settings has a Backdrop group: the plain dimmed page, a blurred see-through view of the page underneath, or one of 131 AI-generated pictures (reading rooms, rainy windows, night skies, gardens and more). Dim strength and softness are adjustable. The gallery loads small previews only and fetches the full picture when you zoom or pick one.
  • Your own backdrops. Describe a scene and create a backdrop for one picture credit. Keep up to 12 for yourself, and share up to 15 with other readers under Community, where anyone can report one. A Collection rotates several backdrops every 30 seconds up to every 15 minutes, or with each chapter, in random or name order.
  • Short stories start at the beginning. Reading mode opens a short story at chapter 1, page 1, wherever the page underneath was scrolled.
  • Write the next chapter without leaving the book. Pick an unexplored choice, confirm the cost and the chapter appears inside the reader. This works for Infinite stories and branching crossovers. Short stories read in the book but are not continued there. Guests see the story but no generate action.
  • Create a picture. A chapter without an image shows a Create a picture button with its price in picture credits. The first press opens the picture style settings, so you choose before anything is charged.
  • Picture orientation. Picture creation now offers Portrait, Square and Landscape. Portrait is the default on the story page, Landscape in reading mode. The price stays the same. Tooltips in the picture dialog now show above an open dropdown.
  • Share with your theme. A story owner using a public Designer theme can share a link that opens the story in that theme. Visitors see it as a preview and can keep it or go back to their own.
  • Tidier Story details. The Story details block is grouped into Sharing, Story settings, Characters, Outline & export, and Delete or report, with one aligned label column. Infinite stories, short stories and crossovers share the layout.
  • Designer reading preview. While you edit a reading item, a book preview stays pinned in the top half of the Designer, and a note says which theme mode you are changing.
  • Reading mode in the tour. The first reader tour now shows how to open the book, turn a page and close it.
  • Choices keep the story's person. The app now detects whether a story is told in first or third person. Third-person stories offer choices that name the protagonist instead of "I ...". First-person stories keep "I".
  • Choice divergence scoring. When both offered choices start with the same word, usually the protagonist's name, that word is ignored before the overlap and open-thread checks. "Daniel follows Mira" and "Daniel confronts Mira" now count as different choices (overlap 0.33, was 0.5). The `choiceContract` verdicts stored on chapters before v0.21 used the old scoring and are not recomputed.
  • One charge per request. A repeated websocket request could charge a chapter twice. Each request is now claimed once, so a retry cannot double-charge.
  • Known issue. Scroll-driven sound cues do not follow scrolling inside the reading overlay yet.