← All templates

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

Open in Molecule

What is inside

  • auth
  • search
  • notifications
  • charts
  • calendar
  • subscriptions

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 (6 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
  • 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

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY Meilisearch API key
  • VAPID_PUBLIC_KEY VAPID public key for push notifications
  • VAPID_PRIVATE_KEY VAPID 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