I had the idea for this app in mid 2021 and started developing right away.
Most fitness app’s are behind a pay wall or use a subscription model, gymcadia is intended as a free and community driven alternative.
Users can create, perform, share and track workouts, without the need of a monthly subscription.
Frontend
Nextjs/React application using tailwindcss for styling and zustand.js for state management.
Backend
The backend’s rest api is written in python and uses the falcon asgi webserver for fast request handling.
Database
Workouts, users, follower-following relations are stored in a PostgreSQL database.
Caching
The deserialization of many workouts was slower then expected so i added a redis for caching.
This way, requesting many workouts is much faster.
Only downside is that cache invalidation is a difficulty task but it works great so far.
Continuous Delivery
Utilizing ansible playbooks to deploy the test and productive environments.