discover
locale.
Your city's social calendar. Explore local events, discover hidden gems, make plans with friends, and create events for your community — all in one place.
Built for spontaneous discovery
Three modes for three moments — browsing what's on, exploring where things are, and tracking what you're doing.
Tonight strip surfaces same-day events. Trending pills show what's buzzing. Category and date filters cut through the noise.
Color-coded teardrop pins by category. Bottom sheet lists nearby events. Links to Apple Maps or Google Maps based on device.
14-day calendar strip with event dots. Going tab tracks RSVPs. Saved tab holds your watchlist. Tap any day to filter.
Three views, one experience
Each screen is tuned for a distinct moment in the discovery journey. Click any phone to pause the demo.
PM
PM
Crafted with intention
Every visual and interaction decision was grounded in a specific intent — from the colour of a dot to the shape of a map pin.
The dark-first design ensures event imagery, emoji, and category colours pop. Built mobile-first at 390×844px.
The accent colour evolved from #7CFF6B (electric, harsh) to #5DD44A (organic, warm).
Eight distinct hues, one per event type, used consistently across cards, map pins, and filter pills.
Cards borrowed from the social story format. Widened to 150×190px after testing narrower cards felt cramped.
border-radius: 50% 50% 50% 4px — directional, distinct from generic circles.
Every card shows where the event came from — Reddit, Meetup, Local News, Community.
Two distinct states of intent: Going (committed RSVP) and Saved (soft wishlist, no pressure).
App identity comes from the product, not logo repetition.
Felt deceptive. Replaced with an honest spinner.
Minimalism at the cost of affordance. Border was restored.
Added anxiety before users even decided they were interested.
Designed for the Friday-evening scroll
Research was conducted entirely online — listening to where residents actually talk about events, and auditing what existing platforms get wrong.
“It's 6pm Friday. I want to do something tonight — not just scroll. But I don't know where to start looking.”
Every Friday, local subreddits see the same post: “What's happening this weekend?” The community does the curation work by hand because no tool does it for them.
None of them surface the category Locale is built for: free, community-driven, spontaneous local happenings. The gap is structural, not accidental.
Users open social apps in the evening to decompress — but that scroll habit sits right next to a latent desire for real-world connection. Locale intercepts that exact moment.
“The most underserved use case in local discovery isn't finding the next concert — it's finding something worth leaving the couch for, tonight, that doesn't cost anything.”
Cities have hundreds of free community events every week. Locale pulls them into one scrollable surface — and makes the discovery feel as effortless as checking Instagram.
From vision to working product
“Every design decision was validated before moving forward. If something felt off, it was revisited — not rationalized away.”
Desktop Prototype — Establishing the Core Experience
Built the first interactive prototype as a desktop layout to establish the foundational information architecture: map/list dual-view, category filter pills, and event cards.
Mobile Prototype — Designing for the Real Use Case
Rebuilt entirely for mobile (390×844px). Introduced the Tonight strip, Trending pills, Plans tab with a 14-day calendar strip, and a map view with colour-coded teardrop pins and a sliding bottom sheet.
Live API Integration — Wiring Real Data
Connected to Ticketmaster Discovery API and Anthropic's web search tool, with multi-source merge architecture, deduplication, server-side caching, and hardcoded fallback events.
Production Scaffold — Building for Scale
Full Next.js 14 / TypeScript backend with modular source architecture, parallel fetching via Promise.allSettled, and Vercel deployment.
What the process revealed
Two-Turn API Flows Are Non-Obvious
Anthropic's tool-use pattern requires a two-turn conversation loop. A single-turn implementation silently returns nothing.
Fallbacks Are a Feature, Not a Crutch
Hardcoded events ensure users never see a blank screen. Resilience is designed in, not bolted on.
Editing Is a Design Discipline
A wordmark, shimmer bar, borderless search input, and capacity indicator were all built and deliberately removed.