← Back to Portfolio

Flagship Project

PeerFit v2

Find people. Play sports. Stay active.

Post activities, join local sessions, build a sports profile, and connect with people who play the same games as you.

No group chatsNo manual scheduling
Open sourceFull auth flowNight modeProduction deployed
Next.js 15
TypeScript
Tailwind 4
Supabase
Radix UI
Zod
next-themes
Recharts

PeerFit is a social sports platform built around one problem: finding other people to play with. Not a booking system, not a team-management tool. A place to discover nearby sessions and players for the sports you actually play, without the friction of group chats and manual scheduling.

The product covers the full activity journey. A scrollable feed of local sessions can be filtered by sport, skill level, and date. Each listing supports likes, saves, comments, and join requests, with organisers able to approve or decline members for private sessions. An activities calendar built with react-day-picker gives users a persistent view of upcoming events across the platform.

Auth is handled end to end by Supabase: email and SMS verification, forgot-password and reset-password flows, and persistent sessions through the SSR client. All forms use React Hook Form with Zod validation. Profile pages support avatar uploads, a badge achievement system, player stats, and reviews from other users. Light and dark themes are managed by next-themes and persist across sessions.

Built with Next.js 15 and TypeScript, deployed to peerfit.co.uk via Vercel with automatic production deployments on every push.

What it does

Key features

Activity Feed

Scrollable sessions filtered by sport, skill, and date. Like, save, comment, and request to join. Organisers approve or decline members.

Full Auth Stack

Email and SMS verification, forgot and reset password, OAuth callbacks, and SSR session persistence through Supabase.

Player Profiles

Stats, badge achievements, peer reviews, avatar uploads, and a full friend request system with request management.

Calendar and Themes

Persistent activities calendar via react-day-picker. Light and dark mode with next-themes, preserved across sessions.

Product Walk-through

Product Screens

Browse every part of the platform: homepage, feed, auth flows, profiles, and settings.

PeerFit v2 - landing
1 / 20

Landing Page

Why it was rebuilt

From PHP prototype to production product

PeerFit v2 started where v1 ran out of road. The original was a PHP prototype with a MySQL backend and no deployment infrastructure, useful for proving the concept but not for shipping it to real users. The rewrite was not incremental; it was a full rebuild around a different set of assumptions.

The first call was choosing Supabase over a custom backend. Auth, file storage, row-level security, and real-time subscriptions in one hosted service removed a category of infrastructure work that would have delayed everything else. The trade-off was worth it: more time on product, less time managing a server.

Using Radix UI primitives alongside Tailwind gave a consistent, accessible component base across dialogs, dropdowns, tabs, toasts, and overlays without hand-rolling keyboard behaviour or ARIA attributes for each one. That mattered across a product with 15 distinct routes. Toast notifications are handled by Sonner, charts by Recharts, and the calendar by react-day-picker, each chosen to stay out of the way of the product itself.

Before / After

From static listings to a live feed

v1 showed a static grid of activities with no interaction. v2 replaced it with a social feed: filters, likes, saves, comments, night mode, and live activity states.

PeerFit v1 feedv1
PeerFit v2 feedv2

Before / After

From a basic form to a complete auth flow

v1 had a single signup page with no verification. v2 ships with email confirmation, SMS verification, forgot-password, reset-password, and OAuth callback handling through Supabase SSR.

PeerFit v1 signupv1
PeerFit v2 signupv2

New in v2

Profiles, achievements, and settings

v1 had no profile system. v2 adds player stats, badge achievements, reviews, friend requests, avatar uploads, and a settings page with theme switching and notification controls.

PeerFit v2 profile pageProfile
PeerFit v2 settings pageSettings
Live on peerfit.co.uk

See it in action

The full app is live, deployed on Vercel, and available to use right now.