Marketplaces · Fitness Marketplace MVP
Gymfit
Multi-sided fitness marketplace platform.
The brief
Build "Gym Key" — a fitness marketplace mobile app and supporting web platform connecting end-users with gyms, trainers, and fitness services — from zero to App Store/Play Store launch within a 12-month dedicated team engagement, covering product design, frontend, backend, DevOps, QA, and business analysis.
What we built
A full-stack fitness marketplace branded "Zortime" (originally Gymfit) connecting consumers with gyms, trainers, and fitness studios. Deliverables include:
- a Flutter mobile app published on App Store and Google Play with geo-aware gym discovery, QR check-in, tiered membership plans (Silver/Gold/Platinum), trainer browsing, Stripe payments, and Google/Apple SSO
- a multi-role web admin SPA with separate dashboards for super-admin, gym owners, and agents covering onboarding approvals, revenue management, analytics charts, and Excel exports
- a NestJS backend with microservices for auth, booking, support-chat, and trainer onboarding
- a combined partner registration portal serving gyms, trainers, and fitness studios via a single URL with role-conditional stepper forms
- a Stripe Connect payment infrastructure supporting plan purchases, upgrades with proration, coupons, auto-renewal, and gym-owner payouts
- production-grade AWS EKS infrastructure across dev/pre-prod/prod with Jenkins CI/CD, HA RDS, OpenVPN, SNS notifications, and HTTPS; and
- a public marketing website for the Zorfit brand.
Flutter app published on both Apple App Store and Google Play Store; multi-role admin/gym-owner/agent web panel on production Kubernetes cluster with HTTPS subdomains; NestJS backend microservices (main API, booking, support-chat, trainer) deployed on AWS EKS prod cluster with HA RDS; Stripe Connect payment flow with plan tiers, proration, and coupon engine live; QR check-in system in production; marketing website (Zorfit brand) deployed; combined partner onboarding portal in final stages of dev/pre-prod.
Delivery timeline
How it was built, phase by phase.
8 workstreams across 25 weeks of operated delivery.
- buildWeek 1–6 (Jan 6 – Feb 11 2025)
Backend Foundation & Auth System
Node.js/NestJS backend setup including database migrations, multi-role authentication (user, trainer, gym owner, agent, super-admin), auth guards, JWT, Google/Apple social login, and OTP verification flows.
Unified auth system serving 4+ distinct user roles with social login, OTP verification, and alphanumeric password enforcement deployed to prod
Node.jsNestJSPostgreSQLJWTAWS SNSStripe - buildWeek 1–22 (Dec 24 2024 – May 30 2025)
Flutter Mobile Application (Consumer-Facing)
Cross-platform Flutter app for end-users covering gym discovery with geo-location and Google Maps, plan purchase, check-in/QR flow, trainer browsing, profile management, coupon redemption, deep linking.
Published on both App Store and Google Play with geo-aware gym discovery, QR check-in, tiered plan purchase, and trainer browsing
FlutterDartGoogle Maps SDKStripe SDKGoogle PayFirebase - buildWeek 2–13 (Jan 17 – Apr 3 2025)
Gym Onboarding & Marketplace Listings
Multi-step gym registration flow covering basic info, features/amenities, operating hours, legal & compliance, gym icon uploads, geo-location, and admin approval/rejection workflows with edit request flows.
Full gym partner onboarding live in prod with prepaid/postpaid billing, admin approval flow, and Stripe Connect payment account linking
NestJSPostgreSQLTypeORMAWS S3Stripe ConnectReact/Next.js - buildWeek 4–22 (Jan 27 – May 30 2025)
Admin & Agent Web Dashboard
React-based multi-role web panel for super-admin, gym-owner, and agents covering gym management, user/subscriber management, analytics, revenue management, support tickets, export functionality.
Multi-role SPA deployed with analytics dashboards, revenue management, Excel exports, and role-based access control serving admin, gym owners.
ReactNext.jsNestJSRecharts/Chart.jsExcel exportAWS S3 - deployWeek 5–17 (Feb 3 – Apr 18 2025)
AWS Cloud Infrastructure & CI/CD Pipelines
Full cloud setup on AWS: EKS clusters (dev/pre-prod/prod), RDS PostgreSQL with HA, ALB ingress controllers, ECR artifact storage, Jenkins CI/CD pipelines, OpenVPN, Route53 DNS, S3, SNS for notifications.
Production-grade Kubernetes infrastructure across 3 environments with full CI/CD automation, HTTPS, HA database, and VPN-secured prod access
AWS EKSAWS RDSAWS S3AWS ECRAWS ALBAWS Route53 - buildWeek 6–14 (Feb 6 – Apr 7 2025)
Slot Booking, Check-In & QR Code System
End-to-end gym visit booking: slot schema, slot booking APIs, QR code generation for check-in, check-out logic, date-based filters, missed slot management, and category-restricted check-in tied to membership plan.
Booking microservice deployed with QR check-in, plan-category access gates, and date-based slot filters running in prod
NestJSPostgreSQLQR Code generationFlutterStripe - integrateWeek 7–18 (Feb 11 – May 8 2025)
Membership Plans, Payments & Stripe Integration
Tiered membership plans (Silver/Gold/Platinum), Stripe payment gateway integration for plan purchase and upgrades, prorated upgrade calculations, coupon/discount engine, auto-renewal.
Full payment lifecycle live: plan purchase, upgrade with proration, coupon discounts, auto-renew.
StripeStripe ConnectNestJSFlutterPostgreSQLGoogle Pay - buildWeek 15–22 (Apr 10 – May 30 2025)
Trainer Onboarding Module
Full trainer registration and management system: email pre-check, multi-step stepper onboarding, experience/services/timing tabs, admin approval/rejection workflow, trainer profiles in mobile app.
Trainer onboarding microservice live with multi-step registration, admin approval workflow, and consumer-facing trainer discovery in mobile app
NestJSFlutterReactPostgreSQLStripeAWS EKS
More case studies
Related work
09 · Run a function
Stop renting hours. Start running functions.
Pick the function you want off your plate. We'll map the brain and name the outcome we'd commit to — before you do.
