Inspiration

EchoMap was inspired by:

  • Civilian an emergency and crime-focused social network that lets people share real-time safety information with their community
  • Snapchat and its approach to social discovery: finding what people around you are sharing in the moment

I wanted to take the idea of location-based content but make it about personal moments rather than emergencies: voice notes that vanish after 24 hours, tied to physical places you have to actually visit to hear.


What it does

EchoMap lets you drop short audio "Echoes" at your current GPS location.

Feature Description
Discovery Radius 500 meters — users must be physically nearby
Ephemeral Every echo expires after 24 hours
Voice Options AI-generated via Google Cloud TTS or native microphone recording

The result: a fleeting, in-the-moment experience where content exists only at the intersection of place + time.


How I built it

Tech Stack:

Layer Technology
Frontend Next.js 16 + React 19 + TypeScript
Backend Convex (real-time DB, file storage, actions)
Auth Clerk
Maps Mapbox GL
Voice Google Cloud Text-to-Speech
Deployment OpenNext + Cloudflare Workers

Core Algorithm — Geohash Spatial Indexing:

1. Encode (lat, lng) → geohash
2. Query 9 surrounding cells via Convex index
3. Refine with Haversine distance formula
4. Return only echoes within 500m radius

This keeps nearby lookups O(1) per cell instead of scanning the entire database.

Development Partner: Built with opencode as a full-stack pairing partner, accelerating everything from Convex function design to Cloudflare deployment configuration.


Challenges I ran into

Challenge Solution
ElevenLabs blocked my account for "unusual activity" on free tier Last-minute migration to Google Cloud TTS with retry logic
Cloudflare Workers + Next.js 16 incompatibility Rewrote Clerk proxy middleware for Edge runtime compatibility

Accomplishments I'm proud of

  • Deployed to custom domain echomap.live on Cloudflare
  • Built native microphone recording alongside AI voice synthesis
  • Implemented geohash-based spatial querying with real algorithmic thinking
  • Added expiry countdowns and expandable nearby echoes list
  • Maintained a clean, dark map-first interface
  • Shipped a working prototype in 36 hours as a solo developer
  • First hackathon ever

What I learned

"36 hours ago, I'd never deployed to Cloudflare. Now I have a live app with a custom domain."

Technical:

  • Cloudflare Workers vs Vercel, learning about edge runtime constraints, build vs. runtime env vars, Workers deployment model
  • Geohash spatial indexing for efficient geo-queries vs. naive distance scans
  • Convex's real-time queries + file storage for a social product

Workflow:

  • Using opencode as a pairing partner to move faster across backend, deployment, and UI as a solo builder

What's next for EchoMap

Feature Description
Echo reactions Lightweight feedback: ha, wow, mood
Push notifications Alert when entering an area with new echoes
Echo chains Reply to an echo, creating location-based conversations
Heatmap view Visualize areas with the most activity
Mobile PWA Native recording/playback experience

Built With

Share this project:

Updates