← All projects
Creator·2025 — Now·Active

Friend Roulette

A tiny iOS app that nudges you to reach out to the people you actually mean to keep up with — pick contacts, set a cadence, roll the dice. Everything stays on your phone.

iOSExpo / RNTypeScriptSQLiteOn-device
0
Servers
1/day
Local nudge
100%
On-device data
4
Default cadences
What's inside the app
01 · DAILY ROLL

One friend a day

A weighted-random draw surfaces one person from your circle each morning. The more overdue a contact, the heavier their card — but the roll keeps it feeling like a moment, not a chore list.

02 · CADENCE

Weekly → yearly

Assign each person a rhythm that matches the relationship. Cadence is stored in days under the hood, so "every six weeks" is simply 42.

03 · TAP TO REACH OUT

Native handoff

Send a text or place a call straight from the card. The app opens Messages or the phone dialer — no in-app inbox, no synthetic chat surface.

04 · LOCAL NUDGE

9am notification

A single local notification fires when someone is overdue. No push tokens, no backend, no engagement loop — just the prompt.

05 · SHAKE TO REROLL

Not feeling it? Reroll.

Shake the phone to draw a different friend. The card you skipped goes back into the deck weighted for tomorrow.

06 · ON-DEVICE ONLY

Zero data collection

No accounts, no servers, no analytics, no trackers. Apple's privacy label reads "This app does not collect any data." That constraint is the whole product.

FriendFriend Roulette · 2025 — Now
01· Section

The problem

We mean to call back. We mean to check in. We mean to send the text. But the people who don't live in front of us drift away — not because we don't care, but because nothing prompts us. Your existing apps are optimized for engagement with strangers, not for the slow work of staying close to people you already love.

Friend Roulette is the prompt. Nothing more.

02· Section

How it works

You pick contacts from your phone book and assign each one a cadence — weekly, monthly, quarterly, or yearly. Every day, the app rolls the dice and surfaces one person from your circle who's due. Tap to text or call; it opens your normal Messages or phone app. Log the conversation with an optional note when you're done. A 9am local notification nudges you on days when someone's overdue, and shaking the phone rerolls.

The picker is a weighted-random draw, not a queue: weight = overdueRatio², where overdueRatio = days since last contact ÷ frequency in days. People who are very overdue float to the top, but it's still a roll — so the app never feels like a chore list.

Today's roll surfacing one friend from the deck
Today's roll · weighted draw, not a queue
Per-contact cadence picker
Cadence picker · weekly through yearly
03· Section

Privacy as the architecture

Everything lives on your phone. No servers, no accounts, no analytics, no third-party trackers. The Contacts permission is read-only and used entirely on-device. Notifications are local-only — no push tokens to leak, no backend to compromise.

Apple's privacy label for the app reads, truthfully, "This app does not collect any data." That constraint is the whole product. A relationship-CRM that uploaded your address book would defeat its own purpose.

Privacy by design: data stays on the phone
Privacy is the product, not a feature
04· Section

The stack

Built on Expo SDK 54 with React Native and TypeScript. expo-sqlite for the local database (two tables: contacts and interactions, with cadence stored as days so "every 6 weeks" is just 42). expo-contacts for the address-book import. expo-notifications for the daily nudge. expo-sensors for shake-to-reroll. React Navigation for the native stack. EAS for TestFlight builds.

Roughly a thousand lines of product code. The whole thing is a deliberate exercise in shipping the smallest viable version of an idea I've wanted to exist for years.

05· Section

Why it matters to me

I spend a lot of professional time thinking about how AI and software can manufacture connection. Friend Roulette is the personal version of that thesis. The most important relationships in my life aren't ones that any feed will surface or any agent will manage — they're with specific people who deserve a real check-in on a real cadence.

If founder communities are the IRL bet on high-trust gatherings, Friend Roulette is the daily, ambient counterpart: a quiet local prompt that helps you stay close to the people you've already chosen.