<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kaivalya Trainer</title><link>https://kaivalya.eu/projects/trainer/en/</link><description>Recent content on Kaivalya Trainer</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 01 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://kaivalya.eu/projects/trainer/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting Started</title><link>https://kaivalya.eu/projects/trainer/en/developers/getting-started/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/developers/getting-started/</guid><description>What You&amp;rsquo;ll Need Node.js ≥ 18 Python ≥ 3.10 (only needed to run the test suite) A modern browser — Firefox 111+, Chrome 102+, or Safari 16.4+. Kaivalya Trainer relies on OPFS (Origin Private File System) for its database, which doesn&amp;rsquo;t exist in older browsers or in private/incognito windows. Clone and Install git clone &amp;lt;repo-url&amp;gt; cd kaivalya-trainer npm install Run the App npm run dev This starts the Vite dev server at http://localhost:5173.</description></item><item><title>Getting Started</title><link>https://kaivalya.eu/projects/trainer/en/docs/getting-started/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/docs/getting-started/</guid><description>What is Kaivalya Trainer? Kaivalya Trainer is a training-tracking application. You create exercises, group them into combos (crossfit-style sequences, timed or not), then into sessions. Sessions can in turn be organized into collections — a multi-week program, for example.
When it&amp;rsquo;s time to train, you launch a session in Execution Mode: the app guides you step by step, with a timer for timed combos, and keeps a record of everything you actually did (reps, weight, duration) so you can track your progress in the statistics.</description></item><item><title>How-to Guides</title><link>https://kaivalya.eu/projects/trainer/en/developers/how-to-guides/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/developers/how-to-guides/</guid><description>Add a New Language Kaivalya Trainer already ships three languages today — English, French, and Danish (da) — not just the EN/FR pair the project website emphasizes. The steps below walk through adding one more, using Spanish (es) as the worked example.
Adding a language requires four touch points: a new locale file, wiring it into the i18n initializer, a selector option in Settings, and a decision-log entry.
src/i18n/locales/&amp;lt;code&amp;gt;.json — create the translation file src/i18n/index.</description></item><item><title>How-to Guides</title><link>https://kaivalya.eu/projects/trainer/en/docs/how-to-guides/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/docs/how-to-guides/</guid><description>Install Kaivalya Trainer as an App on Android Kaivalya Trainer is a Progressive Web App (PWA): it installs as a real app on your phone, with its own home screen icon, and runs without the browser&amp;rsquo;s navigation bar.
Important: if Kaivalya Trainer is already open in a browser tab, the installed app may not launch correctly — the browser and the installed app conflict with each other. Close the browser tab first before launching the installed app.</description></item><item><title>Reference</title><link>https://kaivalya.eu/projects/trainer/en/developers/technical/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/developers/technical/</guid><description>This page describes every part of Kaivalya Trainer in detail: tech stack, schema, routes, composables. For a guided first run, see Getting Started; for concrete tasks, see How-to Guides; for the &amp;ldquo;why&amp;rdquo; behind the choices, see Understanding the Architecture.
AI authorship. The vast majority of the source code in this project was written by AI assistants (primarily Claude). The human author directed the architecture, reviewed every change, guided the implementation, and made all design and product decisions — but in terms of who typed the lines, that credit belongs mostly to the AI.</description></item><item><title>Reference</title><link>https://kaivalya.eu/projects/trainer/en/docs/user-guide/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/docs/user-guide/</guid><description>This page describes every Kaivalya Trainer screen in detail: available actions, form fields, keyboard shortcuts. For a general introduction, see Getting Started; for the &amp;ldquo;why&amp;rdquo; behind the choices, see Understanding Kaivalya Trainer.
First Launch The very first time you open Kaivalya Trainer, a one-time warning modal explains two important constraints of the app:
One tab at a time — Kaivalya Trainer can only be open in a single browser tab at once.</description></item><item><title>Understanding Kaivalya Trainer</title><link>https://kaivalya.eu/projects/trainer/en/docs/understanding-kaivalya-trainer/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/docs/understanding-kaivalya-trainer/</guid><description>Why a Local App? Many fitness apps run on an account and a central server: convenient for syncing your devices, but it also means a third-party company hosts your data, and the app becomes unusable without a connection — or if the service shuts down one day.
Kaivalya Trainer makes the opposite choice: everything runs in your browser, your data is stored locally, and nothing is ever sent to a server.</description></item><item><title>Understanding the Architecture</title><link>https://kaivalya.eu/projects/trainer/en/developers/understanding-the-architecture/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/developers/understanding-the-architecture/</guid><description>This page explains why Kaivalya Trainer is built the way it is. For the facts — schema, routes, exact fields — see Reference.
Why No Backend? Many fitness apps run on an account and a central server. Kaivalya Trainer makes the opposite choice: it&amp;rsquo;s a Progressive Web Application that runs entirely in the browser, with all data stored locally via SQLite WASM and OPFS. There&amp;rsquo;s no server to operate, no account system to build and secure, and the app keeps working — fully — with no network connection at all.</description></item><item><title>Kaivalya Trainer 1.2.1 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-10-01-release-1.2.1/</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-10-01-release-1.2.1/</guid><description>This post is available in French: Kaivalya Trainer 1.2.1 disponible
Kaivalya Trainer 1.2.1 is now available.
What&amp;rsquo;s new bigger date in pocket screen review of documentation How to get it The app is available at Kaivalya Trainer. It updates automatically — just reload the page in your browser.
To install or update the PWA on your device, open the app and use the browser&amp;rsquo;s install prompt (or menu → &amp;ldquo;Install app&amp;rdquo;).</description></item><item><title>Kaivalya Trainer 1.2.0 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-09-28-release-1.2.0/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-09-28-release-1.2.0/</guid><description>This post is available in French: Kaivalya Trainer 1.2.0 disponible
Kaivalya Trainer 1.2.0 is now available. TrainUs has a new name, and it now tracks cardio.
What&amp;rsquo;s new A new name: TrainUs is now Kaivalya Trainer. Your data stays where it was. Cardio exercises: running, walking, cycling… with a time or distance target, usable on their own, in sessions and in combos. A session can also be marked free style, where targets are only indicative.</description></item><item><title>TrainUs 1.1.3 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-08-27-release-1.1.3/</link><pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-08-27-release-1.1.3/</guid><description>This post is available in French: TrainUs 1.1.3 disponible
TrainUs 1.1.3 is now available.
What&amp;rsquo;s new Add next exercise to media notification on Android (included rest for tabata combo) How to get it The app updates automatically — just reload the page in your browser.
To install or update the PWA on your device, open the app and use the browser&amp;rsquo;s install prompt (or menu → &amp;ldquo;Install app&amp;rdquo;).
Source code and release notes: 1.</description></item><item><title>TrainUs 1.1.1 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-08-26-release-1.1.1/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-08-26-release-1.1.1/</guid><description>This post is available in French: TrainUs 1.1.1 disponible
TrainUs 1.1.1 is now available.
Bug fixes Fix (hopefully) the app killed issue Fix the download many log files issue How to get it The app updates automatically — just reload the page in your browser.
To install or update the PWA on your device, open the app and use the browser&amp;rsquo;s install prompt (or menu → &amp;ldquo;Install app&amp;rdquo;).
Source code and release notes: 1.</description></item><item><title>TrainUs 1.1.2 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-08-26-release-1.1.2/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-08-26-release-1.1.2/</guid><description>This post is available in French: TrainUs 1.1.2 disponible
TrainUs 1.1.2 is now available.
Bug fixes Fix : bug on the application being killed by Android, now it plays a silent sound to keep itself alive (and print the current exercise in the media notification) How to get it The app updates automatically — just reload the page in your browser.
To install or update the PWA on your device, open the app and use the browser&amp;rsquo;s install prompt (or menu → &amp;ldquo;Install app&amp;rdquo;).</description></item><item><title>TrainUs 1.1.0 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-08-25-release-1.1.0/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-08-25-release-1.1.0/</guid><description>This post is available in French: TrainUs 1.1.0 disponible
TrainUs 1.1.0 is now available.
What&amp;rsquo;s new loggin system to help track bugs Bug fixes Try to fix session execution bug How to get it The app updates automatically — just reload the page in your browser.
To install or update the PWA on your device, open the app and use the browser&amp;rsquo;s install prompt (or menu → &amp;ldquo;Install app&amp;rdquo;).</description></item><item><title>TrainUs 1.0.0 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-08-10-release-1.0.0/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-08-10-release-1.0.0/</guid><description>This post is available in French: TrainUs 1.0.0 released
TrainUs 1.0.0 is now available.</description></item><item><title>TrainUs 1.0.1 released</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-08-10-release-1.0.1/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-08-10-release-1.0.1/</guid><description>This post is available in French: TrainUs 1.0.1 disponible
TrainUs 1.0.1 is now available.
Commits since v1.0.0 08a7a96 Fix format 8ed8801 Fix session execution interruption 5879ee6 Fix release process How to get it The app updates automatically — just reload the page in your browser.
To install or update the PWA on your device, open the app and use the browser&amp;rsquo;s install prompt (or menu → &amp;ldquo;Install app&amp;rdquo;).
Source code and release notes: 1.</description></item><item><title>AI: the method</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-07-21-ia_methode/</link><pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-07-21-ia_methode/</guid><description>In a previous article, I explained why I used AI so heavily to build TrainUs. Here, I&amp;rsquo;ll talk about the how.
Because yes, following a method helps! So I more or less adopted the usual method, really: a spec, a plan, rules (well, it&amp;rsquo;s more explicit with an AI), tests (vital here), and docs (for me, for it, for contributors, and for users).
Architecture I told you I&amp;rsquo;m the lazy type when it comes to architecture, but let&amp;rsquo;s be honest: the structuring decisions were mine, and made from the start.</description></item><item><title>Why use AI</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-06-20-ia_pourquoi/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-06-20-ia_pourquoi/</guid><description>I used AI massively to build TrainUs.
Given my background (a computer science engineer) and my professional experience (I worked as a developer), I have the technical skills needed to build this kind of application. My problem was never skills, or even ideas for an app: I&amp;rsquo;ve always had plenty of ideas for personal projects. My problems have always been time and motivation.
Lastly, in my professional field, I need to learn how to use these kinds of tools, and doing so on personal projects allows for a lot more experimentation than at work.</description></item><item><title>Launching the TrainUs website</title><link>https://kaivalya.eu/projects/trainer/en/blog/2026-06-14-lancement/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/blog/2026-06-14-lancement/</guid><description>Cet article est disponible en français : Lancement du site TrainUs
Today I&amp;rsquo;m publishing the documentation site for TrainUs, a fitness tracking app I&amp;rsquo;ve been building for the past few months.
What is TrainUs? TrainUs is a progressive web app (PWA) that runs entirely in the browser. There is no server, no account to create, no data sent anywhere. Everything is stored locally on your device using SQLite WASM and the OPFS API (Origin Private File System).</description></item><item><title>Contact</title><link>https://kaivalya.eu/projects/trainer/en/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/contact/</guid><description>To report a bug, suggest an idea or contribute to the project, you can open an issue on the repository or send us an e-mail:
Enable JavaScript to display the e-mail address.</description></item><item><title>Credits</title><link>https://kaivalya.eu/projects/trainer/en/credits/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kaivalya.eu/projects/trainer/en/credits/</guid><description>Kaivalya Trainer is free software under the AGPL-3.0, and it stands on other people&amp;rsquo;s work. Everything below ships in the app or in the maps it draws. The same list is available offline in the app itself, under Settings → Credits.
Icons Work Licence Author Mighty Force — the app icon CC BY 3.0 Delapouite, via game-icons.net Bootstrap Icons — every UI icon MIT The Bootstrap Authors game-icons.net is maintained by Lorc, Delapouite &amp;amp; contributors.</description></item></channel></rss>