Offline breadcrumbs
Points are written to an encrypted SQLite queue first. When the network returns, up to 200 points sync in one request — deduplicated by client id, never reordered.
Android-first · Open source
Beacon keeps an offline breadcrumb trail, accepts remote commands, and tells you the truth about what Android will and will not allow. No ad SDKs. No map bill. No mystery backend.
Field phone
Pixel 9a · Android 16
Last fix
12 s ago · fused
© OpenStreetMap · OpenFreeMap
62%
LTE
Geofence
InsideHome perimeter
250 m radius · entered 14:12
Actions
Queue synced · 48 points
Argon2id
Password hashing
AES-256-GCM
Encrypted fields
200
Points per offline sync
90 days
Default retention
Capabilities
Consumer finders optimise for a phone that is online, charged and behaving. Beacon is designed around the other case: no signal, low battery, a removed SIM, and a decision you need to make quickly.
Points are written to an encrypted SQLite queue first. When the network returns, up to 200 points sync in one request — deduplicated by client id, never reordered.
Locate, ring, lock, enter lost mode, show a message or force a sync. Commands are queued, authenticated per device, and expire if they are no longer useful.
Arrival and departure checks run server-side against every accepted fix, so a missed push notification does not become a missed alert.
Battery, charging state, network type and SIM state arrive with each heartbeat. Stale and offline are distinct states, not one vague grey dot.
Relay first, Resend second — or the reverse. Set a per-account priority, see recent delivery attempts, and never lose an alert because one provider is down.
Every fix keeps accuracy, provider, timestamp and a mocked-location flag. Export the full account as JSON and preserve the trail if you need it later.
Lost mode
One command starts a predictable sequence: alarm, lock screen, higher fix cadence, queue protection. Nothing clever happens in the background. You can see every state on the dashboard.
Trigger from anywhere
Send lost mode from the dashboard or another signed-in session.
Make it audible
The device raises a full-volume alarm and shows the lost screen.
Tighten the fix cadence
A foreground service increases location frequency while the mode is active.
Keep the trail
If signal disappears, the queue holds. The last known fix stays visible.
Lost mode · active
Field phone
Alarm sounding
Last fix 42 s ago · ±6 m · 62% battery
Android restricts background camera access and SIM monitoring. Beacon reports what it could and could not do instead of showing a green checkmark that means nothing.
Maps
Beacon renders OpenFreeMap styles with MapLibre GL. There is no API key to leak, no per-load invoice, and no phone-home map SDK embedded in the dashboard. When you want turn-by-turn directions, one link opens the coordinates in Google Maps.
# Light — Positron
NEXT_PUBLIC_MAP_STYLE_LIGHT=
https://tiles.openfreemap.org/styles/positron
# Dark — Dark Matter
NEXT_PUBLIC_MAP_STYLE_DARK=
https://tiles.openfreemap.org/styles/darkTile provider
OpenFreeMap
Renderer
MapLibre GL JS
Directions
Google Maps link
API key
Not required
Android app
A Kotlin and Jetpack Compose client uses WorkManager for the baseline and a foreground service for live and lost mode. The tracking profile is a real setting, not a marketing toggle.
Fused location
Balanced by default
Encrypted queue
Survives offline
Low-power path
Doze-aware scheduling
Photo request
Foreground only
Android 8.0+ · No Play Services required
Field phone
Updated 12 s ago · ±8 m
Device queue
142
Encrypted
Security posture
Beacon treats location history as sensitive by default. Sessions are opaque and hashed. Sensitive columns are encrypted with context-bound AES-GCM. Device tokens are scoped, hashed and revocable. Every privileged action is written to an audit log.
Argon2id password hashing
Opaque, hashed session tokens
AES-256-GCM field encryption
Per-device bearer tokens
TOTP, email OTP and recovery codes
Rate limits and lockouts
Audit log for sensitive actions
Strict CSP and origin checks
Open source · AGPL-3.0-or-later
No third-party analytics. Ever.
Questions
If something here is not true of the deployed version, it is a bug in the documentation. The repository is the source of truth.
No. Find My Device is the fastest option when a phone is online and signed into Google. Beacon is for the cases where you want your own data, longer history, offline queues, geofences and a server you control. Run both if you like.
Fixes are stored locally in an encrypted queue and uploaded when connectivity returns. The dashboard keeps showing the last received fix, clearly labelled with its age, instead of pretending the location is current.
It can request one, but Android only permits camera access while the app is in the foreground. Beacon reports the result honestly. It does not pretend to be spyware and cannot capture silently from the background.
Android exposes the background location, telephony and device-management APIs this design depends on. A Windows client is planned. iOS would require a materially different background model, so it is not promised.
In the Postgres database you configure. There is no Beacon-operated cloud and no analytics SDK. Map tiles are fetched from OpenFreeMap; Google Maps opens only when you choose to follow a link.
Yes. The web app targets Vercel's free tier and any Postgres provider — Neon is the documented default. The Android app is built locally with Android Studio or Gradle. Deployment and build guides are in the repository.
Create an account, pair an Android device, and decide how much history you want to keep. Bring your own infrastructure.
Free to self-host · No credit card · No tracking pixels