Consumer Mobile · React Native

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

Talk to Us
Surveillance-Awareness App — OpenMalo case study
Client Context

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.

Recency-Weighted ScoringBackground DetectionRealtime Map
The Challenge

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

Our Solution

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.

Key Features

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.

Technology Stack

React Native, Native Android Where It Matters

Mobile

React NativeTypeScriptReact Native Maps

Native Android

KotlinActivity RecognitionForeground Service

Backend

SupabasePostgreSQL + RLSDB Triggers & RPCRealtime Sync

Data & Auth

Open Map DataGoogle Sign-InOffline-First Storage
How We Delivered

How It Was Built

  1. 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. 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. 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. 4

    Authorisation in the Database

    With no custom backend, every rule lives in Postgres row-level security, triggers and stored procedures.

  5. 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. 6

    Design Iteration

    A full design overhaul driven by client feedback, rather than a single design handed down at the start.

The Result

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.

FAQ

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.

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