Prototype

Tala on the web · prototype

The life-story book, sold like the best apps and used from the inbox.

Remento showed families will buy a life-story book on the web with no app. This prototype pairs that product with a web-to-app quiz funnel, and Tala’s own AI that turns a few minutes of talking into a finished page.

The Story of Ruth Ellis

Ruth Ellis

Today · 8:00 AM

Picture the house you grew up in. What did you see when you walked in?

Record your answer
Page 12 is in your book

The journey

Thirteen stops, in order

Sell it on the web

An ad lands on the page, the quiz builds their plan, and the paywall sells a plan length, not an app.

Use it from the inbox

A question every morning. One tap and they're talking. Tala writes the page.

Keep it forever

A book that reads like a printed memoir, in their voice, ready to print and give.

The daily loop

From their inbox to a finished page, with nothing to install

The same loop Remento and Storyworth run weekly, run daily, with Tala’s follow-up questions and page writer in the middle.

  1. 1

    8:00 AM, their time

    pg_cron picks the day's question from their plan and freezes it.

  2. 2

    Email and text

    Resend and Twilio send it, with a signed one-tap link.

  3. 3

    One tap

    The recorder opens in the browser. No login, no app.

  4. 4

    They talk

    Audio goes straight to private Supabase Storage.

  5. 5

    Scribe

    ElevenLabs transcribes it, without the ums.

  6. 6

    Gemini

    Asks up to 3 follow-ups, then writes the page in their words.

  7. 7

    Family hears

    The page lands in the book and the family gets the story.

How it would be built

One backend for the app and the web

The web product reuses the iOS app’s Supabase backend, question bank and page writer. The new pieces are Stripe on the web, the daily email and text, and links that open the recorder without a login.

  • Secrets stay on the server: ElevenLabs, Gemini and Stripe are called from API routes and Edge Functions.
  • An answer link can record one answer to one question, and nothing else.
  • The proposed schema is in web/supabase/schema.sql. It has not been applied anywhere.

Where people are

No app to download

Browser

Landing, quiz, checkout, web app, recorder, reader. Any phone or computer.

Inbox

Today's question each morning, new-page and family emails.

Text message

The same question by SMS, for people who live in their texts.

Tala web

Next.js on Vercel

Pages

App Router, server-rendered marketing, client app.

API routes

/api/transcribe, /api/followup, /api/write-page, /api/tts, /api/checkout.

Webhooks

Stripe events create the account and the book.

Supabase

The iOS app's backend, shared

Auth

Magic links. Answer links that open the recorder without a login.

Postgres

Books, stories, prompts, family, orders. Row-level security.

Storage

Private audio, photos and print PDFs.

Edge Functions + pg_cron

send-prompts every 5 minutes, write-page, answer-link.

Partners

Keys stay on the server

Stripe

Payment Element, subscriptions, one-click upsells.

Resend and Twilio

Email and SMS delivery.

ElevenLabs

Scribe transcription, voices, interview agents, voice cloning.

Gemini

Follow-up questions, pages, titles, tomorrow's question.

Print partner

Lulu-style API for hardcovers.

PostHog

Funnel analytics and experiments.

Honest about the prototype

What’s real, and what’s faked

Blank means fake: every service runs on a stand-in until its key is set in web/.env.local, then it goes real.

FeatureIn this prototypeIn productionSwitch
Plan mathRealReal. The iOS app's chapter, question and page rules, ported to TypeScript, with its 167-question bank.The same code, shared by the web and the app.None
PaymentsA Stripe-style checkout. Any card works; nothing is charged.Stripe Payment Element and Checkout Sessions, with webhooks that create the Supabase account.STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
Accounts and dataSaved in this browser (local storage).Supabase Auth with magic links, Postgres with row-level security, Storage for audio and photos. See web/supabase/schema.sql.NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY
TranscriptionElevenLabs Scribe when a key is set; otherwise the browser's own speech recognition.ElevenLabs Scribe, batch, with the ums and false starts left out.ELEVENLABS_API_KEY
Follow-ups and pagesGemini when a key is set, with the iOS app's own prompts; otherwise an on-device writer that cleans and shapes their words.Gemini: follow-up questions, the page, the title, and tomorrow's question.GEMINI_API_KEY, GEMINI_MODEL
Voice interviewA live ElevenLabs agent when configured (scripts/create-agent.mjs makes one); otherwise a practice interviewer in the browser.ElevenLabs Agents, with the transcript turned into a page by Gemini.ELEVENLABS_AGENT_ID or NEXT_PUBLIC_ELEVENLABS_AGENT_ID
Their voiceRuth's sample page is a stand-in recording (a macOS voice); scripts/generate-audio.mjs remakes it with ElevenLabs. Other stories are read aloud by the browser.Every recording kept; ElevenLabs voice cloning for the audiobook upsell.ELEVENLABS_API_KEY, ELEVENLABS_VOICE_ID
Emails and textsRendered on /emails, and logged to its Sent tab when the prototype would send one.React Email via Resend, SMS via Twilio, sent by pg_cron at each person's own time.RESEND_API_KEY
PrintThe whole order flow; nothing is sent to a printer.A print partner API (for example Lulu) with the PDF rendered server-side.None yet