Clash of Gyms
Clash of Gyms turns every workout into a battle
Clash of Gyms — Project Overview
About the Project
Clash of Gyms is a gamified fitness application built for iOS and Android that transforms real-world gym activity into a competitive, social experience. Inspired by the strategic progression of Clash of Clans, the platform connects physical effort with digital rewards, making every workout part of a larger battle for dominance.
Instead of focusing purely on individual tracking, the app introduces a shared ecosystem where gyms become battlegrounds, members become players, and workouts translate into measurable competitive impact.
The Core Idea
At the heart of Clash of Gyms is a live, game-like map powered by OpenStreetMap. Every gym in a city is represented as a “base” within this virtual world.
Users join their real gym digitally, form clans, and compete against rival gyms. Activities such as check-ins, workouts, and challenges generate XP, influencing both personal and team progression.
This is not a conventional fitness tracker — it is a real-world strategy game played through physical effort.
System Architecture of Competition
The platform operates on three hierarchical layers:
Users → Clans → Gyms
- Users participate in workouts and challenges
- Clans (3–10 members) collaborate and compete within gyms
- Gyms compete city-wide based on collective performance
Clan Performance Pillars
- Strength — Average weight lifted per member
- Activity — Member participation frequency
- Consistency — Workout streaks (7, 14, 30 days)
- Competition — Clan battle outcomes
Clan Ranks
Initiate → Builder → Grinder → Iron Core → Warrior → Gladiator → Titan → Alpha → Olympus
Gym Ranks
Local → Rising → Elite → Dominant → Legendary
Key Features
Check-In & XP System
Every gym visit contributes XP, forming the backbone of progression, rankings, and competition.
Challenges Engine
Automated challenges across different timeframes:
- Daily — Habit formation
- Weekly — Performance targets
- Monthly — Long-term consistency
Examples:
- “Check in 3 times this week”
- “Run 5 km this week”
- “Perfect attendance streak”
1v1 Battles
Direct player-versus-player competitions where users wager XP and compete over a defined period.
Clan Battles
Weekly structured competitions between gyms, where top-performing clans face off in balanced matchups.
Running Mode
Outdoor activity tracking allows users without a gym to remain competitive via distance-based XP.
Global Contests
Time-limited competitive events (e.g., monthly check-in leaderboards) managed through an internal admin system.
Leaderboards
Multi-level ranking system:
- Individual
- Clan
- Gym
Available both globally and within local regions.
Real-Time Engagement
Push notifications keep users updated on:
- Battle results
- Challenge completions
- Clan activity
Ranking System
Users progress through a tiered ranking structure:
Bronze → Silver → Gold → Platinum → Diamond → Master → Grandmaster → Challenger → Legend
Each rank is visually represented and can be shared socially, reinforcing motivation and identity within the ecosystem.
Gym Owner Platform
Clash of Gyms extends beyond users to include gym owners through a dedicated portal.
Capabilities include:
- Member activity analytics
- Footfall tracking and peak hour insights
- Retention metrics
- Clan performance visibility
This transforms gym communities into measurable, interactive ecosystems rather than passive memberships.
Technology Stack
- Frontend: Flutter (single codebase for iOS & Android)
- Backend: Supabase (authentication, real-time database, storage, notifications)
- Mapping Layer: OpenStreetMap
- State Management: Riverpod
- Routing: go_router
- Database & Logic: PostgreSQL (server-side scoring engine for integrity and tamper resistance)
🚧 Current Status
The project is currently under closed testing for Android and is planned to be released within the next 14 days. If adoption grows, an iOS version will follow (Apple’s $99/year developer fee is a bit steep for now 🙃).
If you’d like to be part of the closed testing group, simply raise a request mentioning that you came from this project blog — I’ll connect with you directly.