Back to work
Self-Initiated · AI Mobile Concept

Keepsake

An AI concept that turns a camera roll into a detailed, first-person account of a trip — for the traveler who took hundreds of photos and wrote down nothing.

Timeline
July 2026 – Present
Role
Sole Designer
Tools
Figma · Claude Design · ChatGPT
Type
AI Mobile Concept
Keepsake onboarding — ‘Three steps, then it’s yours’ Keepsake Trips library — the home screen of saved trip cards (Japan, Manzanita, Italy)

01 — The Problem

Photos Pile Up, Memories Don't

Keepsake started with a phone call. My parents had just gotten back from two weeks in Prague and Austria — they take two or three big trips a year and love sharing the photos with our extended family — but my mom couldn't remember which city they'd been in on which day, or the names of half the landmarks they'd stood in front of. They'd already tried a handful of apps on the App Store. None of them fit.

My own last few years held the same blind spot — restaurants I can't name, small towns I can't place, a little shop I loved that I could never point a friend back to. The details blur within weeks, and the itinerary is always messy, half-followed, impossible to find. Every tool that promises to help asks for the effort at the wrong moment: while you're traveling, not after.

A single trip's iOS camera roll — a dense, blurred grid of hundreds of unsorted travel photos
One trip's camera roll — and this is a third of it.

A Crowded Space, One Shared Blind Spot

The apps my mom tried weren't bad — they were built for a different moment. Scanning the "AI + travel memories" space showed why: it's crowded, but every serious player shares one requirement Keepsake drops.

ApproachExampleWhat it asks of you
GPS live trackingPolarstepsThe app running live, all trip
AI journalingDay One AIPrompts answered as you go
Photo + reflectionA wave of newer appsOpened and used during the trip
Camera roll, after the factKeepsakeNothing during the trip ←

The differentiation that survived scrutiny wasn't the AI — it was the audience: Keepsake is built for someone who did nothing during the trip. That single distinction became the filter I ran every later decision through.

Who It's For

Primarily frequent travelers — people who take enough trips to start losing track of the individual ones — though anyone who travels can use Keepsake as a running log of everywhere they've been. Frequent travel is simply where the pain is sharpest.

02 — The Solution

A Trip, Reconstructed From Your Camera Roll

The result is a keepsake you can read back — a day-by-day, first-person account of where you went, what you ate, and what you saw. It's built from the photos themselves: timestamps order the days, EXIF location data places each one, and image recognition reads what's in the frame — a temple, a bowl of ramen, a train platform — so the AI can name places and describe meals without you labeling a thing. Optional context like a calendar or itinerary can sharpen names and fill gaps, but the photos lead. Everything after that first draft is about making it accurate, and making it yours. Here's the full arc, from empty app to a trip worth sharing.

01Onboarding

Onboarding opens with expectations, not a form — three plain steps before it asks for anything. Photo access comes with a promise: the photos are read for your story only, never posted or shared.

02Start a Trip

Starting a trip means picking one, not building one — Keepsake has already grouped your camera roll into trips by date and place. Optional context like a calendar or itinerary is offered but always skippable, and anything it adds you can toggle off, because the photos stay the source of truth.

03Review & Correct

Reviewing is just reading — there's no separate review queue. Unsure names carry a dotted underline that opens a photo-backed “Fix this place,” usually a one-tap save. You can also rewrite a whole sentence, so the story ends up sounding like you, not a model.

04Add Reflections

Reflections are the one place feeling enters the story — so they live in their own card at the end of each day, never woven into the factual narrative. They're opt-in prompts answered in your own words.

05Finish the Trip

Once every day is reviewed, “Generate trip memory” stitches them into one continuous, day-by-day read — the keepsake itself. It flows morning to night with your reflections folded in, and closes on a Wrapped-style card that reads your travel style from how you actually moved.

06Share the Trip

Sharing stays low-stakes on both ends. You choose what goes in the link — reflections stay private unless you turn them on — then send it like any other link. The recipient opens a plain, view-only web page in their browser: no app, no account, just the whole trip.

You share the link
They open it — no app, no account

03 — Input Philosophy

Recognition Over Recall

The founding rule: nothing should ever require typing structured information. Photos are the only required input — everything else is a connect, forward, or paste, offered only after the first draft exists, so Keepsake proves its worth before asking for more.

Keepsake input model — one required source (camera roll), optional context (Google Calendar, file upload, pasted itinerary, or a named destination), a reconstruction step that groups photos into days and scores every place as confirmed or needs-review, and the resulting draft trip

The full input model — one required source, up to four optional ones (any, all, or none), and a reconstruction step that grades every place as confirmed or needs review before the day is written. Skipping all four optional sources is a supported path; more days simply arrive marked for review.

A Feature I Killed

An early feature let users forward booking-confirmation emails for Keepsake to parse automatically. It was fully scoped — then cut. Its one unique contribution, flight details invisible to photos, could be recovered far more cheaply from a screenshot people already take, folded into the existing upload-and-paste flow rather than standing up new email-parsing infrastructure. A clean case of killing a feature once it couldn't justify its cost.

04 — Photo Curation

Representative, Not Exhaustive

A single day can be hundreds of photos, and dropping all of them into the recap would bury the story. So the AI curates a representative few for each day — and how it chooses matters as much as how it writes.

One Stop, Curated

A single stop at Meiji Jingu produced fourteen near-overlapping photos — burst shots of the same gate, the same plaque wall, the same pose. Here's what that looks like end to end: the set the AI started with, the five it kept, and how they land in the app.

Before · 14
After · 5
The sake-barrel wall A written wish plaque, close up The traveler at the shrine gate The tree-lined approach The traveler walking through the courtyard
In the app

And nothing is ever silently dropped. The curated set is only the default view; an explicit “see all” always expands to every photo from that stop. Curation is a suggestion, not a gate.

05 — The Narrative

A Story, Not a Form

The recap began as cards — one per stop, with a confidence badge and Confirm / Edit buttons. It read like a queue to clear, so I rebuilt it into flowing, first-person prose: a keepsake to read back, not a task to process.

Before — the recap as a stack of review cards: one card per stop with a photo, a confidence badge, and Confirm / Edit buttons
Before — a review queue, one card per stop.
After — the day written as flowing first-person prose with inline photos and a tappable, accent-colored place name
After — a story to read back; reading a day without correcting it is the quiet confirmation.

Once it’s prose, the text itself is the interface. Two things you can do to any day:

Correct a name. The AI infers places from photos and location data and won’t always get them right. Anything it’s unsure of carries a dotted underline; tapping it opens an in-place “Fix this place” with likely suggestions — usually a one-tap fix, and reading a day without touching it quietly confirms it.

Correcting a name in three steps: an unsure name flagged for review, a 'Fix this place' panel with suggestion chips and a type-your-own field, and the confirmed name saved inline with an undo option.

Tap for context. Only recognizable places — a famous shrine, a well-known district — render in accent; an everyday spot stays plain text. Tapping one slides a short context card in under the sentence, and a second tap moves it along — there when you’re curious, gone when you’re not.

The landmark context interaction in three steps: reading the day with accent-colored place names, tapping one to insert a short context card under the sentence, and tapping a second name to move the panel to it.

06 — Trust & Truth

What the AI Is Allowed to Say

Keepsake writes in the first person, so I had to decide what it can claim on your behalf. The line runs between fact and feeling.

Grounded — writes freely
  • Where you were, and when
  • What you ate, saw, or passed through
  • A short, factual note on a landmark

Sourced from photos, GPS, timestamps, and receipts.

Evaluative — only in your words
  • “I loved this place”
  • “Best meal of the trip”
  • How a moment actually felt

Never invented — it appears only when you wrote or said it.

Even the facts have a ceiling. Landmark history is the one place the AI reaches past your photos — so it's capped at ~two sentences from a structured source, never free-generated. When unsure, it says less.

The firmest line is about people. Face recognition and tagging were ruled out entirely — no biometric data, on travelers or bystanders, without consent. Who you were with is something you add yourself.

07 — Capturing Feeling

Three Iterations to Find the Shape

The most-revised part of the design, around one question — where does subjective content live? It took three tries (below) to land on a component of its own, plus a fix to how it asked: answered prompts became pull-quotes, so empty fields never nag.

A Mistake I Reversed

Weaving reflection prompts inline, beside the paragraphs they related to, felt contextual — but scattered through the recap they were easy to skip and hard to find later. I’d already built it before reversing course: pulling every reflection into a single end-of-day card makes the day’s most memorable moments easy to revisit, and grouping them feels far more intentional than prompts sprinkled through the day.

v1 — a single generic 'what made this day memorable?' prompt pinned to the bottom of the day
v1 — one generic prompt
v2 — contextual callouts like 'best view here?' woven inline into the narrative
v2 — contextual callouts, inline
v3 — a Reflections component of its own at the end of the day, answers shown as pull-quotes
v3 — its own end-of-day card

08 — Edit & Read Modes

Same Data, Different Job

“Generate trip memory” isn't an export — it's a mode switch on the same live, still-editable data. Edit mode is built for fixing: paginated by day, with a review count and tap-to-fix cues. Read mode is built for reading: one continuous scroll with a numbered day index, closing on the Wrapped-style stat card. You can move between them as often as you like — nothing is ever locked.

Edit mode — the day paginated by day tabs, with dotted-underline names to fix and a review count
Edit mode — paginated by day, built for fixing.
Read mode — one continuous scroll with a numbered day index and a cover image
Read mode — one continuous scroll, built for reading.

09 — Navigation

Earning Simplicity Structurally

The whole app has one root: Home, a library of trip cards, and the only screen you ever return to. There's no tab bar — with a single content type, a second root would just invent a destination that doesn't exist. Tapping a trip pushes one full-screen view, and everything else — switching days, toggling modes, correcting, reflecting — happens inside it through existing components, never another navigation level. The simplicity is earned by removing places to go, not hiding them.

Keepsake's navigation model: Level 0 is Home — a library of trip cards and the only screen the app opens to or returns to, with no tab bar. Tapping a trip pushes to Level 1, a single full-screen Trip view where day switching, the mode toggle, corrections, and the photo viewer all happen through existing components rather than deeper navigation.

10 — Sharing

Built for the Recipient

The shared page isn't just in-app read mode behind a link. A first-time visitor needs context the owner never did, so the web version opens with a cover and a byline, and a day index that's labeled, not just numbered — “Meiji Jingu, then Kyoto,” not “Day 3.” It closes on a quiet “made with Keepsake.”

The shared web page on arrival — a cover photo, the byline ‘A trip by Sophia,’ a ‘shared with you, view only’ note, and a labeled day-by-day index
Arrival — cover, byline, and a labeled index
Tapping a day in the index jumps straight to that day's entry on the shared page
Tap any day to jump straight in
The end of a day on the shared page, closing on a quiet ‘Made with Keepsake’ footer
Every trip closes on a soft “made with Keepsake”

11 — Success & Next

How I'd Know It Worked

It's a concept — nothing has shipped, so there are no numbers to point to yet. But a design is only as strong as the bet behind it, so here's how I'd test this one, and what I'd resolve next.

Signals I'd watch

Still open

12 — Reflections

What I Took Away

A self-initiated concept meant the constraints were mine to set — which made the trade-offs the most useful part. Three things I'm carrying into the next project:

01
Trust Is Built by Refusing
The hardest calls weren't features — they were where the AI should hold back. A first-person AI earns trust through what it refuses to say, not what it can generate.
02
Simplicity Is Earned
Again and again, the stronger move was to remove. Simplicity came from taking things away with intent — a killed feature, no tab bar, curation as a suggestion — not a lighter coat of style.
03
One Audience Did the Work
Designing for the traveler who did nothing during the trip became the filter for every decision. A sharp definition of who it's for settled more debates than any feature list.
Next Case Study
Mobile Production
Reporting
Oracle SCM · Smart Operations
View Case Study