Workout Tracker
Health & Fitness · React + Node (Express) · 18 @molecule/* packages
Strong-like workout tracker with exercises, sets, reps, weight logging, and progress charts — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (16)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - ActiveWorkout
/workout/active(signed in) - Exercises
/exercises(signed in) - ExerciseDetail
/exercises/:id(signed in) - History
/history(signed in) - Templates
/templates(signed in) - Settings
/settings(signed in) - TemplateEditor
/templates/:id/edit(signed in) - WorkoutDetail
/history/:id(signed in) - BodyMeasurements
/measurements(signed in) - PersonalRecords
/records(signed in)
Data model (9 tables)
- exercises — id, user_id, slug, name, description, instructions, muscle_group, muscle_groups, …
- routines — id, user_id, name, description, target_muscle_groups, estimated_duration_minutes, day_count, is_template, …
- routine_exercises — id, routine_id, exercise_id, day_index, order_index, sort_order, target_sets, target_reps, …
- workouts — id, user_id, routine_id, day_index, name, notes, started_at, completed_at, …
- workout_sets — id, workout_id, user_id, exercise_id, set_index, set_number, order_index, weight, …
- personal_records — id, user_id, exercise_id, workout_id, kind, value, achieved_at, created_at
- body_measurements — id, user_id, recorded_at, weight_kg, body_fat_pct, chest_cm, waist_cm, hips_cm, …
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
API (7 handlers)
- exercises
api/src/handlers/exercises.ts - measurements
api/src/handlers/measurements.ts - progress
api/src/handlers/progress.ts - records
api/src/handlers/records.ts - routines
api/src/handlers/routines.ts - settings
api/src/handlers/settings.ts - workouts
api/src/handlers/workouts.ts
Subscription tiers
free / pro / team — gated by: maxExercises, maxProgress, maxRoutines, maxWorkouts, advancedFeatures, canExport, retentionDays
Built from 18 @molecule/* packages
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-import-export-csv@molecule/api-payments-stripe@molecule/api-push-notifications-web-push@molecule/api-reporting-database@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/app-billing-react@molecule/app-calendar@molecule/app-charts@molecule/app-command-palette@molecule/app-data-table@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringMEILISEARCH_API_KEYMeilisearch API keyVAPID_PUBLIC_KEYVAPID public key for push notificationsVAPID_PRIVATE_KEYVAPID private key for push notifications
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing