← Programs

Cute Location

Share your location with someone close, with cats on the map. Private test version. Demand testing is in progress.

Problem

You want to know whether someone close has arrived, without sending another message to ask. Sharing a location needs to be voluntary, and a pause needs to be clear to both people.

See the solution

Solution

A native Android app for a couple. After pairing their phones with a QR code, each person sees the other as a cat on the map. A partner card shows battery, network and movement, while pause stops sharing. Try the interface prototype below with example data.

Interactive prototype with a Polish interface. The map, locations and phone status are simulated. It does not request your location or connect to Google or Supabase. This is not the running Android app.

Open in a new tab ↗

What it does

  • A couple of two people, paired with a QR code
  • Cats on the map, a partner card, battery, network, speed and the last phone unlock
  • Pause sharing, with the pause visible to the other person
  • The day's trail and stays, with addresses fetched by a server function
  • Day and night themes set by the clock, with a cat or your own photo as the marker
  • Requested GPS interval: 1 s live, 10 s moving, 60 s during a stay. Pause turns GPS off
  • Signed APK updates, with a SHA-256 check before installation

How it's built

  1. 01Kotlin and Jetpack Compose: main screen and onboarding, pure rules in domain, server calls in data, location sharing in share
  2. 02A foreground service collects GPS and phone status. The other person's Presence selects live mode; modes change requested GPS and persistence intervals
  3. 03Private Supabase Realtime channel couple:<id>: Broadcast pos carries locations, Presence reports an open view, Postgres Changes delivers stored changes
  4. 04Postgres with RLS: couple members read shared data, while the author writes their own samples. SQL functions handle pairing
  5. 05MapLibre Native reads a bundled map style and OpenFreeMap tiles. The partner cat's position is predicted between samples and eased exponentially with a 0.3 s time constant
  6. 06Edge Functions resolve stay addresses through Geoapify and delete accounts. Marker photos live in private Storage
  7. 07The release script publishes a signed APK and latest.json to private releases, and the newest first-install APK to public download

Open interactive architecture and sources ↗

Stack

  • Kotlin
  • Jetpack Compose
  • Android
  • MapLibre Native
  • OpenFreeMap
  • Supabase Auth
  • Postgres and RLS
  • Supabase Realtime
  • Supabase Storage
  • Edge Functions

Story

I am the sole author and build the app with AI agents. I own the interface, sharing rules, database, access controls and releases. The version is private and demand testing is in progress. Intervals and easing describe the code, not guaranteed latency between two phones. Battery use and behavior on the intended devices still need measurements.

Would you use this together?

I am testing demand for a private app for couples. Leave your contact if you want to hear when it becomes available.

  • When would voluntary location sharing help you?
  • What needs to be clear before you pair your phones?
  • What would make you return to the app?

Got an opinion? Put it in the message, I read every one.

Your address stays with me and is used only for the launch note.