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
Share this project:

Updates