From Idea to Launch in 3 Days: Building TrailMatch

TrailMatch homepage
Homepage of TrailMatch — clean, mobile-ready, and location-aware.

TrailMatch started with a simple goal: help people find trailheads quickly — by vibe, not just location.

I built and launched it in a single long weekend — no backend, no signups, no overthinking. Just search, click, and go.

Tech Stack

  • Next.js (App Router) for SSR and routing
  • Tailwind CSS for utility-first styling
  • ShadCN/UI for out-of-the-box React components
  • Mapbox GL JS for interactive maps
  • Google Places API for location autocomplete
  • Vercel for hosting and deployment
  • Google Analytics 4 for post-launch behavior tracking

Everything runs client-side — zero backend for now.

Day 1: Core Search & Layout

Location search input
Google Places API integration with clean location autocomplete.
  • Built layout with Tailwind + ShadCN
  • Added location search using Places API
  • Displayed curated trailheads in a basic list
  • Mobile-first, responsive setup
No filters, no tags yet — just a focused MVP.

Day 2: Vibes & Map Integration

Vibe filtering
Vibe-based filtering — choose "Scenic", "Dog-friendly", or "Hidden gem".
  • Added vibe tags for filtering
  • Introduced Mapbox with trailhead pins
  • Improved mobile nav, spacing, and accessibility
  • Started SEO work: title tags, OG metadata, canonical URLs
Mapbox pins

Day 3: Polish, Analytics, and Deployment

Mobile view with Map and List
  • Integrated Google Analytics 4 (event tracking)
  • Loading states and error fallbacks
  • Improved Lighthouse score
  • SEO basics: sitemap.xml, robots.txt, OG previews
  • Deployed to Vercel → matchtrail.com

Improvements Since Launch

  • API-driven trail data
  • Location fallback if autocomplete fails
  • Refined dark mode
  • Exploring personalized trail suggestions
  • SEO refinements for share previews

What’s next?

  • Saved trail lists
  • Search history suggestions
  • User-submitted trails
  • More dynamic map interactions

Final Thoughts

TrailMatch is fast, light, and built to get people outside faster — not spend 20 minutes deciding between 3 trails.

Explore TrailMatch

Back to Writing