I've moved around a lot. Finding information about a new city is easy- Google has everything. But finding people? That's weirdly hard.
So I built MapMates.
The idea
A map. You drop a pin. Others appear. That's it.
No signup walls. No algorithmic feed. No tracking. Just people, quietly appearing on a world map.
Who it's for
- Digital nomads wondering who else is in Bali
- Expats in Bangkok looking for other remote workers
- Freelancers in Lisbon hoping to find a co-working buddy
- Retirees in Portugal curious about their community
Tech stack
- Next.js 14 (App Router)
- Supabase (Postgres + Anonymous Auth)
- Leaflet (maps)
- Upstash Redis (rate limiting)
- Tailwind CSS (styling)
- Vercel (hosting)
How anonymous auth works
Most apps force you to sign up before doing anything. I wanted the opposite β drop a pin in 30 seconds, no email required.
Supabase has a neat feature: anonymous authentication. Users get a real auth session without providing credentials. If they clear their browser, they lose access β but for a casual "pin yourself on a map" use case, that's fine.
const { data } = await supabase.auth.signInAnonymously()
One line. User is authenticated. No friction.
Rate limiting
To prevent spam, I added rate limits using Upstash Redis:
- 1 pin per user (editable)
- 3 connection requests per day
const ratelimit = new Ratelimit({
redis: Redis.fromEnv(),
limiter: Ratelimit.slidingWindow(3, "1 d"),
})
What's next
- City pages (
mapmates.io/bangkok,mapmates.io/lisbon) - Email notifications when someone wants to connect
- Let anyone create their own community map
Try it
π mapmates.io
Zoom in. See who's around. Maybe drop a pin.
Would love feedback from the dev community. What would you add?
Top comments (0)