What’s new in Underfiction

Five classics and a new front door

Pride and Prejudice, Jane Eyre, Dracula, Persuasion, and Sherlock Holmes joined the built-in library, with authored openings in every supported language. The Library and the landing page open on a moving showcase, and picking a world or a character drops you straight into setup. Choose the narration voice, or write a standing direction every turn follows. Your library lives on your device: portable .underfiction archives carry one story or the whole shelf between web, iOS, and Android.

The Library, rebuilt for the phone

The Library has its own shape on a phone now: a showcase that fits the width, a menu that sizes to its labels, and detail views with one clear way back. The navigation menu stays put on the pages it opens.

Credits read in your language

Credit amounts in logs, generation details, and top-ups are written in the language you are reading, on web, iOS, and Android.

Import says what went wrong

A character card or archive that will not open now names the file and the reason, instead of failing with one generic line.

Model rates on Android

The Android model picker shows what each model costs per turn, matching web and iOS.

Browse the openings on iPhone and Android

The starter browser is native now: page through the built-in worlds, their leads, and every authored opening without leaving the Library.

Directions, grouped at setup

Narration nudges are called directions, and story setup groups them into sections instead of one long list.

Duplicating a character keeps your place

Copying a character asks first and leaves the editor open, instead of dropping you back to the list.

Narration directions

Choose the voice before you write: First Person, Second Person, Present Tense, Inner Thoughts. The narrator holds what you pick for the rest of the scene, and scene summaries now keep that voice instead of pulling the prose back toward third person.

Standing directions

Give a story a direction in your own words — "keep her unreliable", "no dialogue tags" — and every turn follows it. It outlasts compression, travels inside portable archives, and comes along when someone takes the pen on a shared excerpt.

Four new openings in the original worlds

Pip, Syra, Lydia, and Lola each get an authored opening built on a shared secret or a craft rather than a stated romance. They lead their worlds in the library rail, and The Antler & Stone reaches the showcase for the first time.

Private or anonymized, stated plainly

Story and narration model pickers mark which models run inside Venice and which reach the model through anonymized routing. Hover a badge and it spells out what that guarantee covers.

Your library lives on your device

Stories, characters, and worlds are held locally, and nothing about them leaves the device unless you move it yourself. Portable .underfiction archives are how a story or a whole library travels between web, iOS, and Android.

One composer at every width

The prose composer uses a single compact layout from phone to desktop, and long speaker names no longer crowd out the field.

Steadier on every platform

Fixed iOS navigation dismissal and zoom transitions, web header and scrollbar shifts, Android segmented-control sizing, and a setup layout that moved while an animation ran.

The world showcase

The starter grids are now a moving showcase on the landing page and in every Library. Lead characters frame each world, the openings read like a table of contents, and the stage advances on its own until you touch it.

Straight into setup

Pick a world or a character and you land in story setup. The onboarding walkthrough and the separate persona step are gone.

Carry your whole library

Export everything — stories, characters, worlds, images, videos — as one portable .underfiction file, and import it on any other device. Merging keeps whichever copy of a story you edited last.

An empty shelf opens the Library

If you have not written anything yet, your shelf opens on the built-in worlds and characters instead of a blank screen.

The classics in eight languages

The complete classics collection — worlds, canon leads, and openings — is now localized in all eight supported languages.

A new landing page

Rebuilt around the showcase, with starting in the browser as the first move and the native apps a quieter link below it.

Five literary classics

Pride and Prejudice, Jane Eyre, Dracula, Persuasion, and Sherlock Holmes joined the built-in library on web, iOS, and Android — eight canon leads, new cover art, fifteen authored openings. You are not the protagonist by default: you take the governess's chair in Jane Eyre, Anne's position in Persuasion, and elsewhere you arrive beside canon as a confidante or a client.

Recommended models first

The story model picker opens on a clear first group of recommended models, with ratings and prices lined up down the list. Kimi K3 is back in the lineup.

Animate an image from earlier in the story

Any illustration already attached to the story can be the source when you animate a scene, not just the most recent one.

Illustrate and Animate, named the same everywhere

Media actions use the same labels and sit in the same place on web, iOS, and Android.

Stories follow your language

The prose language follows what you write, independent of the interface language. Switch mid-story and the narrator switches with you; keep going and it stays in the scene's language. The per-story language setting is gone, and interface language moved into Preferences.

World artwork on story cards

Story cards show the artwork of the world they belong to again.

Turn actions stay out of the way

Rerun, edit, share, and the rest stay quiet until you reach the passage they belong to.

A design pass across platforms

Tuned story setup, character editing, settings, navigation, and the input bar so web and iOS read as the same product at the same rhythm.

Write from an image

Attach an image to your next turn and the narrator writes from what it sees — a face, a room, a photograph you want in the scene. On web, iOS, and Android.

Read it aloud

Have any passage narrated in the model and voice you choose. Narration is cached on your device, so replaying a passage is free.

Export a story

Take a story whole, or stopped at any earlier turn, as readable Markdown or as a portable .underfiction archive carrying its characters, world, images, and videos.

Library actions in the toolbar

Import, export, and the rest of the library actions moved out of the page body and into the toolbar.

Clearer credit use

Credit spend rounds the way you would read it, and model pricing labels in story setup say what they mean.

Localized menus keep their labels

Fixed menu labels that fell back to English and a language switch that did not always take.

Opus 5

Upgraded Claude Opus from 4.8 to Opus 5 — a step up in long-scene coherence and prose control at the same price. Context window and credits-per-turn are unchanged; existing stories pick it up automatically.

Starter stories and Gemini 3.6 Flash

New starter stories on the landing page and in Library — curated openings you can step into with one tap, now on web, iOS, and Android. The library gained a Mine/Library switch so built-in material and your own work stay cleanly separated. Gemini 3.6 Flash joined the model picker and became the default story model.

Alternate takes that stick around

Rerun a turn and your alternate takes now survive a cancel, a failed generation, or leaving the story and coming back. Long scenes cost less to continue: history compression is cache-aware, runs in the background, and keeps a rolling digest so deep scenes hold together. Scene summarization moved server-side with bounded input on every platform, story opening became faster, and Kimi returned to the lineup.

Shared story excerpts

Share a moment from any story as an unlisted link — a directive and the prose it produced, in a clean reader view. Readers can take the pen: one tap copies the full setup into their own library so they can continue the scene their way. Links are unlisted and never indexed; only you can share them.

New models, honest errors

Added Hermes 4 405B through a second inference provider and Inkling to the picker, and upgraded Kimi to K3. Model prices are now derived from each model's measured output, so credits-per-1k-characters reflects what prose actually costs. When a provider declines a scene you see its verbatim reason instead of a generic error. Stories starting from a blank scene now write their opening instead of failing, and retrying a failed generation no longer duplicates turns.

Character books and crypto top-ups

Character books now fire in the story: entries trigger on their keywords as the scene unfolds, on every model tier. Tavern card import is lossless — scenario, greetings, and books survive the round trip. Character sheets are reordered around what steers the prose, with a new details section. Credits can now be topped up with crypto. Generation failures report their actual cause, and empty generations refund automatically.

Illustrate and Animate

Generate images of your characters and scenes right from the story, and turn an illustration or background into a short video clip. Added GPT 5.6 Terra, Kimi K2.6, and DeepSeek V4 Pro to the model lineup, with Seedream 5 Pro leading image generation. The composer now collapses settings, Illustrate, and Animate behind a single plus menu.

Scene backgrounds and scene navigator

Set the mood with a scene background image, toggled right from the input bar. Jump between chapters with the new scene navigator on the story title. Tavern character cards (V2 and V3) and world books import on every platform, and worlds are now config-only packages with a single scene-start flow.

Story opening modes and greetings

Added opening modes for new stories: Adapt for directed setup, Verbatim for exact authored openings, and Character for first-cast greetings. Character greetings now round-trip through local libraries and TavernCard first messages across web, iOS, and Android.

Opus 4.8

Upgraded the default model from Opus 4.7 to Opus 4.8 for sharper prose and stronger scene continuity. No change to ratings, context window, or pricing structure.

Traditional Chinese and Android release polish

Completed Traditional Chinese localization across the mobile UI, built-in characters, worlds, prompts, scene summaries, and store metadata. Tightened Android release automation so Play metadata follows the release tag and the uploaded AAB's versionCode, and pointed the Android landing CTA at the live Play Store listing.

Android review build

Prepared the Android build for Play Store review with Spanish localization, smoother story-screen keyboard behavior, and final reader input polish.

Model bumps and webhook reliability

Upgraded Opus from 4.6 to 4.7. Bumped the freedom rating on GPT and the quality rating on Gemini to reflect recent provider improvements. Fixed a credit-purchase webhook bug where some Stripe deliveries silently retried instead of posting credits cleanly on the first try.

Credits UX and landing redesign

Overhauled the credits experience with cleaner controls, a smarter default amount, and instant rendering of saved cards and auto top-up. Redesigned the landing page with a full-screen hero, prose sections, and a simplified world showcase. Fixed missing tab bars when navigating directly to /characters or /stories, and resolved a handful of hydration errors. Loading skeletons now match the actual content they replace.

Mood removal and reveal stability

Removed the mood system entirely — presets, prompts, and UI — to simplify story setup and let your prompts shape tone directly. Stabilized paragraph reveal during streaming so text lands smoothly. Improved the main menu, fixed a hero image flash on world open, an edit-last-turn bug, and assorted mobile polish issues.

Spacing pass and new art

Normalized spacing across galleries, modals, and page shells, and tightened touch targets on mobile. Switched to new generative cover art across the worlds.

Design system foundation

Introduced shared typography, control, surface, and spacing token systems across the app for consistent rhythm and visual language. Refreshed the logo, favicons, and promo video, and polished the navigation icons.

Core templates and My Worlds

Built-in worlds and characters are now immutable templates — editing one transparently clones it to your personal library on first edit, so the originals stay clean. Added a dedicated My Worlds section, made the Core sections collapsible, and refined character card defaults. Added a Sentry alert for missing Venice pricing so model gaps get caught before users hit them.

Fast-track story creation

New fast-track flow lets you start a story in seconds — pick a world, drop in a character or persona, and you're writing. Refined the mobile bottom navigation, polished modal interactions, and added new crosspost articles to the blog.

Image polish and promo video

Image previews now appear instantly, with no shimmer flicker when changing sources. Embedded a promo video on the landing page and refreshed the model picker.

World books and SEO

Export a world and all its characters as a portable book file, and import books from other users with their images included. Added comprehensive SEO infrastructure with structured data, blog posts, homepage FAQ, and an accessibility pass that brought the PageSpeed score to 100.

Streaming and scroll performance

Stabilized text reveal streaming so paragraphs land without jumping. Fixed shimmer flicker on cached character images, resolved leaked body scroll locks, and improved overall scroll performance on long stories.

Scene intelligence

Rewrote scene summary prompts to better preserve character dynamics and relationship arcs across transitions. Unified the scene opening flow so new scenes, forks, and regenerations all start consistently. Added user-friendly provider error messages that name the model and offer a one-tap retry.

Story runtime refactor

Rebuilt the core story runtime for reliability and lower token cost. Menu pages now open as overlays inside the story view so you never lose your place. Added mid-scene history compression to keep long conversations affordable, and introduced a free-tier framing for new users.

Stability and security sweep

Fixed race conditions in the billing pipeline and library reconciliation. Patched a cross-user data leak, closed an auth bypass on system-generated content, and added missing database indexes. Improved cursor stability during streaming.

Patronage

Introduced Patronage loyalty tiers with bonus credits on every purchase, and a configurable auto top-up so you never run dry mid-scene.

Character import and export

Import and export characters as TavernCard V2 PNG files — fully compatible with SillyTavern, ChubAI, and other platforms. Added smooth expand/collapse on the advanced character fields.

Mobile overhaul

New bottom navigation bar with thematic icons. Scene list and menus now open as swipe-to-dismiss bottom sheets. Replaced the input modal with an inline expanding input bar. Scene suggestions are now free for everyone. Fixed a handful of tap-target and zoom issues on iOS.

Referrals

Launched the referral program: invite a friend and you both get 1,000 credits when they make their first purchase.

TavernCard V2 and credits

Restructured the character model as a TavernCard V2 superset — personality PLists, example dialogue, post-history instructions, and full compatibility with the broader roleplay ecosystem. Replaced dollar-based billing with credits, a purpose-built currency with clearer pricing.

Content-driven worlds

Worlds and characters now load from markdown content files — a single source of truth that's easy to author and version. Redesigned the landing page around worlds, characters, and creative freedom. Added per-world hero images and a mood system that shapes the AI's tone.

Characters gallery

Dedicated Characters tab with portrait cards organized by world. Full-bleed character portraits in the edit modal. Separated built-in characters from your personal library so edits to one don't affect the other. Fixed hero image flicker on first world open.

Worlds

Introducing Worlds — curated world settings with their own characters, lore, and narrative hooks. Four starter worlds ship out of the box: Ashworth End, Linden Park, Antler Lodge, and Marabou Syra. Each world generates dynamic scene suggestions via the LLM so every playthrough starts differently.

Underfiction

The platform has a new name and identity. What started as Fablis, then became Unreliable, is now Underfiction — a name that better captures what we're building. Added Sentry error tracking with full content redaction, and a pre-flight context window check to catch token overflows before they time out.

Launch blog and anonymous mode

Published three launch-day posts covering why we built this, the case for local-first privacy, and what literary AI prose should actually read like. Enabled anonymous free tries so new visitors can start a story before signing up.

Multi-provider fallback

Generation now falls back to Grok when Venice hits rate limits, so you're never stuck waiting. Defaulted everyone to Opus with an 8k response length. Added loading skeletons, API caching, and entrance animations across the app.

Landing page and unified navigation

New public landing page that showcases the platform to visitors. Unified all page headers into a shared PageHeader component and reworked logo routing. Replaced anonymous usage stats with per-user credit and usage data.

Public launch

Underfiction is live. Five preset story scenarios to get new users started, a welcome credits bonus on signup, and the password gate is gone. Extensive mobile polish: 44px tap targets, proper iOS keyboard handling, fixed content overlap with the floating header.

Story presets and advanced settings

Five curated story presets — mainstream genres with pre-built characters and prose samples — appear on the dashboard for new users. Added an advanced settings section with editable system prompts for full control over the AI's behavior. Fixed a bug where the scene auto-generation never triggered.

Prompt engine improvements

Switched to full turn history instead of a truncated prose blob, giving the AI much richer context. Added optional example dialogue and style reference prose to character cards. Two-tier scene summaries: short for the sidebar, detailed for context injection.

Atmosphere update

Paper texture, upgraded drop caps, and scene ornaments give the reading view a tactile, book-like feel. Card hover animations, a streaming cursor, and prose reveal fades round out the mood. Also fixed the most persistent scroll-jump bugs during text reveal.

Mobile, SEO, and settings

Full mobile-responsive pass with touch-optimized interactions and viewport fixes. Added SEO infrastructure: OpenGraph images, JSON-LD, sitemap, and robots.txt. New settings page with model picker, temperature slider, and max response length control.

Prose style engine

Choose between roleplay, balanced, and novel prose styles — each shapes how the AI writes and responds. Mixed narration and dialogue input with distinct visual styling. Adaptive narration so the AI matches your writing cadence. Also added an in-memory story cache for instant page transitions.

Story forking and slash commands

Fork any conversation from any turn to explore alternate paths. New slash command menu: /as to switch character voice, /tone to shift mood, /newScene, and /narrate. Warmed up the color palette and added a subtle prose surface background.

Credits and billing

Pay-per-use credit system powered by Stripe with reserve-then-settle billing. Usage logs page with model breakdown and provider cost. Transaction history with Stripe receipt links. Custom amount top-ups and an auto top-up toggle.

Accounts and authentication

Sign in with Google or GitHub, or create an email/password account. Password reset via email. Automatic OAuth account linking when emails match. Migrated from SQLite to PostgreSQL for production reliability.

Multi-scene stories and IndexedDB

Stories can now span multiple scenes with automatic async summarization to keep context manageable. Migrated local storage from localStorage to IndexedDB, which handles much larger content without hitting size limits.

Theme and typography

Added a light/dark theme toggle that respects system preference, with smooth 150ms color transitions. Switched the reading typeface to Literata for a warmer, more bookish feel. Fixed dark mode hover states across the UI.

First light

The first working build of what would become Underfiction. Core story engine with AI-powered prose generation via Venice.ai, a reading view, character creation, and scene setup. Stories saved locally in the browser. Everything starts somewhere.