Zeustudio

CASE STUDY · WEB APP · SAAS · FITNESS COACHING

Vestra Pro

One place for a fitness coach to run their entire business.

A complete coaching platform for personal trainers: client management, workout and meal plans, progress tracking, messaging, and Stripe payments in one place.

  • React 18 with TypeScript and Vite
  • Tailwind CSS and shadcn/ui (Radix)
  • TanStack Query, Framer Motion, Recharts, dnd-kit
  • Node.js and Express backend
  • PostgreSQL on Neon (serverless)
  • Drizzle ORM
  • Stripe Checkout, Connect, and Webhooks
  • SendGrid for transactional email
  • Google Cloud Storage and Cloudflare R2 for files
  • Railway hosting with Docker and GitHub auto-deploy
  • Sentry for error tracking
Visit the live site

The brief

Coaches were juggling spreadsheets, WhatsApp, separate payment links, and a different app for training plans. They wanted one platform that handled everything, looked professional in front of clients, and did not require them to learn a complicated tool. The build had to feel like real software, not a generic SaaS template, and the client portal had to be something clients actually used day to day.

What we did

  • Coach dashboard with at-a-glance stats (active clients, revenue, completion rates, and alerts for clients who need attention)
  • Client list, lead intake forms, and a branded public page each coach can share to bring in new clients
  • Workout builder with a 1,300-plus exercise library (each with a demo GIF and target muscles), drag-and-drop blocks, supersets, and ready-made templates
  • Meal plan generator with a 700-plus recipe library, per-client macro targets, automatic shopping list, and one-click swaps for coach or client
  • Client portal with a daily Today view, weekly check-ins, weight and photo progress logging, and direct messaging with the coach
  • Stripe payments end to end: coach subscriptions, client billing via Stripe Connect, payment links, and webhook-driven email confirmations
  • Branded email notifications via SendGrid (client invites, payment confirmations, password resets, payment-failed reminders)
  • In-app messaging with unread badges, sorted by most recent, with email fallback if a message goes unread

The numbers

1,300+
Exercises in the library, each with a demo GIF
700+
Recipes with per-client macros and an auto shopping list
Takes payment
Charges clients in GBP via Stripe from day one

Gallery

/work/vestra-pro/01.jpg
Vestra Pro gallery 1
/work/vestra-pro/02.jpg
Vestra Pro gallery 2
/work/vestra-pro/03.jpg
Vestra Pro gallery 3
/work/vestra-pro/04.jpg
Vestra Pro gallery 4

What we said no to

  • Giving clients too much control. Clients can only swap today's meal inside a tight calorie and macro range. Stops them undoing the coach's plan.
  • Third-party AI nutrition integrations. An earlier Spoonacular integration was removed so the recipe library, macros, and prices stay under control and stay accurate.
  • A microservice stack. One full-stack app in one repo is cheaper to host, faster to ship, and easier for one team to maintain.
  • SaaS jargon in the UI. Prices, currency, and copy are GBP and plain British English throughout.

Stack

  • React 18 with TypeScript and Vite
  • Tailwind CSS and shadcn/ui (Radix)
  • TanStack Query, Framer Motion, Recharts, dnd-kit
  • Node.js and Express backend
  • PostgreSQL on Neon (serverless)
  • Drizzle ORM
  • Stripe Checkout, Connect, and Webhooks
  • SendGrid for transactional email
  • Google Cloud Storage and Cloudflare R2 for files
  • Railway hosting with Docker and GitHub auto-deploy
  • Sentry for error tracking
NEXT PROJECTNorth

Want something like this?

30 minutes, no pitch deck.

Get a quote