Skip to content
Works
Project · 01 · Following along
← All work

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.

Placeholder · Plate I 01 / 01

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.