Skip to content

iamedobor/fitdad

FitDad

A structured system for losing fat, building strength, and staying consistent.

License: MIT React Vite PWA PRs Welcome Stars Live Demo


Live Demo · Report a Bug · Request a Feature


Why I built this

I struggled with my weight for years. I tried the apps, the meal plans, the subscriptions. Most of them were too complicated, too generic, or hiding the useful parts behind a paywall. I wanted something structured, science-backed, no noise, no upsells. Something that actually worked for my life.

So I built it myself. And then I open-sourced it so anyone can use it, fork it, and make it better.

FitDad combines intermittent fasting tracking, structured meal planning, progressive resistance training, and daily habit logging into one mobile-first app. It runs entirely in the browser. Your data never leaves your device.


Features

Feature Description
Fasting tracker Real-time countdown with circular SVG ring. Fully customisable window with presets (16:8, 14:10, 18:6, 20:4) or your own hours.
Meal planning 7-day meal plan with full macros. Edit any meal to match your own preferences. Sunday prep guide and interactive shopping list.
Workout programming Upper/lower split, 4 sessions per week. Home gym alternatives for every exercise. Full edit support: add, remove, or swap exercises.
BMI calculator Computed from your profile. Colour-coded category (underweight / healthy / overweight / obese).
TDEE + calorie target Mifflin-St Jeor formula with your activity multiplier. Choose gradual, moderate, or aggressive deficit. Weeks-to-goal countdown.
Daily calorie tracking Ticking a meal on the Home tab adds its kcal to a live progress bar against your daily target.
Habit log One-tap checklist for fasting window, each meal, workout, and water. Streak counter.
Progress tracking Weight and waist log with SVG trend chart. Mood, energy, and sleep journal. Progress photos stored locally.
Onboarding 6-step setup wizard: name, stats, activity level, diet type, fasting window. App personalises from day one.
PWA Install from mobile browser. Works offline. No app store needed.
Data ownership Everything in localStorage. Export a full JSON backup and restore it on any device.

Tech stack

React Vite JavaScript CSS3 PWA

  • React 18 - functional components, hooks, context API
  • Vite 5 - fast dev server, optimised production builds
  • Lucide React - clean, consistent icon set
  • vite-plugin-pwa - service worker, offline support, install prompt
  • localStorage - all data stored client-side, zero backend

Getting started

Prerequisites

  • Node.js 18 or higher
  • npm 9 or higher

Local development

git clone https://github.com/iamedobor/fitdad.git
cd fitdad
npm install
npm run dev

Open http://localhost:5173/fitdad/ in your browser.

Production build

npm run build
npm run preview

Deployment

GitHub Pages (recommended)

The repo ships with a GitHub Actions workflow at .github/workflows/deploy.yml. Every push to main automatically builds and deploys.

  1. Fork this repository
  2. Go to your fork's Settings > Pages
  3. Set source to GitHub Actions
  4. Push any change to main and the action handles the rest

Your app will be live at https://your-username.github.io/fitdad/.

Vercel or Netlify

Connect your fork and set:

  • Build command: npm run build
  • Output directory: dist

Zero additional configuration required.


Project structure

fitdad/
├── src/
│   ├── components/
│   │   ├── layout/       # Header, BottomNav
│   │   ├── onboarding/   # 6-step setup wizard
│   │   ├── settings/     # SettingsModal, MealEditor, WorkoutEditor
│   │   ├── tabs/         # Home, Fast, Meals, Train, Log, Track
│   │   ├── track/        # ProgressView, JournalView, PhotosView
│   │   └── ui/           # Card, SubNav, Toggle, ProgressBar
│   ├── context/          # AppContext - global state
│   ├── data/             # Default meals, workouts, shopping, prep steps
│   ├── hooks/            # useTick, useLocalStorage
│   └── utils/            # storage, fasting, tdee, image, exportImport, notifications
├── public/
│   └── icons/            # PWA app icons
├── .github/
│   ├── workflows/        # GitHub Pages deploy
│   └── ISSUE_TEMPLATE/   # Bug report, feature request
├── index.html
└── vite.config.js

Roadmap

  • Fasting timer with customisable window
  • 7-day meal plan with macro breakdown
  • Upper/lower workout split with home alternatives
  • Custom meal and exercise editor
  • BMI calculator
  • TDEE and daily calorie target
  • Data export and import
  • PWA - install on mobile, works offline
  • Keto meal plan template
  • Mediterranean meal plan template
  • Barcode food scanner
  • Step counter integration
  • Dark/light theme toggle
  • Translations (i18n)
  • 5:2 and OMAD fasting protocols

Contributing

Contributions are welcome and genuinely appreciated. Read CONTRIBUTING.md first.

The highest-impact areas right now:

  • New meal plan templates - keto, Mediterranean, balanced (#1, #2)
  • Accessibility improvements - keyboard nav, focus management, ARIA (#4)
  • Light/dark theme toggle - CSS variable swap (#5)

See all open issues →


License

MIT. Use it, fork it, build on it. See LICENSE.


If FitDad helped you or someone you know, a star means a lot. It helps more people find it.


Built by

Osasere Edobor

Website LinkedIn Twitter Instagram Facebook Email

Open to collabs, contributors, and ideas. Reach out.

About

Open-source fitness and nutrition tracker for sustainable fat loss. Intermittent fasting, structured meal plans, progressive workout programming, and habit tracking.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors