About the project
Inspiration
GymFlow was born from a simple observation: most fitness businesses still operate with fragmented tools, spreadsheets, WhatsApp messages, and generic software that doesn't truly adapt to their workflow. We wanted to create an operating system for the fitness industry — a platform that could centralize memberships, classes, bookings, attendance, payments, and business insights into one seamless experience.
Our inspiration came from seeing how gyms, pilates studios, personal trainers, and boutique fitness brands struggle to scale operationally while still wanting to preserve their unique identity and community. We wanted to build something that felt productized, but customizable enough for every business to feel like it was built specifically for them.
What it does
GymFlow is a multi-tenant SaaS platform designed for gyms, fitness studios, and independent trainers.
The platform allows businesses to:
- Manage members and memberships
- Schedule classes and bookings
- Handle attendance and check-ins
- Process payments and subscriptions
- Manage multiple roles (owners, trainers, students)
- Analyze business metrics through operational dashboards
- Support multiple tenants with isolated branding and configurations
It also includes a cross-tenant marketplace where users can discover fitness businesses, browse classes, and interact with different gyms through a unified experience.
How we built it
We built GymFlow using a modern full-stack architecture focused on scalability, developer experience, and long-term maintainability.
The frontend was developed with Next.js 15, React 19, TypeScript, and Tailwind CSS v4, using App Router and Server Components for performance and clean data boundaries.
For the backend and database layer, we used PostgreSQL with Drizzle ORM, implementing a strict multi-tenant architecture with tenant-scoped sessions and permissions.
Authentication is powered by Better-Auth, while Stripe was integrated through a payment adapter architecture that allows future support for MercadoPago and other gateways.
We also focused heavily on engineering quality and developer tooling:
- Vitest and Playwright for testing
- Biome for linting and formatting
- GitHub Actions for CI
- Docker-based local environments
- Structured logging and observability with Pino and Sentry
The project was designed using domain-driven modularization, allowing each business domain — bookings, attendance, payments, notifications, dashboarding — to evolve independently.
Challenges we ran into
One of the biggest challenges was designing a robust multi-tenant architecture without sacrificing developer experience or product flexibility.
We had to carefully isolate tenant data, permissions, branding, and session management while still allowing users to interact across multiple businesses with a single account.
Another major challenge was balancing performance with modern React server patterns. Since the platform mixes dashboards, realtime-like operational workflows, and dynamic tenant-based routing, we spent significant effort designing scalable data boundaries and serialization strategies between server and client components.
We also faced challenges around product abstraction: creating a platform generic enough for many fitness businesses, while still feeling deeply customized for each tenant.
Accomplishments that we're proud of
We're especially proud of:
- Building a scalable multi-tenant SaaS architecture from the ground up
- Creating a polished premium UI experience with animations and modern UX patterns
- Designing a modular domain architecture that scales cleanly
- Implementing strict engineering conventions and architectural discipline
- Building a developer workflow with autonomous documentation, ADRs, testing, and CI pipelines
- Creating a platform that feels equally useful for small studios and larger fitness operations
What we learned
Throughout the project, we learned how important architectural discipline becomes in large-scale SaaS applications.
We gained deep experience working with:
- Multi-tenant system design
- Server-first React architectures
- Boundary serialization and DTO-driven APIs
- Scalable frontend state management
- Product modularization
- Long-term maintainability practices
We also learned that developer experience has a direct impact on product quality. Investing early in tooling, documentation, testing, and conventions saved us enormous complexity later.
What's next for GymFlow
Our next goals for GymFlow include:
- Mobile apps for trainers and students
- MercadoPago integration for LATAM markets
- Advanced analytics and business intelligence dashboards
- Automated reminders and notification systems
- AI-assisted operational insights for gym owners
- Wearable and fitness device integrations
- Expanded marketplace and discovery features
- Internationalization and regional scaling across LATAM
Ultimately, we want GymFlow to become the default operating system for fitness businesses in Latin America.
Built With
- betterauth
- biome
- docker
- drizzle
- framermotion
- githubactions
- next
- node.js
- pino
- playwright
- postgresql
- radixui
- react
- stripe
- tailwind
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.