MeetSpont
Hyper-local anonymous chat platform
A production location-based web app for anonymous, real-time chat between people inside a strict 3-mile radius. Architected, deployed and launched end to end; the React Native client is in progress.
- Role
- Architect & full-stack developer
- Year
- 2025
- Type
- Web App
- Status
- Live
Architecture
Geo-spatial matching in the database
Proximity is resolved by an optimised geo-spatial query in PostgreSQL through Supabase, so the set of people you can reach is computed server-side from live position data rather than assembled in the client.
Authenticated but anonymous
Google OAuth through Firebase Authentication establishes a real account behind every session, while the identity presented to other participants stays anonymous. The two concerns are kept separate rather than trading one for the other.
Shared core, second client
The React Native application now under development reuses the same backend and query layer, so the mobile client expands reach without forking the data model.
Security architecture & OWASP mitigations
A01:2021 — Broken Access Control
A modified client asking for conversations outside its 3-mile radius, or for another user's messages.
The radius filter is part of the server-side geo-spatial query rather than a client-side filter, so the client can only ever receive rows the database already scoped to it.
A07:2021 — Identification & Authentication Failures
Impersonation or session reuse in a product where nobody is identified by name.
Google OAuth via Firebase Authentication backs every anonymous participant with a verified account, so anonymity is a presentation choice rather than an absence of authentication.
Privacy — location exposure
Precise coordinates leaking to other participants and turning a chat app into a tracking tool.
Matching is expressed as membership of a radius rather than as an exchange of coordinates; the client is told who is reachable, not where they are.
Stack
- Next.js
- React
- TypeScript
- Supabase
- PostgreSQL
- Firebase Auth
- React Native