Home Projects DJ & Music Workshop

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 ↗
Pip, Cache It's map-pin mascot, holding a phone up to a tagged pedestal to collect it

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.
A small city floating on an island of earth, the setting of Cache It

You have to be there.

Onboarding screen, Pip waving above the line Collect real-world art by tapping its tag with your phone
Home screen with a pieces collected counter and a Scan a tag button
My collection screen listing two collected artworks

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.