Less coding means fewer reps.
When AI writes the function or fixes the bug, you get the result. You may also miss the practice of working through it yourself.
A CODING GYM FOR THE AI ERA
Using AI every day can mean writing less code yourself. CodeStamina is a gym for your coding skills: short, hands-on exercises to keep you practising, stay sharp, and make coding part of your routine again.
Guided TypeScript preview · 8–12 minutes · No account needed

WHY A CODING GYM?
When AI writes the function or fixes the bug, you get the result. You may also miss the practice of working through it yourself.
Set aside time to solve a problem, write a fix, and test your thinking. Like exercises at the gym, each coding exercise gives you something specific to practise.
Make hands-on coding a regular habit alongside your AI tools. Short sessions give you a manageable way to keep using the skills you want to maintain.
Fight coding atrophy.
Keep practising.
INSIDE THE FREE PREVIEW
This guided preview lets you investigate a payment function that compiles successfully but mishandles a valid payment status. You compare prepared repairs; hands-on editor workouts are planned.
Read a small piece of code and decide what it will do. Answer before checking the explanation to put your own understanding to the test.
READ & REASONSpot the missing case, compare two fixes, and learn why one protects the code when the requirements change.
COMPARE & CHECKWrite the rule you want to remember in your own words. Download your takeaway and use it in your next code review.
REFLECT & APPLYTRY A SHORT WARM-UP
Try the three-step warm-up below, then continue with the expanded guided preview to compare three repairs against four requirements.
STEP 1 OF 3 · PREDICT
A payment can be paid, declined, or pending. The switch handles two of them. Commit to an answer before reading on.
PAYMENT.TS
type PaymentResult =
| { status: 'paid'; receiptId: string }
| { status: 'declined'; reason: string }
| { status: 'pending' };
function describe(result: PaymentResult): string {
switch (result.status) {
case 'paid': return 'Receipt: ' + result.receiptId;
case 'declined': return 'Declined: ' + result.reason;
default: return 'Unknown payment status';
}
}The default is the line worth arguing about.
PLANNED: A ROUTINE YOU CAN FOLLOW
Build a coding habit with three planned workouts a week. Each session targets a practical TypeScript skill, from handling invalid data to fixing async bugs. Follow the training plan, do your reps, and return for the next workout.
AVAILABLE TODAY
The guided TypeScript preview is free to try now. It uses prepared repairs and requirement checks. The twelve-session hands-on program is planned and is not open yet.
WEEK 1
Repair a transformation and identify missing and empty values.
Build a grouping utility with explicit identity and ordering rules.
Catch a realistic boundary defect while accepting correct alternatives.
WEEK 2
Distinguish retryable, permanent and cancelled outcomes.
Prevent an older asynchronous result from replacing a newer one.
Apply a capped retry policy with predictable time inputs.
WEEK 3
Preserve cancellation and cleanup across asynchronous steps.
Simplify branching while preserving externally visible behaviour.
Handle duplicate event identities without duplicate effects.
WEEK 4
Combine validation, failure handling and a small feature.
Apply the skills to an unfamiliar reserved task.
Complete another reserved task, review fresh evidence and select a continuation or refresher.
PLANNED PROGRAMS
Five planned levels run from first programs to system-wide decisions. A level describes readiness in a subject, not seniority — you can sit at Level 4 in backend work and Level 2 in frontend.
Open a level to see where it starts and what it leaves you able to do.
Create a small program from a clear brief, check its behaviour and explain how it works.
WHERE IT STARTS
No coding experience required. Introductory workouts explain the editor, running code and reading feedback before expecting independent work.
WHAT YOU'LL PRACTISE
Programs, inputs and outputs · Running code and reading feedback · Values, variables and basic types · Expressions and comparisons · Conditions and branching · Loops and repetition
Explore this levelTurn a small feature brief into understandable, typed and tested behaviour.
WHERE IT STARTS
Can use functions, conditions, arrays and objects and trace simple code.
WHAT YOU'LL PRACTISE
Type annotations and inference · Object types and interfaces · Unions and narrowing · Optional values and null handling · Reusable generic functions · Filtering, mapping and reducing
Explore this levelDiagnose realistic defects and preserve correct behaviour under boundaries, asynchronous changes and partial failure.
WHERE IT STARTS
Can independently build small typed features, write tests and use promises.
WHAT YOU'LL PRACTISE
Boundary transformations · Stable grouping and indexing · Conflicting and malformed records · Contracts and invariants · Error classification · Retry policies and backoff
Explore this levelImprove a service or application using explicit design, performance and operational tradeoffs.
WHERE IT STARTS
Comfortable with tested feature delivery, asynchronous failure handling and safe refactoring.
WHAT YOU'LL PRACTISE
Module boundaries and dependency direction · API contracts and evolution · Domain modelling · Configuration and feature controls · Relational modelling and constraints · Transactions and concurrent updates
Explore this levelCompare system designs, investigate ambiguous failures and plan safe evolution under real constraints.
WHERE IT STARTS
Experience maintaining services and reasoning about data, operations and cross-component changes.
WHAT YOU'LL PRACTISE
Consistency and availability tradeoffs · Delivery and processing guarantees · Event ordering and reconciliation · Coordination, leases and ownership · Distributed workflows and compensation · Partitioning and hot spots
Explore this levelThe longer-term plan brings workouts into a personal training routine: follow a program, keep a practice log, and revisit skills on fresh problems. Creating and sharing your own programs is also planned.
Explore all program detailsTRACKS UNDER CONSIDERATION
We’re considering more areas of practice. Tell us which would help you at work; your interests help us decide what to build next.
Rebuild fluency with a baseline, supported practice and gradually reduced scaffolding.
Rotate practised skills, unfamiliar variants and delayed checks.
Practise reproduction, test design, asynchronous failures and diagnostic evidence.
Cover semantic HTML, CSS, accessibility, browser behaviour, state and UI testing.
Cover HTTP, validation, persistence, transactions, queues, caching and reliability.
Practise collections, search, sorting, recursion, trees, graphs and complexity.
Work with trust boundaries, access control, data handling and threat modelling.
Transfer familiar concepts into a new language or ecosystem.
Explain generated changes, challenge assumptions, find defects and verify results.
Still unsure? Email mo@codestamina.com — a person answers.
Developers who use AI every day, code less than they used to, and want to keep their hands-on coding skills sharp. The catalog plan runs from first-program Foundations to systems judgment, while today’s guided preview suits anyone who can already read functions, objects and simple control flow.
We use it to describe the feeling of getting rusty when you spend less time coding yourself. CodeStamina is built to help you make room for regular practice alongside AI-assisted work.
Start with the free guided TypeScript preview: predict the behaviour, compare three prepared repairs, check four requirements, and download your reflection. You can also take the developer benchmark or browse the TypeScript exercises. The guided preview needs no sign-in or payment.
Eight to twelve minutes for the guided preview. Take it at your own pace; the aim is thoughtful, repeatable practice.
Try the problem yourself first, before asking AI for a solution. The exercise is your chance to do the coding and problem-solving yourself. You can still use AI in your day-to-day work.
The focus is keeping everyday coding skills in use: writing code, debugging, testing and solving problems yourself. The planned programs turn that practice into a regular training routine.
Email updates about relevant program availability. Your level and topic answers help us understand demand and decide what to build next. Joining does not create an account or give access to the planned programs.
JavaScript and TypeScript come first so we can build a focused, useful starting point. The planned tracks are candidates; use the waitlist to tell us which languages and topics matter to you.
Start with the free guided preview, then join the waitlist for hands-on workouts and a regular training program.