Cartodrop

A platform for organisations to build and run location-based games, treasure hunts and guided tours.

Cartodrop is a platform for creating location-based games and tours. Organisations can build routes, place checkpoints and define challenges that players complete by visiting locations or interacting with physical objects.

How it started

I originally built the tools for Urban3D, a treasure hunt where players found objects around the city and scanned QR codes to claim them. When other teams wanted to create their own experiences using the same system, I started turning it into an application that could support multiple organisations.

Each organisation now has its own team, games and content, with administrators managing checkpoints and the rules for player progress. Several experiences can run within the same application without needing a separate deployment for each one.

Moving to Laravel

The first implementation used Next.js, followed by an experiment with Astro and Cloudflare’s edge platform. As the project expanded, more of the work involved authentication, team membership, permissions and relationships between games and their content. These requirements made Laravel a better fit for the application I was building.

I moved the application to Laravel and Livewire, keeping most of the interface server-driven and using MapLibre for the interactive maps. Laravel also provides the API, authorisation and queued jobs, with automated tests covering the main team and game workflows.

The mobile app

The web application is live and handles the creation and management of games. I am also developing a SwiftUI companion app using the same API, so administrators can manage an experience and scan QR codes while on location.

← Back to work