Case study
Cache It
Hidden art around a city. Find it, tap it, keep it.
- Role
- Founder & CEO, designed and built it solo
- Dates
- Aug 2026 – Present
- Stack
- React, Vite, FastAPI, NFC
- Incubator
- Zip Launchpad, SDSU, starting Fall 2026
- Live
- cache-it-one.vercel.app ↗
The idea
An artist hides a piece somewhere in a city. You go and find it. Actually go, on foot, to the wall it’s on. Then you hold your phone against it and it lands in your collection.
That’s the whole product, and almost every decision falls out of it. The find has to happen in the real world, or none of it means anything.
Constraints I set
- No account needed to start looking. Curiosity shouldn’t hit a signup wall.
- Collecting has to work one-handed, in bad light, standing in front of a wall.
- Artists stay in control of their own work.
- A find you didn’t actually make shouldn’t count.
You have to be there.
The map
The discovery map tracks your area in real time off geolocation, so hunting feels like hunting. You move, the map moves, and pieces near you surface as you get close.
It deliberately does not just drop a pin on every artwork. A map that tells you exactly where everything is isn’t a hunt, it’s a shopping list.
Letting other artists in
Early on, every piece in the app had to come from me, which meant the collection could only grow as fast as I could work. That’s a bad ceiling for something whose whole appeal is that there’s more out there.
So there’s a collaborator role. An outside artist can place their own work independently. Their pieces, their placements, no involvement from me. It decouples the collection growing from me shipping code, which is the difference between a demo and a thing that can actually spread through a city.
Keeping finds honest
The obvious version of this is a QR code taped to the wall. It’s also the broken version. A QR code is just a picture, and a picture can be screenshotted and sent to a group chat. Then nobody has to go anywhere.
So collection runs on NFC instead. You physically tap the phone against the piece. That put me inside a real constraint set, because iOS and Web NFC disagree about a lot and neither gives you everything you’d want.
I architected around those limits with an upgrade path to NTAG 424 DNA chips, which sign each tap rather than just handing over a static payload. That’s the difference between “this tag exists somewhere” and “this person tapped this tag.”
Still open
How do you keep a hunt honest once people start sharing the answers? Locations spread by word of mouth, and a solved map is a dead map.
My current thinking is that finds expire and art rotates, so the city re-randomises instead of being solved once. That’s a bet, not a result. It isn’t built yet, and I’m not certain it’s right.