cue
designed and built an ios app that brings saved tiktoks back at the moment you can act on them
timeline
august 2026
role
sole designer & builder
built with
claude code
gpt api
google places api
ffmpeg & yt-dlp
context
jump to solution ↓I saved Oslo, then forgot all of it.
In the weeks leading up to a trip to Oslo, I saved every café, restaurant, and guide I came across. By the time I got there, I didn't remember saving any of them, and I missed most of the recommendations I wanted to try.

Cue is an iPhone app I designed and built on my own. Share a TikTok to it, and it brings the post back when you can actually act on it.
problem
This is a surfacing problem, not an organizational one.
the backlog
Hundreds of saved posts, and nothing to bring the right one back.
Conventional folders assume you'll remember to look back for posts. The feed is built to make you save, and nothing is built to make you act.

So the design question became: when is a save relevant enough to interrupt you, and how?
- goal
- Visit the restaurant
- signal
- Location
solution
Share once. Cue waits for the moment it's useful.
- pipeline stages, share to trigger
- 7
- things extracted from 28 saves
- 149
- places ready to nudge
- 104
- confidence needed to interrupt
- 0.7
01capture
Saving takes one share, like sending a post to a friend.
Sharing a post doesn't disrupt the flow of scrolling. With more time, I'll use the TikTok API to pull straight from the saved posts page, but for now, I'm using a ShareExtension.

02understand
Frames, audio, and caption are read together.
Photo carousels broke the extraction at first because subsequent frames after the cover were hidden behind a login. Now every slide is pulled from a video recording, the audio is transcribed, and each place comes back typed, geocoded, and scored.

03surface
A nudge arrives when you're a short walk away and it's open.
Cue watches the saved places nearest you, and checks walking time, opening hours, and your calendar before it interrupts.

04control
Interruptions are capped, and every place can be tuned.
A daily limit, nothing mid-meeting, and a per-place override from inferred to nearby, event, or never.

nudge settings

per-place override
05browse
The map and library show what's worth doing nearby.
Pins, per-place cards, and a list you can sort by distance and filter to what's open now. This makes it easy to find what you're looking for at any point in the app.

edge cases
How Cue handles uncertainty, notification fatigue, and more


nothing relevant → stay quiet


low confidence → never nudged


why it fired → how it was read


bad extraction → rerun the model


already saved → open or rerun


several shares → queued in order
takeaways
- 01
Surface rarely, surface right
Every nudge spends trust. A daily cap and a confidence threshold did more for the experience than another trigger would have.
- 02
Finding the right interface
Maps made sense for location-based posts, but I thought a lot about what interface or headless structure could support deadline-based posts
- 03
Build the risky part first
I nearly cut real geofencing as too hard. It turned out to be the one thing the idea needed to be true.