Skip to Content
📚 MyStoryFlow Docs — Your guide to preserving family stories
Current State (Sep 2026)Overview

Current State

A verified snapshot of what MyStoryFlow actually does today, taken 2026-09-06 against the running app and the live database. Where this section disagrees with an older page in these docs, this section is right and the older page describes an intention, not the product.

Why this section exists

The rest of these docs were written as the product was designed. Most of it describes what was meant to exist. Earlier audits (August 2026) found that roughly 80% of the components were built but only about 40% of the end-to-end journeys worked, because the seams between the parts were never connected. This section walks each core journey end to end, says what was exercised and how, and separates verified from not verified from broken.

The product’s core loop is the only thing that matters for launch:

The three journeys

PageCoversVerdict on 2026-09-06
Recording → StoryTap record → upload → transcript → story draft, on desktop and iPhone Safari; the Deepgram question✅ Verified: real upload, Gemini transcript in 5 to 10 seconds, story lands in the chapter it was recorded for; uploads now fail loudly with a retry instead of faking success
Story QualityHow a recording, upload, or conversation becomes a story in the storyteller’s own voice; timing; the eval✅ Gate is instant, single-voice story in about 4 seconds, multi-voice about 16; five authenticity rules enforced; eval 5/5 on faithfulness and voice with zero unsupported facts
Book Creation → PDFWizard → stories into chapters → cover → export → download, exercised for real✅ Verified: signup to a downloaded 6×9 PDF in one real run, with cover, title page, contents with page numbers, and chapters in order; the cover editor is still rough on a phone
Launch ReadinessWaitlist → account → first session, billing, safety for strangers, operations, the 30-user beta checklist❌ Still blocked, but no longer by the product: no waitlist invite mechanism, signup open with email confirmation switched off in Supabase, waitlist tables readable with the anon key, admin API without authentication; the paywall dead end and the signup dead end were removed today
Cover and PrintCanva-grade wrap cover editor, print spec (trim, bleed, spine), image library, print-ready cover and interior exportsâś… Verified: 12.66 Ă— 9.25 in cover PDF and 6.25 Ă— 9.25 in bleed interior measured; preview and print share one renderer; browser uploads over 10 MB wait on a B2 CORS rule
Business ModelThe three doors: subscribe, try-then-convert, gift; what each flag mode gates; family notes; the unapplied family RLS migration⚠️ Built and verified with real accounts, but real anonymous demos need Supabase anonymous sign-ins switched on, and purchases need Stripe products; family RLS migration written, not applied
Memories and ArchiveEvery recording, video, photo, story and PDF in one place; download-everything zip; who may downloadâś… Verified: 11-file archive streamed in about 20 seconds with byte-identical media; family download gated by one toggle; legacy handover flow deliberately unbuilt

What changed on 2026-09-06

Evening additions: a2088b6 Canva-like cover editor (twelve templates, one renderer for preview and PDF, photos served through the app because the B2 bucket is private); f38febc 38733a7 1505df9 story quality (instant readiness gate, authenticity prompts, speaker-aware transcripts, “Upload a recording”, convert now writes HTML); 9634bf0 82b120b 4b54f6e e589feb flag-gated onboarding paywall, email-code sign-in, gift-flow column fixes; 5bc0bb7 competitive landscape; and six commits of the other sessions’ reviewed work (e2da8c3 waitlist code at signup, ec47799 tools-app SEO, 6d8506c key-file ignore, c13d9c7 Elena echo guard, 2b15aaf mobile conversation shell, 44904fa AI metering).

Late fixes landed after the evening verification run: a7daed7 signup no longer strands users on a “check your email” panel (the Supabase project auto-confirms), 1377f6c writing clears the placeholder flag so the PDF button enables, 6ee5176 chapter list no longer 500s, 97b88ff post-login hang removed, 3bcf59f footer years and a dev-only role switch removed, 0bb3385 a recording fills the chapter it was made for, 7d3758c chapter names show on a phone, dee04d2 cover text auto-contrasts on dark backgrounds.

  • d364c25 — book templates, chapter reorder, and story-to-book linking all work now: the template-usage trigger no longer 500s a book insert, reorder goes through an atomic SQL function, positions are 1-based end to end, and a shared AddToBookDialog gets existing stories into a book from three screens.
  • 293f7d2 — PDF export renders real content: per-story HTML/TipTap/plain-text detection through an allow-list sanitizer, a saved cover design rendered server-side as page 1, proper trim size and margins, embedded fonts, a real table of contents.
  • 8b11d7d — export polish: no duplicate chapter-title heading, no running folio on the cover page, fonts actually ship on Vercel via outputFileTracingIncludes.
  • 275d9fe — recording uploads fail loudly instead of silently faking success, and server-side transcription runs for real on Gemini (gemini-2.5-flash), with Whisper as a fallback — the prior architecture could never have transcribed audio at all.
  • c8c2c6c — Elena’s own conversation upload and transcription got the same two fixes as recordings.
  • b05b8e3 — the book wizard is two screens instead of nine, with no payment step anywhere in it; the book page and dashboard were rewritten around one next action each; several fake nav destinations were unlinked.
  • 75a4bcc — the dashboard no longer fabricates stats or shows a duplicate “continue” card; “Create my book” and “Make my book (PDF)” are now two distinctly worded actions.

Decisions

  • Gemini, not Deepgram, for transcription. Deepgram was evaluated (see the recording-to-story page) and the owner chose to route transcription straight through Gemini instead of adding a third vendor. Live captions via Deepgram remain a possible future addition, not a plan in progress.
  • The first-run paywall is removed, not relocated — yet. Book creation and the first chapter are free with no payment screen. Where a paywall eventually sits (export, print, or elsewhere) is still the owner’s decision.

How to read the status marks

  • âś… verified — exercised against the running app or confirmed in the live database today
  • ⚠️ works with caveat — the happy path works; a stated condition breaks it
  • ❌ broken — reproduced, with the file and line that causes it
  • ⬜ missing — nothing implements it; older docs may still describe it as existing

Standing decisions that shape the next steps

  • Features before database. The owner decided on 2026-08-02 to finish the core journeys before hardening the database (RLS is disabled on most tables). Launch-readiness reports the exposure factually; the sequencing is the owner’s call.
  • The story editor is out of scope. The Tiptap editor is considered solid and is not evaluated or changed.
  • Seniors are the user. Every journey is judged on step count, plain language, and whether the screen shows it is working without anyone explaining it.
  • docs/book-system-repair-plan.md — the book data-layer repair executed 2026-08-03
  • docs/ux-journey-repair-plan.md — onboarding, mobile recording, and accessibility repair; its “Execution status” section is the source of truth for what remains
  • docs/RELEASE_BLOCKERS.md and docs/RELEASE_READINESS_PLAN.md — the August audit; launch-readiness re-verifies its items