Back to work

Memoria

Every life has stories worth keeping. Most never get told, and not for lack of wanting. What's missing is an easier way to start, and to keep going.

ProductiOS & Android voice app
RoleDesigned and built solo
StatusIn TestFlight
What to look for
  • A tester asked for two different fixes. Both came from the same problem: people opened the app and didn't know what to do. The home page now starts by asking what you came to do.
  • Speech is messy when written down. Memoria keeps exactly what you said, and makes a clean copy that is easy to read. The AI has rules for what it may change.
  • One tester talked for 83 minutes, and the recording failed to save. Now a recording is saved the moment you stop.
Watercolor illustration: a young person and an older woman reading a small book together by a window
Where it started

Shortly before my grandmother lost consciousness, she tried to write down the story of her life. Holding a pen had become difficult. She filled a little over a page, grew discouraged, and never had the chance to continue. I kept thinking: what if she had only needed to speak?

My grandmother's handwritten notebook: the left page is full, the right page has two lines and is otherwise blank

My grandmother's notebook. The left page is full; the right page stops after two lines.

So my first bet was simple: make the way in to leaving something behind as visible and as easy as possible. The first version opened on a deck of topic cards. Pick one, press record, talk. Everything else served that one entry.

Once the first version was in people's hands, I talked with the people using it and the people around them. The problem turned out to be wider than the blank page. Often it was the children who wanted the stories. One person had recorded a parent once and never did anything with it. Another had hours of recordings of a grandmother who has since died, and had not listened to any of them.

None of these people lacked the will. The stories mattered to them, and some had already been recorded. What stopped them was that every step, from starting, to telling, to turning a recording into something you can read and pass on, took deliberate effort. That became the brief: don't try to create motivation. Make the will people already have enough.

1 · Starting to speak

The first thing you do is speak

Onboarding ends with one small recording: introduce yourself, say your name, maybe mention a memory you'd like to talk about. Memoria picks up the name, and birthday if mentioned, so the first thing a new user does is speak rather than fill in a form. People who prefer typing can skip it.

Onboarding step titled Introduce yourself, with a Start recording button and a link to enter info manually

The last onboarding step: speak instead of filling in a form.

Confirmation screen showing a name and birthday picked up from the recording, both editable

Name and birthday picked up from the recording, editable. (Demo account.)

Speaking once during onboarding did not tell people what to do next. That is where the harder problem was.

Deep dive

One entry is not simple for everyone

What people told me

Before May, three or four beta testers said the same thing in different words: after onboarding, they didn't know what to do. The first page didn't feel related to them. Some didn't realize there were more topic cards: the swipe was invisible and the arrows were easy to miss.

Early home page: one topic card with a Record button inside it, arrows to move between cards, and a floating microphone in the tab bar

The early home, March 2026 build: one topic card at a time, a Record button inside the card, and a floating microphone below it.

First diagnosis: discoverability

So I treated it as a discoverability problem. In May I added a first-load nudge: the card flips aside on its own and returns, showing there is more underneath. I also tried an edge peek, with the next card showing at the side, and rejected it because it cluttered a screen meant to feel calm.

What came after

In July a beta tester still could not find how to just record freely, and mixed up the Record button inside the card with the floating microphone. Twice she proposed a fix. First, a home page organized by content category. Later, two modes: Interview and Diary.

Both were solutions. The need underneath was the same one the earlier testers described: when you open the app, you need a reason to be there. Categories were just the way she could express it. Discoverability had been a real problem, but not the core one.

People open Memoria with different intents. Some want help finding something to talk about. Others already know what they want to say. A single entry built around topics is easy for the first group and an extra, confusing step for the second.

Three options
Not chosen

Category-first home

Concrete and intuitive. But topics are already filterable by category, and nothing showed the existing categories weren't working. A second category layer would duplicate an existing mechanism without evidence.

Not chosen

Interview vs Diary modes

Closer: the names carried a signal of intent. But they frame intent as content type, which is too narrow. A memory about food can need help finding an angle, or be completely clear in someone's head.

Chosen

Start by intent

Ask what the person came to do, not what the story is about. Each intent gets its own direct path.

What shipped

A Start Capture module at the top of the redesigned home page with three choices: Speak Freely starts recording now, Find a Topic opens the prompts, and Your Topics opens personalized follow-ups, shown only when they exist, so there is never an empty option.

Home page: greeting, then a card with Speak Freely, Find a Topic and Your Topics, then My Memories

Start Capture on the redesigned home page.

Home page for a new user: Speak Freely and Find a Topic only, no Your Topics

A new user with no follow-ups yet: Your Topics does not appear.

A topic card marked Inspired by you, asking about a time friends invited the user to a tennis match

A follow-up topic built from an earlier recording, marked "Inspired by you".

Cost and status

One more choice on entry: people who want a topic now reach the cards one step later. I took that trade so neither group walks a step that is pointless for them. Before, people who already knew what to say had to pick a topic first, and some couldn't find free recording at all.

Start Capture passed iOS acceptance in August; Android follows. There is no post-launch feedback yet, so the extra step is an anticipated cost, not a measured one. Working solo means feedback turns into a shipped iteration quickly, so this judgment gets tested soon.

The lesson I took: minimal was the right direction from the start. But simple has to mean simple for each intent, not one entry for everyone.

2 · While telling

Let the story wander

Memoria doesn't ask anyone to stay on topic. There are no chapters, no script, no time limit. Some memoir products keep people on track with chapters and deadlines; Memoria lets a story wander, because wandering is how memories come back.

I built Memoria for recordings of two to five minutes. Real recordings ran much longer. After a travel prompt, one beta tester talked for an hour and twenty-three minutes. When she stopped, saving hung on a spinner until the backend timed out.

Saving used to wait for processing to finish, and a long recording took longer to process than the backend allowed. Now the recording is saved the moment you stop, and transcription and titles run in the background. Recordings can run up to two hours.

Right after stopping a 3½-minute recording: saved at once, then transcribed, titled and filed in the background. (2× speed.)

3 · After the telling

Where most stories stop

A recording nobody can read is where most stories stop. This is the step people in my interviews had not managed, and it is where Memoria does the most work on their behalf.

Deep dive

Readable, and still theirs

What a user said

In an interview, one user told me the transcripts were so full of filler words that reading them was a bit embarrassing. My reasoning from there: if your own words embarrass you on the page, you start censoring yourself while you speak. Readability protects the freedom to just talk. (That is my inference, not something she said.)

The tension

Cleaning up speech is easy if you don't care what gets lost. The text has to be readable, and it has to stay faithful: their meaning, their voice, nothing added. These two pull against each other, so I split transcription into two layers.

  • Layer 1, what was said: speech-to-text, kept exactly as transcribed; cleanup never touches it.
  • Layer 2, how it reads: a model rewrites spoken language as written language under strict rules. It may remove fillers ("um", "like", "you know", and in Chinese 那个, 就是, 嗯), false starts and repetition, fix grammar, and fix obvious mishearings. It may not summarize, omit, invent or translate. A personal turn of phrase stays, because that is the person's voice, not clutter.
Layer 1 · what was said

Well, I I drove to the US with my wife last weekend. It was a long weekend. Uh so, on the first day, we drove to Seattle. … Uh but actually, it it was pretty like expensive. Uh but anyways, uh some of the stuff were were pretty good, uh attracted her.

Layer 2 · how it reads

I drove to the US with my wife last weekend. It was a long weekend, so on the first day, we drove to Seattle. … It was actually pretty expensive, but anyways, some of the stuff was pretty good and attracted her.

A 3½-minute recording I made for this page. Fillers, false starts and repeats are gone and the grammar is fixed ("were" became "was"); "but anyways" stays, because that is how the speaker talks.

The raw recording transcript, full of uh and repeated words, shown under Hide raw recording transcript

Layer 1, kept and one tap away.

The cleaned text of the same recording, with Edit and Re-transcribe buttons

Layer 2, what the person reads and can edit.

Trust built in

I designed this as rules for the AI's behavior, not just a prompt:

  • The original transcript is always kept.
  • The cleaned text can be edited by hand.
  • If the model's output looks wrong (repeating itself, or sharing too little content with the original), Memoria falls back to the original transcript instead of showing a bad rewrite.
What happened

After the cleanup layer shipped in April, the same user said the fillers were gone and the transcripts were now readable.

What I don't know yet

Fixing mishearings cuts both ways. In the sample above I said "Bellevue Center"; the mall is Bellevue Square, and the model fixed my slip. But it can't tell a slip from a name that is simply unusual, like a family nickname.

That is the limit of checking by hand. There is no systematic evaluation of faithfulness yet. That is the next problem to solve as usage grows.

Titles and categories from what was actually said

A recording starts from a topic, but stories wander. Memoria titles each memory from its content, and if the content clearly doesn't fit the topic's category, it files the memory where it belongs. Wandering is fine during the telling because the organizing moves to the system afterwards.

A saved memory titled Our weekend road trip to Seattle and Mount Baker, filed under Travel

Recorded with Speak Freely, no topic chosen. The title and the Travel category both come from what was said.

Stories, again and again

Memories can be gathered into longer stories, and there is no final book that ends the product. People keep adding, and can make a new story or book whenever they have more to say.

Create a Story screen: a list of recordings with checkboxes

Pick the memories to gather.

Composing your story loading state

Memoria composes them into one story.

Your Story screen: an editable story draft with an Export button

The story, editable before export. (June 2026 build.)

Interaction details

Two smaller decisions

Ending a recording after a pause

A beta tester in his 60s pressed Pause when he meant to finish, then got stuck between Pause and Resume. After a pause, a second Finish button now appears under Resume, and the vague "Done" became "Finish"; in later testing I didn't see the confusion again.

Paused recording screen: Finish at the top right, and below the timer a Resume button with a Finish button under it

Paused: Finish sits right under Resume.

What "reset" restores

After editing a cleaned transcript, reset returns to the cleaned version, not the raw one. A raw transcript full of fillers is not a useful place to go back to; the cleaned version is the last good state the person saw.

Delete two paragraphs, then reset: the cleaned version comes back, not the raw one.

The business

Memoria is a subscription, paid by the storyteller or whoever helps them start; the first supporters came through Kickstarter. Today people arrive through Kickstarter and TestFlight invitations, and letting children bring a parent in is in development. A subscription fits because the product has no final book, and because every recording carries an ongoing processing cost; when AI credits run out, recordings and existing text stay available.

What I know, and what I don't yet

What I've seen so far is small. One tester recorded 16 memories between April and July. That is one person, and I don't generalize from it. But in that case it is what my grandmother's notebook made me hope for: once the effort came down, the will that was already there showed up.

What I don't know yet:

  • Does Start Capture solve "I don't know what to do"? I'll look at how many new users leave before their first recording, and follow up with testers directly.
  • Can children bring a parent in while the stories stay the parent's? This is in development. Once it ships, the test is whether invited parents claim their account and keep recording on their own.
In TestFlight

If you or someone in your family has stories worth keeping, I'd love for you to try it: join the TestFlight build.