All work

rthms

An iOS app that connects your habits with places, people, and plans that fit your life.

Role
Lead Developer / Co-founder
Status
live
Platforms
iOS
Stack
  • Expo (SDK 57)
  • React Native 0.86
  • React 19
  • TypeScript
  • NativeWind / Tailwind
  • Supabase (Postgres + Deno Edge Functions)
  • TanStack Query
  • Plaid
  • Apple HealthKit
  • RevenueCat
  • PostHog
  • Cloudflare Workers (MCP server)

Problem

A workout, a purchase, and a playlist can each say something about how you spend your time. But those signals usually live in separate apps, and a generic recommendation feed doesn’t connect them.

rthms brings them together to help people understand their routines and find things that fit their lives. The focus is on reflection and discovery, without asking members to set goals or maintain streaks.

What I built

I’m a co-founder and the lead developer of rthms, an iOS app built with Expo and React Native, backed by Supabase.

Members can connect services such as Apple Health, Plaid, Apple Music, and YouTube. The app turns those signals into habit tags that inform their profile and recommendations for places, events, and people. Circles brings the social side of the app together, while an AI assistant helps turn an idea for a night out into a plan called a Path.

The backend handles data syncing, habit calculations, recommendations, and social features through Supabase Edge Functions. A separate MCP server makes member taste and discovery tools available through Claude and ChatGPT.

Notable engineering

  • Giving specific interests more weight. The idfCosine matching function weights uncommon shared interests more heavily than broad ones. It also checks how much evidence supports a match, so one shared tag doesn’t carry the same weight as a consistent pattern.
  • Making recommendations useful from the start. The recommendation engine blends broader lifestyle categories with detailed habit tags when it has little history to work with. After ranking, it balances relevance with variety, fresh options, and how often someone has already seen an item.
  • Testing the engine before relying on it. The simulation suite runs the actual matching code against synthetic personas with known preferences. It lets us explore sparse histories, noisy signals, and ranking changes without treating simulated results as proof of real-world outcomes.
  • Catching build mistakes early. The build-environment validator checks the app target, update channel, and backend configuration before an Expo build. The shared verification command brings configuration checks, type checks, and app tests into one gate.
  • Making glass UI work beyond the ideal settings. The GlassSurface component uses native Liquid Glass where available, falls back to blur on older iOS versions, and switches to an opaque surface when Reduce Transparency is enabled.

Status

rthms is available on the App Store, with ongoing development and TestFlight testing. Some discovery features are still staged while their data coverage and rollout are refined.