For Developers

100% Open Source

Fitness360 is completely free and open source. Self-host on your own infrastructure, customize everything, extend with your own features, and never pay licensing fees. Ever.

Apache 2.0
TypeScript
PostgreSQL

Built with love at GymKhana Fitness 360™

Type-Safe APIs

Full TypeScript with Zod validation

Active Development

Weekly updates, quick bug fixes

Self-Contained

No vendor lock-in, own your data

Multi-Tenant Ready

Built-in multi-gym support

Tech Stack

Next.js 14+
App Router, Server Components, API Routes
Framework
TypeScript
Strict mode, full type coverage
Language
Prisma ORM
Type-safe database queries, migrations
Database
PostgreSQL
Reliable, scalable relational database
Database
Supabase
Auth, RLS, real-time subscriptions
BaaS
shadcn/ui
Accessible, customizable components
UI
Tailwind CSS 4
Utility-first styling
Styling
NextAuth.js
OAuth, credentials, session management
Auth

Core Components

MemberService
CRUD, search, filters
src/lib/services/member.service.ts
PaymentService
Transactions, receipts
src/lib/services/payment.service.ts
AttendanceService
QR check-in/out
src/lib/services/attendance.service.ts
WhatsAppService
Message templates, bulk send
src/lib/services/whatsapp.service.ts
GymScope
Multi-tenant context
src/lib/gym-scope.ts
AuthProvider
Session, JWT, RBAC
src/lib/auth.ts
RateLimiter
API protection
src/lib/middleware/rate-limit.ts
ApiHandler
Standardized responses
src/lib/api-handler.ts

API Reference

Explore our RESTful API with code examples

Full API Docs

Members API

Full CRUD operations on member data

GET/api/v1/membersList all members
POST/api/v1/membersCreate a member
GET/api/v1/members/:idGet member by ID
PUT/api/v1/members/:idUpdate a member
DELETE/api/v1/members/:idDelete a member

Example

// Fetch all members with pagination
const response = await fetch('/api/v1/members?page=1&limit=20', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'X-Gym-ID': 'gym_abc123'
  }
});

const { data, meta } = await response.json();
// data: Member[], meta: { total, page, limit }

Webhook Events

Subscribe to real-time events. All webhooks include HMAC signatures for verification.

member.createdNew member registration
member.updatedMember profile changed
payment.completedSuccessful payment
payment.failedPayment failure
membership.expiring7 days before expiry
membership.expiredMembership ended
attendance.checkinMember checked in
attendance.checkoutMember checked out

Marketplace

Install flagship apps from the dashboard — classes, Razorpay, member portal, WhatsApp Business, Hindi & Bengali, and more.

Class BookingAvailable
Scheduling
RazorpayAvailable
India payments
Member AppAvailable
PWA
WhatsApp WABABeta
Messaging
Hindi & BengaliAvailable
Localization
Integration HubBeta
Ecosystem
Open Marketplace

Software Integrations

Install the Integration Hub marketplace app to connect accounting, access control, and fitness trackers.

Calendar

Google Calendar

Sync class schedules

Communication

Slack

Team notifications

Automation

Zapier

1000+ app automations

Finance

QuickBooks

Accounting sync

Marketing

Mailchimp

Email campaigns

Communication

Twilio

SMS notifications

Reports

Google Sheets

Data exports

Communication

WhatsApp Business

Member messaging

Migration Support

Switching from another gym software? We have automated migration tools.

Supported Platforms

MindbodyReady
ClubReadyReady
GlofoxReady
WellnessLivingReady
Jefit ProReady
GymMasterReady

What Gets Migrated

Member profiles & history
Payment records
Membership plans
Attendance logs
Class schedules
Trainer data

CLI Migration Tool

npx fitness360-migrate --from=mindbody --file=export.csv
Built with love at GymKhana Fitness 360™

100% Open Source • Apache 2.0 • Free Forever