Pocket

The people you've been looking for are within walking distance. They just don't know you exist yet.


This is built for the name.com domain roulette challenge (pocket.community)

Inspiration

Picture a coffee shop at 11am on a Tuesday.

Twelve people. Laptops open. Headphones on. Not one of them talking to each other.

Someone in the corner is deep in a coding session - three monitors, mechanical keyboard, the works. The person by the window is nodding to jazz. The couple near the door is laughing at something on a screen.

You'll never know their names. In an hour, you'll all file out and scatter. The city swallows you whole, and those twelve moments of potential connection disappear forever.

how do you find your people in a room full of strangers?

That question kept me up. So I built the answer.

Pocket. Your immediate world, finally made legible.


What it does

Pocket is a hyperlocal social discovery platform. Open it, and the people around you stop being anonymous.

The radar

A live map pulses with activity in your area. Coloured markers show real people doing real things - a coding session at the library, someone looking for a coffee partner two streets over, a walk at the park starting in 20 minutes. Filter by what you're into. Zoom in. Join what looks interesting.

Pockets - the core idea

A Pocket is a short-lived hangout broadcast. You drop one to say: "I'm here, doing this, for this long -- who wants in?"

Pick an activity (18+ types: coffee, coding, gym, walk, gaming, music, art, travel), a vibe (chill / focused / social / adventurous / creative), a duration (30 min to 4 hours), and how many people you want. The Pocket appears on the map. When time is up, it's gone. No trace. Just the memory of a good hour with someone you almost never met.

When someone wants to join, you get a request - accept or decline. Once they're in, everyone gets a group chat. It feels less like a social network and more like a conversation that happened to be started by a map pin.

Waves

Not ready for a full hangout? Wave 👋 at someone nearby. The digital equivalent of a nod across the room. If they wave back, you can start a DM. Sometimes that's all the door needs.

Adventures

My wildest feature - and the one I almost deleted at 4am.

Tap Adventure and the app builds a mystery journey around you. It picks a random nearby point, writes a narrative with checkpoints and a story arc, and sends you off without telling you where you're going. Spontaneous, slightly absurd, and deeply fun. Turns out people are starving for a reason to leave the table.

AI that earns its place

I didn't want AI for the sake of a checkbox. Every feature pulls its weight:

  • Suggest for me - Claude reads your history, the time, the day, and tells you what you'd actually enjoy right now. Eerily accurate at 10am on a Tuesday.
  • Vibe match - finds nearby people with compatible energy, not just proximity
  • Location insights - a live, AI-generated read of what's happening around you
  • Pocket recommendations - personalised suggestions based on what you've done before

How I built it

The stack

Layer Technology
Framework Next.js 14 (App Router)
Language TypeScript
Styling Tailwind CSS + custom design tokens
Animations Framer Motion
Maps Leaflet + MapLibre GL + CartoDB Dark Matter
Database PostgreSQL
ORM Prisma 7
Auth NextAuth.js v4
Real-time Pusher
AI AWS Bedrock -- Claude Haiku 4.5
File Storage AWS S3 + presigned URLs
Rate Limiting Upstash Redis
Validation Zod v4
Push Notifications Web Push API
Testing Vitest + Testing Library
Deployment Vercel

Architecture decisions worth keeping

Ephemeral by design. Every Pocket has an expiresAt timestamp and is filtered on read. The time limit isn't a constraint -- it's what makes every hangout feel real instead of performative. Nobody wants a permanent record of every coffee they almost had.

Privacy as a trust contract. Raw coordinates never leave the server. Users see fuzzy distance bands, not exact positions. There's a visibility toggle to go dark instantly. Location sharing only works when people feel safe. I built for that.

A clean AI layer. All five AI features run through a single askClaude() / askClaudeJSON<T>() abstraction over AWS Bedrock. Swapping models or adding endpoints takes minutes. The hard part was never calling the API -- it was knowing what to ask.


Challenges I ran into

The privacy paradox. Location sharing is the product. It's also what makes people close the app. I went through three versions of the permission flow before it felt like an invitation instead of a demand. The unlock: show value before asking for anything.

The empty map problem. A social app with no one nearby is a lonely experience. I built Adventures, AI insights, and hotspot discovery so there's always something to do even if you're the first person in your city to open it. Meet your first-user features.

The human question. Every decision came back to one thing: does this make it easier or harder to have a real moment with a real person nearby? When the answer was "harder," it got cut.


What's next for Pocket

Recurring Pockets - "I'm here every Tuesday at 3pm for chess. Come find me." Scheduled and spontaneous, living side by side.

Smart matching - instead of broadcasting to everyone within 500m, route your Pocket to the people most likely to care, based on shared interests and past interactions.

Community reputation - lightweight trust signals (consistent activity, positive interactions, verified identity) that make joining a stranger's Pocket feel less like a risk.

Campus and enterprise mode - all the hyperlocal magic, scoped to a building or venue. Offices, universities, conferences.

Native apps - React Native for background location, native push, and lock screen widgets. The PWA works. A native app would be better.


There's a version of the city where you don't leave that coffee shop without knowing at least one person's name.

Pocket is how we get there.

Built With

Share this project:

Updates

Submission history