Orbit Rings

A Speedshift project

Keep the people who matter close.

A personal relationship manager for iOS and Android. Orbit Rings organises the people in your life into concentric circles of friendship, then nudges you when you’ve gone too long without reaching out to someone in a given circle.

In development — iOS & Android

Native iOS and Android apps are being built against a shared spec, with a Flutter prototype as the reference implementation. No store listing yet — watch the repository for the beta.

SMJTARKPDLMOBWCNEHRGTYLVPANJFCQSZBWDIKOMUFXRGTHBVNYEJPALCSYou
WarmCoolCold

Four circles, and they have room limits

Anthropologist Robin Dunbar found that human social networks settle into layers of roughly 5, 15, 50 and 150 people, each held together by a different frequency of contact. Orbit Rings makes that structure explicit — and enforces it. When a circle is full, someone has to move outward before someone else can move in. That constraint is the point: it forces honest prioritisation instead of a contact list that quietly grows until none of it means anything.

Best friends

The two people you talk to about everything.

Holds
2
Cadence
Every few days

Close friends

Your trusted circle — the group chat that never dies.

Holds
8
Cadence
Every couple of weeks

Friends

People you’re genuinely happy to run into.

Holds
40
Cadence
Every month or two

Acquaintances

The wider network you want to stay on the map with.

Holds
100
Cadence
A few times a year

What the app does

A map of your people, a feed of who needs a nudge, and an honest read on how you’re doing.

The circle map

The home screen is the rings themselves — a radial view where every person is an avatar on their circle, tinted by how warm the relationship is. Tap a ring to browse its people, most-overdue first.

Nudges, not guilt

When someone passes their circle’s cadence they surface in the Nudges feed and as a notification: “It’s been three weeks since you talked to Sam. Say hi?” Humanised periods, never a day count with a scolding attached. Say hi, or push it out three days.

Your real address book

People come from the device contacts — the iOS Contacts framework and Android’s ContactsContract — not retyped by hand. Orbit Rings keeps a link to the source contact so names, photos and numbers stay in sync.

Relationship health

A read-only tab that answers “how am I actually doing?” — people reached this month, how each circle is trending, and which relationships have been cold the longest.

One tap to log

Call, text, in person or other — logging an interaction is a single tap from the person card, or straight from the notification. iOS and Android both forbid reading your call and message history, so logging is deliberate by design, which also keeps the app compliant on both stores.

Yours, everywhere

Firebase Auth and Firestore with offline persistence back both apps, so your circles follow you across devices and keep working with no signal. Sign in with Google, Apple, or email.

Warmth, not a scoreboard

Every person carries a last-contacted date. Measured against their circle’s cadence, that gives one of three states — which is all the colour on the map means.

Warm

In touch. Well inside the circle’s cadence.

Cool

Drifting a little — past halfway to overdue.

Cold

Needs a nudge. Past the cadence for their circle.

How it’s built

Native on both platforms

SwiftUI on iOS 17+, Kotlin and Jetpack Compose on Android. The hardest parts — contacts integration and reliable background reminders — are platform-specific anyway, so a cross-platform layer would have cost more than it saved.

A design system, not a theme

One hue per circle at matched lightness and chroma, an airy daylight palette and a deep violet night mode, and a token set both apps render from. The rings glow rather than shout.

Domain logic under test

Capacity enforcement runs inside a Firestore transaction so two devices can’t both fill the last seat. Cadence maths, warmth thresholds and the notification planner are pure functions with unit tests on both platforms.