Bodyweight home workouts — build your own routines, train anywhere. No equipment, no account, offline-first.
- Build your own workout by hand: pick a zone, add bodyweight exercises from a searchable library, set sets/reps/rest.
- Auto-fill a routine in one tap from a zone, time budget and level — then edit anything.
- Reuse saved workouts: load a past routine back into the builder and tweak it.
- Train with a guided session player — timer, rest countdown, exercise demo, and on-screen wake-lock so the screen never sleeps mid-set.
- Log the reps you actually did, then track progress: current streak, totals, and a per-exercise rep-evolution chart.
- Optional AI assistant (Gemini): bring your own API key to swap an exercise or make a workout easier/harder. Hidden entirely without a key.
- Available in 6 languages: English, Spanish, Basque, Galician, Catalan and Valencian (auto-detected, switchable in Settings).
- Works offline after first load. Install it as a PWA on your phone. Exercise demo images are the exception: each free-exercise-db image is cached the first time it is shown, and the wger ones always need the network.
- Local-only data, stored on your device. No signup, no email, no backend.
- Open Ekin on your phone.
- Name your workout, pick a zone, and add a few exercises.
- Tap Start and train.
Open the site in your browser and choose Add to Home Screen (iOS Safari) or Install (Chrome/Android). It runs full-screen and works offline.
- Svelte 5 + Vite + TypeScript
- PWA (service worker + manifest via
vite-plugin-pwa), self-hosted fonts, offline-first - IndexedDB for local persistence
svelte-i18nfor localization; optional direct-to-Gemini AI assist (browser-side, user's own key)
npm install
npm run dev # local dev server
npm run check # format:check + lint + type:check + test:run
npm run build # production build to dist/npm run sync-exercises refreshes the free-exercise-db catalog and npm run import-wger the wger one; npm run icons regenerates the PWA icons from public/favicon.svg.
The code is MIT. The exercise data is not all under the same terms:
- free-exercise-db — the Unlicense (public domain).
- wger — CC-BY-SA, kept in its own file and credited per exercise, both in the app's credits screen and on each exercise. Adaptations we publish, such as our Basque, Galician, Catalan and Valencian translations of that text, carry the same licence.
See NOTICE.md for the details.