A Map of Who Is Watching, Kept Honest by Time
A community-sourced map of surveillance around you — cameras, checkpoints, speed traps — that scores each area by how recent and how confirmed the reports are, and warns you as you approach one.
Industry
Consumer Mobile
Solution
Community Awareness App
Platform
React Native / Android
Services
Mobile App Development

Crowd Data Goes Stale — That Is the Whole Problem
A community map is easy to build and hard to keep true. Somebody reports a camera; the camera comes down; the marker stays forever. Within a few months the map is a museum of things that used to be there, and nobody trusts it.
The interesting engineering here is not the map. It is everything that stops the map from lying: how a report decays over time, how repeated reports of the same thing collapse into one, and how you tell a driver something useful without making them look at a screen.
The Problems We Set Out to Solve
The source marks the business before-state as needing human input, so we present the engineering problems — which are documented, and are the substance of the build.
Community reports going stale, leaving areas permanently flagged
The same spot reported many times, appearing as many separate markers
Alerting a driver without asking them to look at a phone
Detecting driving reliably in the background, surviving the app being killed
A realtime community map with no custom backend to enforce anything
A Score That Decays, an Alert You Can Hear
Every mechanism below exists to stop the map going stale, or to keep the driver's eyes on the road.
Recency-Weighted Scoring
Each area's score combines proximity, report type, confirmations and density — then decays on a thirty-day half-life, so a spot nobody has confirmed for months quietly fades instead of staying red forever.
Clustering, Not Duplication
Reports within sixty metres are treated as the same spot, so ten people flagging one camera produce one confident marker rather than ten weak ones.
A Heartbeat You Do Not Have to Look At
Proximity alerts speed up as you close in — from a slow pulse at the edge of the zone to a rapid one on top of it — so the driver never looks down.
Driving Detection That Survives
A native Android module using activity-recognition transitions plus a foreground service, with Bluetooth car connection as a corroborating signal — driving mode engages without the user doing anything.
What the App Does
Surveillance Map
The core map showing community markers, risk zones and camera points, with drop, confirm and recenter controls.
Drop & Confirm
Report a surveillance point — CCTV, speed camera, checkpoint — and confirm someone else's, which is what keeps the map alive.
Risk Zones
A recency-weighted score per area, rendered as yellow and red zone polygons rather than a wall of pins.
Proximity Alerts
A heartbeat beep and vibration that accelerates as you approach a reported spot, with a configurable alert distance.
Driving Mode
Automatic full-screen driving view, triggered by native activity recognition and a Bluetooth car connection.
Camera Points
Public surveillance-camera locations bulk-imported from open map data, so the map is not empty on day one.
Vehicle Points
Vehicle-relevant points with charging network, fuel type and toll/HOV pass details.
Alerts & Reports Hub
A single place to see what has been reported around you and what you have contributed.
Anonymous Use
Fifteen free marker drops without an account, with more granted each time the sign-in prompt is skipped — the app works before it asks for anything.
Settings
Map display in 2D or 3D, dark mode, smart alerts, alert distance, road features, commute mode, permissions and data privacy.
Background Notice
A persistent notification while running in the background, so the app is never quietly listening.
Theming & Languages
Light and dark mode, and the interface in two languages.
React Native, Native Android Where It Matters
Mobile
Native Android
Backend
Data & Auth
How It Was Built
- 1
Map & Scoring Core
The realtime community map with recency-weighted scoring — proximity, type weights, confirmations and density, decaying on a thirty-day half-life into yellow and red zones.
- 2
Human-Friendly Alerts
The heartbeat cadence, accelerating from a slow pulse at the zone edge to a rapid one on the spot, with a reset radius so it does not nag.
- 3
Native Driving Detection
A Kotlin module on activity-recognition transitions plus a foreground service, with Bluetooth as a second signal — the part that could not be done in JavaScript.
- 4
Authorisation in the Database
With no custom backend, every rule lives in Postgres row-level security, triggers and stored procedures.
- 5
Map Provider Migration
Moved map providers mid-build when tile reliability proved not good enough for an app people rely on while driving.
- 6
Design Iteration
A full design overhaul driven by client feedback, rather than a single design handed down at the start.
What Was Delivered
30-Day
Score Half-Life
60m
Report Cluster Radius
13
Service Modules
8
Native Android Files
The map cannot go permanently stale: every report decays, so an unconfirmed spot fades on its own.
Repeated reports of the same camera collapse into one confident marker instead of a cluster of weak ones.
A driver is alerted by an accelerating heartbeat rather than by something they have to look at.
Driving mode engages from native background detection — the app does not need to be open, and it says so with a persistent notice.
Frequently Asked Questions
Yes — that is the core of what we built here. Every area's score decays on a thirty-day half-life, so a spot nobody has confirmed for months quietly fades instead of staying flagged forever. The map stays trustworthy because unconfirmed reports fall away on their own rather than needing anyone to clean them up.
Services Behind This Build
Explore Other Case Studies
Building an app people rely on in the real world?
We build the parts that are hard to fake — background detection, offline behaviour, and data that stays true over time.
Talk to a Delivery Expert

