A private membership community, live on web, iOS, and Android.
Invite-only · Web, iOS, Android

The Challenge
Membership organizations run on borrowed tools. Training lives in a shared drive, conversations live in group chats nobody can search, the calendar lives somewhere else again, and none of it knows who someone is. That last part is the real constraint: in an organization with structure, what a member should see depends entirely on where they sit in it, and a folder of links cannot express that.
Our Approach
Access came first. Membership is invite-only with sponsor approval, and every permission is enforced at the query layer rather than by hiding buttons, so a member cannot reach content above their level by guessing a URL. On top of that foundation we built the pieces that actually get used daily: searchable messaging, a transcribed media library, a shared calendar with recurring events, and business tooling. One schema serves the web app and both native apps, so a permission rule is written once and holds everywhere.
What We Built
- Invite-only onboarding with sponsor approval and role-scoped access throughout
- Next.js web app and Expo iOS/Android apps sharing one schema and one API
- Realtime messaging, push notifications, shared calendar, and a searchable transcribed media library
Built With
- Next.js
- React Native / Expo
- Neon Postgres
- Drizzle ORM
- Ably realtime
- Stripe
- Sentry
- Vercel
