TEAM: MERGE CONFLICT

Inspiration

Short car trips drive a large share of urban emissions. We wanted a simple loop that flips those trips into verified walks, turns impact into rewards, and gives cities lightweight signals for where small upgrades (crossings, shade, sidewalks) unlock more walking.

What it does

  • Pick a place → get a route → walk → claim rewards, based on how far we go.
  • Distance → coins (fair caps), plus a visible estimate of CO₂ avoided.
  • Spend coins to plant trees in a virtual 10×10 garden .
  • Weekly leaderboard and light suggestions/chatbot to share walking spots.
  • Show people's contribution - heatmap displays how frequently users walk in each country.
  • UX Light/Dark mode - app has light and dark modes.

How we built it

  • T3 Stack: Next.js (App Router) + TypeScript, tRPC, Prisma, NextAuth, Tailwind.
  • Data & deploy: PostgreSQL (Supabase) + Vercel;
  • Maps: Mapbox GL + Directions + Search for routing and autocomplete.
  • Server logic: trip verification, distance math, distance × emission factor for CO₂, coin ledger, garden CRUD.

Challenges we ran into

  • No constant live location updates: We are using a lightweight, free map API, so the rate limiter does not allow us to implement the live update feature. This consequently would not allow us to verify whether the user is cheating (not walking/going by bike). However, we did implement time elapsed thresholds such that it blocks suspicious trips.
  • Geolocation accuracy: permissions, noisy coords, fair arrival thresholds.
  • Anti-cheat: speed caps, min distance, sanity checks without harming UX.
  • Infra quirks: Prisma migrations vs. PgBouncer; auth-protected tRPC causing early UNAUTHORIZED until session flow was fixed.

Accomplishments that we're proud of

  • End-to-end trip verification → distance → coins with instant UI feedback.
  • Polished garden (prices, withered trees, refunds) tied to real coin logic.
  • Clean route preview + simple “I’ve arrived” flow that keeps cheating annoying.

What we learned

  • Small, visible rewards change behavior reliably.
  • Clear contracts between map UI and backend math keep the app fast and maintainable.
  • CO₂ context works best when it’s transparent and simple .

What’s next for GreenStride

  • Richer CO₂ factors by city/mode; seasonal updates.
  • Smarter leaderboards (teams, campuses) and event challenges.
  • Opt-in, anonymized hotspots to guide micro-infrastructure improvements.
  • More gamification: tree upgrades, achievements, limited-time quests.

Built With

  • geocoding/search
  • mapbox
  • mapbox-gl/@mapbox/mapbox-gl-directions
  • nextauth
  • node.js-tooling
  • prisma
  • react
  • supabase
  • t3
  • tailwind-css
  • trpc
  • typescript
  • vercel
  • zod
+ 10 more
Share this project:

Updates