StoryKeep
A visual museum for family memories. Built so the photographs and the stories that wrap them stay together, across generations.
This page is the in-progress placeholder for the proper case. The build itself is iterative; when it's resolved enough to deserve a case study, this page becomes one.
A photograph of grandmother at the table, 1978.
Real screenshots replace this once the build is presentable.
Where it stands.
- 2026 · May
Re-thinking the upload flow so it survives a phone with bad signal in a kitchen on a Sunday. Gracefully-degrading offline behaviour is the current preoccupation.
- 2026 · April
Rewrote the photo-and-story binding so a story can attach to several photographs, and a photograph can carry several stories. Both are first-class.
- 2026 · March
Quiet stretch. Spent the time looking at how my own family already keeps photos (badly), and writing down what a thing that respects them would have to do.
What it has to be.
- Slow on purpose.
- A photograph and the story around it deserve more than a feed scroll. The interface has to feel closer to opening an album than to opening Instagram.
- Outlasts a phone.
- Whatever I build has to still work in twenty years, with whatever device my mother is using then. Open formats, exportable, no lock-in.
- Quiet in private.
- No sharing-by-default, no public profile, no algorithmic anything. The default audience is the people you sat at the table with.
What's underneath, today.
- runtimeAstro 6 · React 19 · Tailwind v4
- storageCloudflare R2 (private bucket) · EXIF-stripped on ingest
- authEmail + magic link, no passwords, no OAuth
- deployVercel · EU region · self-hosted fonts
All of this is provisional. The right tools for this build aren't fully decided yet; some of it will probably move.