Climbing training app — plan generator, guided session player, training diary. Vite + React SPA and a FastAPI backend in one Vercel project.
Translation pending
Sports & fitnessPython · TypeScriptGitHub @kilianmcOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A mobile-first climbing training app: pick a target grade, get a generated plan
that covers the different aspects of climbing, then follow the session along with
a timer and audio cues while it logs itself — and read it all back as a training
diary.
• Live: (standalone app)
• Also runs inside as the climbTrainer Module
Federation remote — the third showcase project in the portfolio, and the first with
a database and a backend that isn't JavaScript.Read the full README ↗A mobile-first climbing training app: pick a target grade, get a generated plan that covers the different aspects of climbing, then follow the session along with a timer and audio cues while it logs itself — and read it all back as a training diary.
climbTrainer Module
Federation remote — the third showcase project in the portfolio, and the first with
a database and a backend that isn't JavaScript.prepare / work / rest / open phases. Full-viewport colour changes and a huge
countdown carry the cues, with synthesized audio and haptics on top. Every tap is a
local write first, so it works with no signal in a basement gym.Frontend — React 19 · TypeScript 6 (strict) · Vite 8 · SCSS · Vitest + React
Testing Library · @module-federation/vite (remote role).
Backend — FastAPI · Python 3.13 · sync SQLAlchemy 2 · psycopg3 · Alembic · pytest · ruff.
Data — Neon Postgres. The plan tree is fully relational, closed vocabularies are
native enums, and grades carry an integer ordinal rather than a display string — one
contiguous ladder per discipline, so V-scale and Font boulder grades sit on the same
rungs while boulder and rope grades are deliberately not treated as comparable.
Deploy — a single Vercel project serves both the SPA and /api/*, so the API
is same-origin for the standalone app. uv manages the Python toolchain.