← All projects

Full-stack product · web + mobile

Circle

Social platform for coordinating college nightlife — a web app and a mobile app sharing one backend.

Year
2025 — 2026
Status
Built — pre-launch
Stack
Next.js · TypeScript · Supabase · Expo / React Native · Tailwind CSS

Deciding where a group is actually going tonight is a mess of group chats, half-answers, and screenshots. Circle turns it into one screen: see what your circles are planning, commit to a plan, and let the plan settle itself.

One backend, two clients

The web app is Next.js with TypeScript and Tailwind; the mobile app is Expo / React Native. Both sit on a single Supabase backend — Postgres for data, Supabase Auth for identity — so a plan made on a laptop is the same plan on a phone. Keeping one source of truth made the two clients a rendering problem instead of a synchronization problem.

Rebuilding the mobile app

The first Expo project drifted into dependency conflicts that no amount of resolution overrides could untangle. Instead of fighting it, I rebuilt the app clean at a fresh path with a minimal, locked dependency set and moved the code over piece by piece. It cost a day and taught me more about dependency discipline than any tutorial: the lockfile is part of the product.

Web
Next.js · TypeScript · Tailwind CSS
Mobile
Expo / React Native
Backend
Supabase — Postgres, Auth
Status
Built end to end · launch planned campus-first