Leave A Mark Behind


Open this link on a phone, tablet, or laptop to try this app!

https://lamb-mcit.vercel.app/


Inspiration

City life is full of waiting—on subway platforms, at bus stops, in hospital lobbies. These in-between moments often feel like dead time, spaces where we lose our sense of agency. We scroll endlessly, disconnected from the place we're standing and the strangers sharing it with us.

We were inspired by the graffiti and street art scattered across NYC—those unexpected bursts of creativity that transform mundane walls into moments of discovery. A clever tag, a poetic stencil, a hidden mural—these are gifts left by strangers for strangers, connecting people across time without ever meeting.

Leave A Mark Behind was born from a question: What if we could bring that same magic to the digital world? What if the boring moments of city life became opportunities to share something—a piece of art, a life hack, a foreign phrase, a meme—for the next person waiting in that exact spot?

What it does

Leave A Mark Behind is a location-based Progressive Web App that transforms idle city moments into shared discoveries:

  • Drop "marks" at your exact location—text messages, photos, audio recordings, drawings, poems, life hacks, language tips, or memes
  • Discover marks left by others within 50-100 meters, seeing what previous strangers shared at the same spot
  • Learn and react to content that spans art, humor, wisdom, and everyday creativity
  • Experience true ephemerality as all content automatically vanishes after 24 hours—just like the fleeting nature of waiting itself
  • Engage with threads by adding replies to existing marks, building on what others started
  • Browse daily snapshots of the top content from your area (preserved for 36 hours)

What makes this app fundamentally different is our Anti-Viral Algorithm. Unlike traditional social platforms that amplify popular content, we deliberately surface lesser-seen marks using linear inverse weighting:

$$w_i = V_{\max} - v_i + 1, \quad P(\text{mark}_i) = \frac{w_i}{\sum_j w_j}$$

This ensures diverse discovery experiences where every voice has an equal chance of being heard—the quiet poet gets the same spotlight as the prolific memer.

How we built it

Frontend

  • React 19 with Vite for a fast, modern development experience
  • React Router for seamless navigation between Explore and Snapshot views
  • Google Maps JavaScript API with custom clustering for visualizing marks
  • Progressive Web App capabilities (service worker, manifest) for install-to-homescreen support

Backend

  • Supabase as our backend-as-a-service platform
  • PostgreSQL with PostGIS extension for efficient geospatial queries using GEOGRAPHY types and GIST indexes
  • Supabase Storage for media uploads (images, audio)
  • Edge Functions (Deno) for scheduled tasks like snapshot generation and content cleanup
  • pg_cron for automated 24-hour content expiration

Key Technical Implementations

Geospatial Queries: We use PostGIS's ST_DWithin function with GIST indexes for sub-millisecond proximity searches

Anti-Viral Selection: Our weighted random algorithm gives higher probability to lower-engagement content

Recency Bonus: New marks (< 6 hours old) receive a 2× selection multiplier that decays linearly to 1× between hours 6-24

Challenges we ran into

  • API Key Configuration: Getting environment variables and API keys properly configured across development and production took multiple attempts.
  • Supabase Integration: Connecting Supabase to both the frontend and backend required debugging authentication, RLS policies, and query syntax.
  • Cross-Platform UI Bugs: Fixing layout and interaction bugs across desktop browsers and mobile devices was a constant iteration process.

Accomplishments that we're proud of

  • Built a complete, production-ready PWA with 60+ files, 17 React components, and ~5,500 lines of code
  • Implemented a novel anti-viral content algorithm that challenges how most social platforms work
  • Created an intuitive onboarding experience that explains the app's unique concepts without overwhelming users
  • Designed a thoughtful UX with toast notifications and contextual hints
  • Built it all without requiring user accounts—truly anonymous, location-first interaction

What we learned

  • PostGIS enables powerful location-based queries that traditional databases can't handle.
  • PWAs provide a solid cross-platform experience without building separate native apps.
  • Ephemeral content encourages more thoughtful creation and mindful consumption.
  • Debugging across different browsers and devices requires patience and systematic testing.

What's next for Leave A Mark Behind

  • Snapshot Functionality: Fully implement the daily snapshot feature with backend aggregation and curation
  • Content Moderation: Integrate an AI moderation API for community safety
  • Rate Limiting: Prevent spam with IP-based rate limits
  • Location History: Let users revisit places where they've left or discovered marks
  • Analytics Dashboard: Understand how marks flow through physical spaces

Our vision is to reclaim the dead time of city life—to turn waiting into wonder, boredom into connection, and strangers into silent collaborators. Leave A Mark Behind is our first step toward that future.

Built With

Share this project:

Updates