Case study2025

Climbing Training Plan Generator

A web tool that turns a six-question form into a personalised indoor climbing plan.

Climbing Training Plan Generator form UI on the live site
climbing-training-tool · form view · live site
Role
Creator
Year
2025
Stack
React · TypeScript · Tailwind
Status
Live
Sport techClimbingPersonal toolWeb app
Context

Where this lives

I climb indoors regularly — boulder and route, mixed disciplines, with the kind of mid-grade plateau that most amateur climbers eventually meet. Training in climbing is its own discipline: it's not just 'climb more'. Volume, recovery, hangboard exposure, projecting density and antagonist work all interact, and what works at 6B doesn't work at 7A.

I kept reading the same advice spread across forums, coach blogs and PDFs, then trying to translate it into what to do this Tuesday. After enough rounds of that, building a tiny tool that just asked the right questions and produced a starting plan felt like the obvious move.

The audience is single-user: me, and any climber who'd recognise the inputs as the ones that actually matter for their week.

Problem

Mainstream fitness apps are built around running, lifting and step counts. They don't ask about grades, projecting cycles, or finger-recovery windows. Even when they let you log climbing as a freeform workout, they can't reason about the load.

Climbing-specific guidance exists, but it's scattered — forum threads, training-blog posts, coach interviews, the occasional structured PDF. Each piece is useful on its own; none of them ask for your inputs and hand you a plan you can run with.

The gap was small but real: a focused tool that takes the half-dozen variables a coach would ask about and returns a structured starting point. Not a replacement for a real coach, just the kind of scaffolding that turns intention into a schedule.

What it does

Six inputs, one structured plan

The form asks only what a climbing plan actually depends on. Nothing speculative, nothing decorative. Each input maps onto a concrete dimension of the generated routine.

01 · Level + grade

Where the climber is right now

Climbing level (Beginner → Advanced) plus current grade and target grade. The grade pair anchors how aggressive the progression can be — chasing 7A from 5+ is not the same plan as 6C+ from 6B+.

02 · Schedule

How many sessions per week

Training days per week sets the weekly volume budget. Two sessions and four sessions get fundamentally different plans — not just 'more of the same', but a different distribution of work, technique and recovery.

03 · Goal

What the climber is training for

General improvement, endurance, power, or project send. The goal reshapes the emphasis — power blocks for project send, capacity work for endurance, balanced skill work for general improvement.

04 · Injuries / limitations

What the plan has to respect

A free-text field for things like a recovering finger pulley or a sore shoulder. The plan adapts — fewer intense hangs, more antagonist work, modified projecting — instead of pretending the climber is at 100%.

UI / form flow

The form, on the live site

A single dark form, vertical scroll, one primary action. Click the image to open it fullscreen.

form input · the entry point
generated plan · output (1 of 2)
generated plan · output (2 of 2)
Product logic

How the plan gets shaped

The generation is not a coach-in-a-bottle. It is a small set of climbing-domain heuristics that turn structured inputs into a sensible weekly skeleton — leaving the actual session quality to the climber.

01

Grade-aware progression

The gap between current and target grade defines the load curve. Big gap means longer plan with skill-build phases; small gap means a denser projecting block. The grade pair is the spine of every other decision.

02

Volume scaling on session count

Two sessions a week is a focused plan with one technique focus and one project session. Four sessions opens room for hangboard, antagonists and a dedicated mileage day. Volume isn't multiplied — it's redistributed.

03

Recovery as a first-class block

Climbing plans break when recovery is implicit. Each generated week includes explicit rest framing — finger-recovery windows, off-day notes — rather than treating rest as the absence of work.

04

Climbing-domain heuristics

The mapping from inputs to outputs is small set of rules pulled from climbing literature, not an LLM call. That keeps it deterministic, fast and honest about what it is — a structured starting point, not a personalised coach.

05

Stateless, single-page

No accounts, no database, no session persistence. The form lives on a single page; the plan is generated client-side and rendered inline. The whole tool is small enough to deploy on Vercel's free tier.

Learnings

What this taught me

The clearest lesson was about input design. The early form had ten questions; the live one has six. Every dropped input forced a sharper rule on what the plan actually depends on. Removing fields turned out to be more product work than adding logic.

Climbing knowledge encoded as rules is more honest than wrapping an LLM around the same prompt. The output is reproducible, the reasoning is inspectable, and when the plan is wrong I can fix the rule instead of re-prompting.

Deploying on Vercel kept the loop short. The tool was usable in production after a single afternoon — which was the whole point. Sport tooling that doesn't ship doesn't get used.

Built with
ReactTypeScriptTailwindVercel
Note

This is the kind of tool that wouldn't make sense as a startup. It's small, single-user-shaped, and useful precisely because it doesn't try to be more. Personal sport tech earns its place by being practical first — by the climber actually using the plan it generates the following Tuesday.