EchoFrame
Own app · Android beta · since 2026
Leave a memory where it happened. An echo is a photo left in the real world. It waits where it was taken until someone stands in the same place and finds it.
The map shows that an echo is nearby and how far you are from it. It only opens once you are actually there.
I designed and built it myself: app, database, website, legal pages.
Screenshots of the real app, using a test account.
- React Native
- Expo
- TypeScript
- Supabase
- PostGIS
- Row Level Security
client
01App asks to opendatabase
02Database RPC- 03PostGIS distance check
- 04Temporary signed URL
The photo never has a public URL. Permission is decided by the database, not the client.
What's in it
- React Native app with Expo Router, camera built into the app, MapLibre map and background geofencing
- Supabase backend: Postgres with PostGIS for proximity queries, Row Level Security as the security boundary, Postgres RPCs for every sensitive operation
- Photos in private buckets, opened only through temporary signed URLs
- Push notifications, data export, a moderation queue, and GDPR basics covered: data controller, hosting region, minimum age, signed unsubscribe
Why it's here
The hard part of EchoFrame is not the map. It is keeping a photo private until the person opening it is in the right place. Above is how I handled that.


