A map-first app for a city-sized gathering
Sector
Events · Large venue
Our role
Product designMobileWebBackendInfrastructure
Stack
- React Native
- Expo
- TypeScript
- NestJS
- GraphQL
- Postgres
- Prisma
- Mapbox
- Firebase
- Terraform
- DigitalOcean
- Applications shipped as one platform
- 4
- Brief to production-ready v1
- 1 week
- Infrastructure defined in Terraform
- 100%
01 / The brief
Redemption Camp is effectively a small city: arterial roads, auditoriums, residential estates and a convention ground that fills far beyond the capacity of any off-the-shelf venue map. Visitors arrive at night, often for the first time, frequently on a patchy mobile signal.
The brief needed four things at once — an app people could navigate with, a map accurate enough to trust, a way for the organising team to change what the app shows without a developer, and infrastructure that would survive the spike when a programme item starts.

The Map tab — search, filters and custom cartography drawn for this site.

The programme as a timetable — every venue side by side, with a NOW line through the day.

Live services — the stream, audio-only mode and the order of service as it happens.

Home — starred programmes, reminders and the countdown to the next service.

Family & Friends — opt-in location sharing with one-time codes, scoped to the camp.

Walking directions — routed on footpaths we mapped, and it works offline.
02 / What we did
- 01
One contract, four clients
The GraphQL schema was written first and committed as a contract file. A build step fails the pipeline if the generated schema drifts from it, so the mobile app, the admin CMS and the public site can be built in parallel against a surface that cannot move under them.
- 02
Cartography, not a basemap
The camp was drawn as a custom Mapbox style and tileset rather than dropped as pins on a default map: real building footprints, the road hierarchy people actually use, and an icon set that stays legible from the whole-site view down to a single auditorium door.
- 03
The organisers own the content
Every point of interest, label, programme item and push notification is editable in an admin panel built for the team that runs the event. Map Studio is the only place map content changes — no deploy, no developer, no ticket.
- 04
Offline is the default assumption
The app caches the map, the programme and the directory, so a visitor standing in a dead spot still has the thing they opened the app for. Writes queue and retry rather than failing in the user’s face.
- 05
Design system before screens
A Figma foundations and component library was built first, mirrored into the mobile theme and the admin CSS, with a drift script in CI. Light and dark were designed together, not retrofitted.
03 / The system
Four applications, one platform. The clients share a single GraphQL contract, the map renders from a tileset we drew, and the whole estate tears down and rebuilds from Terraform alone.
04 / Where it landed
- A production platform — mobile app, admin CMS, public site and API — running on infrastructure that can be rebuilt from an empty cloud account with one Terraform apply.
- Content, map data and notifications are owned entirely by the organising team.
- Android closed testing and iOS distribution set up alongside the launch, with over-the-air updates for everything that does not need a store review.
Similar problem?
We can scope yours this week
Send over what you are trying to build. You get an honest read on feasibility and a scoped estimate — not a discovery phase invoice.
