indie mobile app 2025 — present

A dating app built on the social circles you already trust.

Overview

Circlez is a dating app that filters discovery through the people, communities, and events you already trust. Instead of swiping on strangers ranked by an opaque algorithm, you meet people inside circles you actually belong to — friends-of-friends, members of a community you’re part of, attendees of an event you went to last weekend.

It also has a role most dating apps don’t: matchmakers. People who aren’t looking themselves can create circles and introduce the people inside them.

I started Circlez solo and built the app. Shiri, my co-founder joined to lead marketing and GTM. ~2,000 signups to date.

The problem

Mainstream dating apps optimize the wrong loop. Discovery is ranked by an opaque algorithm, basic filters sit behind a paywall, and every match starts from zero context. The cost shows up off-platform — catfish profiles, no-shows, and the quiet exhaustion of evaluating strangers with no shared signal.

The missing piece isn’t another filter. It’s context. People have always met through mutual friends, shared communities, and the rooms they show up in — and through the friend who likes to play matchmaker. That trust layer is what mainstream apps stripped out to scale, and it’s exactly what makes meeting someone feel less like a coin flip.

What I built

A mobile-first app on React Native and Expo, with Supabase handling auth, data, storage, and realtime. The core primitive is the circle — a group bound by a trust signal: mutual friends, a community membership, a shared event. Profiles surface inside the circles you’re part of, and matching is scoped to that graph.

Two user roles share the same app. Daters appear in discovery and match with other daters. Matchmakers stay out of the discovery feed but can spin up circles, invite members, and broker introductions inside them. The schema and feed logic both branch on role, which means the same realtime infrastructure powers two different product surfaces.

Realtime is load-bearing. Mutual matches, chat, presence, and matchmaker introductions flow through Supabase realtime channels so the feed stays live without polling. RevenueCat handles subscriptions across both stores, PostHog covers product analytics, Sentry catches crashes in production, and EAS owns builds and submissions.

A few constraints shaped the architecture:

  • Solo engineer, so the stack favored velocity over flexibility. Supabase over a hand-rolled backend, Expo over bare React Native, managed services everywhere a managed service was good enough.
  • App Store and Play Store review on a dating app is unforgiving. I built around the guidelines from day one — age gating, moderation, reporting flows — instead of retrofitting after a rejection.

Stack

Frontend
react nativeexpotypescript
Backend
supabase
Tooling
revenuecatposthogsentryeas