each minute on the minute.
a minimalist emom workout timer. runs from your terminal, opens in your browser.
git clone https://github.com/hpanwar09/emom.git
cd emom
bin/setupthis installs dependencies and adds the emom command to your system.
emom # start the timer (opens browser)
emom test # run specs
emom lint # run rubocop- pick your exercise and set reps per minute + number of rounds
- hit start — 3-2-1 countdown with audio beeps
- timer runs — big countdown, round counter, rep tally
- stop or let it finish — summary card you can download as an image
live-reload is built in — save any file in views/, public/, or lib/ and the browser refreshes automatically.
emom # start server + open browser- ruby + sinatra (backend)
- slim templates + stimulus.js (frontend)
- inter (typography)
- web audio api (beeps, no audio files)
- web worker (accurate timer, immune to tab throttling)
- sqlite (local data)
- tailwind cdn (styling)
- html2canvas (share card generation)
- ruby 3.1+
- bundler
bundle exec rspec spec/
bundle exec rubocop lib/ spec/