Inspiration

I kept stalling at the same step every time I wanted to work out at home: choosing what to do. Every fitness app shows a catalog and makes you decide, and deciding is exactly what I didn't have the energy for. I wanted an app that decides for you — you bring how you feel and how much time you have, and it hands you one session that fits.

What it does

20-Minute Coach asks four quick questions — mood, energy, minutes, and equipment — and recommends exactly one session from a small library of twelve, all led by women coaches. It shows the session's moves, duration, and intensity, then runs a countdown timer with pause and reset. There's no account, no backend, and no scrolling through options: one answer, then you move.

How I built it

I followed the Devpost Learn Skill Pack: plan before building. I wrote a scope, a product requirements doc, and a technical spec first, then built in small slices — pickers and recommendation first, then the timer — verifying each slice as I went. The app is plain HTML, CSS, and vanilla JavaScript with no dependencies, so it runs by opening one page. The matching is rule-based: it filters sessions to your minutes and equipment, then scores the rest on mood fit and intensity, so the recommendation is instant and always works offline.

Challenges

The hardest part was making the promise hold: every combination of minutes and equipment had to return a real session, so the library was designed to cover all nine combinations and every mood. Recording the demo was its own puzzle — the browser blocked local navigation, so I ran the app straight from its files and recorded the screen while driving two full journeys through it.

What I learned

Planning first made the build almost boring in the best way: once the scope, PRD, and spec were written, the code followed them slice by slice, and each slice was verified before the next one started. I also learned that a simple rule-based approach can be the right call — no API keys, no network, nothing that can fail live in a demo.

Built With

Share this project:

Updates

Submission history