Give Go — Project Story
Inspiration
Give Go came from three simple observations:
- People struggle to stay motivated to exercise.
- Donating to charity often feels disconnected from daily life.
- Location-based games like Pokémon GO showed that people will walk if there’s a reason to.
We asked: what if walking directly triggered real charitable donations?
Give Go turns everyday movement into impact. You walk, collect virtual items, and real money goes to charity.
We started with the British Heart Foundation, but designed Give Go as an open platform where multiple charities can participate and players can choose causes they care about.
What it does
Give Go is a GPS-based game where players collect virtual hearts that represent real donations.
Players
- Players see hearts placed 1–2km away on a map
- Each heart has a real value (£0.10–£5)
- To collect a heart, players must walk to within 10 meters
- When a heart is collected, a donation is triggered
Players can:
- Track total donations
- View a global leaderboard
- See their collection history on a map
- View impact over time
Hearts are generated in timed sessions (30–120 minutes). Uncollected hearts expire, encouraging short, active walks.
Sponsors
- Sponsors purchase hearts in bulk
- Hearts are distributed to player sessions
- Sponsors can see:
- Current inventory
- Active hearts
- Collected hearts (donated)
- Expired hearts (returned to inventory)
Funds are tracked through an escrow system so money is only released when hearts are collected.
Technical Overview
- Backend distance checks using the Haversine formula
- 10m collection radius enforced server-side
- Automated service expires hearts every 60 seconds
- Escrow system tracks funds through purchase, allocation, and donation
- Interactive maps powered by OpenStreetMap
How we built it
Tech Stack (Built using Replit)
Backend
- Node.js
- Express
- PostgreSQL
Frontend
- React
- Vite
- Wouter
- shadcn/ui
- TanStack Query
- OpenStreetMap (map tiles and data)
Key Design Decisions
- Web-first PWA to move fast during the hackathon and work immediately on mobile browsers
- Session-based gameplay so players only see nearby, achievable hearts
- Backend-authoritative logic for distance checks and state changes
- Escrow-based fund tracking to keep donation flow simple and transparent
Challenges
GPS Accuracy
Browser location data varies depending on device and environment.
Approach
- Backend distance verification
- Clear visual feedback around collection distance
Concurrent Collection
Multiple players attempting to collect the same heart.
Approach
- Database row-level locking to ensure a heart can only be collected once
Fund Tracking
Money moves through several states before reaching a charity.
Approach
- Explicit escrow states with transactional database updates
Give Go is built around a simple idea:
make movement do something useful.
Built With
- react
- shadcn
- tanstack
- vite
- wouter
Log in or sign up for Devpost to join the conversation.