DRAFT — Replace placeholder text and metrics with verified detail before publishing
Case Study · Now on the App Stores

Tribe — peer-to-peer fitness, without the gym middleman.

A consumer fitness app — live on the app stores — that lets athletes find training partners, schedule sessions, chat in real time, and split costs. Designed for serious lifters who want a partner, not an app full of distractions.

TypeMobile App · App Stores
StackNext.js · Supabase · Stripe
Timeline[Replace with months]
StatusPublished & in active development
The problem

Athletes already had every fitness app — except the one that mattered.

Anyone who lifts seriously knows the truth: the right training partner doubles your results. They show up on the days you wouldn't, push you on the sets you'd cut short, and turn solo work into a session worth driving to. The problem is finding them. Gyms are full of strangers; social media is full of influencers. There was no purpose-built tool to match training partners by goal, schedule, location, and skill level.

Existing fitness apps optimize for the wrong things — calorie counting, workout logging, social feeds. None of them solved the actual social-coordination problem at the heart of training.

The approach

Build the matching engine first; the app comes after.

The temptation with a consumer fitness product is to start with the visuals — onboarding flows, beautiful timelines, gamification. We started with the part that had to work first: matching. If two users with compatible goals, schedules, and locations couldn't find each other within seconds of opening the app, nothing else mattered.

The architecture began with a Postgres schema that modeled training preferences as a multi-dimensional profile (goals, lift maxes, schedule windows, geographic radius, experience level), and a search layer that returned ranked matches in real time. Once that was solid, the rest of the app — chat, scheduling, payments — was built on top of a foundation that was already fast.

Fig. 01 — Tribe in production
The stack

Modern, opinionated, boring in all the right ways.

Every piece of this stack is something I've shipped before. Tribe wasn't the place to experiment.

Next.js 14
TypeScript
Supabase
PostgreSQL
Stripe Connect
Resend
Tailwind
Vercel
The outcome

A platform built to grow with the community.

The current build supports user accounts, profile-based matching, in-app chat, scheduling, and Stripe Connect for cost-sharing between paired users. The architecture is built to extend — group sessions, coach marketplace, gym partnerships — without touching the matching engine that the rest of the product sits on.

  • Live on the app stores — full review process completed and shipped
  • Real-time match results in under 200ms median, even at projected scale
  • End-to-end Stripe Connect for split-payment training sessions
  • Full audit log for every account action — supports moderation and dispute resolution
[Replace with founder quote — what was the moment Vencer earned the trust to ship this?]— [Founder name], Tribe

Visit the live site →

Have a build like this?

Let's talk.

If you're scoping a project in this category, start the conversation here.

Start a Project