Web Applications
An archive for the photos my family group chat keeps losing
Built by Wendell Obispo
Our family chat is where every photo gets posted and it deletes them after a while, so I built something that quietly keeps them at full size.
Builder email verified
Verification

- Type
- Personal
- Category
- Web Applications
- Published
- Jul 26, 2026
- Updated
- Jul 26, 2026
About this project
- What I built & why
Everything in my extended family happens in one group chat — birthdays, a new baby, my grandmother's ninetieth — and the photos are posted there and nowhere else. They are compressed on the way in, they scroll away in a week, and after a device change they are simply gone. My cousin lost a phone in 2024 and with it the only copies of a set of photos from a funeral, and there was a very quiet afternoon in the chat while everyone worked out that nobody else had them. I built this over about two months of evenings because I did not want that to happen again and because nobody in my family was going to adopt a photo service.
- The problem
It is for about thirty relatives, none of whom will change how they share photos, which is the constraint the whole design comes from. It sits in the chat as another member, keeps every image and video posted, stores the original quality where the chat gives it, and organises by date and by whoever posted it. Then it puts up a private page where any of them can browse by year and download the full-size original. There is no app to install, no account, and one link that goes in the chat description and gets re-pasted every few months.
- What I owned
All of it, and honestly most of the work is storage and the boring parts of reliability rather than anything interesting. I built the ingestion, the deduplication — the same photo gets forwarded four times in a family chat — and the page. Deduplication is a perceptual hash rather than a file hash, because re-forwarded images are re-compressed and are not byte-identical, and getting the threshold right took a while. I also set up the backups, which are two copies in different places, because an archive with one copy is a story about how you lost an archive.
- Technical & product decisions
I chose to store originals rather than a sensible display size, which costs more and is the only reason the project has a point — a further-compressed copy of an already-compressed photo is not worth keeping. I decided against any face grouping or automatic albums even though people asked, because I did not want to be the person who put my family's photos through anything that leaves my control, and doing it locally is a bigger project than I want to own. Access is a long unguessable link rather than accounts, which is a real trade-off I made knowingly: accounts would be more private and would mean nobody uses it.
- Hardest challenge
The hardest thing was making it survive my own inattention. The first version ran on a machine at home, and after a power cut in 2024 it was down for eleven days before anyone mentioned it, by which time the chat had rolled over and we had lost a fortnight of photos permanently. That is the failure this project exists to prevent, caused by the project. Now it runs on something I do not own, it tells me if it has not ingested anything in three days, and there is a monthly restore check that pulls a random photo from the backup and compares it. Losing those two weeks is the most annoyed I have been at myself in years.
- Result & impact
About thirty-one thousand photos and four hundred videos since 2024, including the fortnight I lost, which is marked in the archive with a note so nobody wonders. Four relatives have pulled originals off it, twice for printing. My aunt found photos of her father she did not know existed because someone had posted them in 2024 and she had scrolled past. Nobody in the family knows how it works and that is correct.
- Who else worked on it
My cousin — the one who lost the phone — sorted and dated about two thousand older photos that people posted in bulk once the archive existed, which is the tedious work that made the early years usable.