CodeStaminaOpen preview

Use AI to ship.
Practice to stay sharp.

Short TypeScript workouts for the skills you want to keep. Build your own judgment, one small practice at a time.

One complete guided exercise. No sign-in needed.

Sculptural green code brackets framing a floating orange barbell above a sage platform

A little practice. A stronger instinct.

For developers who want to understand
the code they ship.

YOUR FIRST REP

Make every payment state explicit

8–12 min · TypeScript · Type narrowing

A payment can be paid, declined, or pending. What happens when the switch forgets one state?

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';
  }
}

What message does a pending payment receive?

Make room for a little practice.

01

Think it through.

Start with a prediction. Notice what you assume before you touch the code.

02

Work the problem.

Read a focused TypeScript example, choose a repair and check its behavior in the browser.

03

Keep the lesson.

Write a reflection. Give your future self something useful to return to.

THE FIRST TRAINING BLOCK

TypeScript.
Stronger at the edges.

Practice the details that make everyday code more reliable: types, async behavior and the assumptions in between.

Planned as four weeks of short, deliberate workouts.

Explore the preview

A look inside the program

  1. Types & contracts

    Question your assumptions

  2. Async & state

    Handle what happens out of order

  3. Edges & behavior

    Think beyond the happy path

The discriminated-union exercise is ready to try. The full program is in development.

TypeScript first. More languages soon.

We’re starting with TypeScript and planning support for more languages. Tell us what you’d like to practice next.

Request a language

A few things
you might be
wondering.

Who is CodeStamina for?

Developers with some TypeScript experience who want to practice reading, debugging and reasoning about code.

How long is a workout?

The guided preview takes about 8–12 minutes. Take it at your own pace; the aim is thoughtful practice.

What can I try today?

Complete a guided TypeScript exercise on discriminated unions and exhaustive switches: predict the behavior, compare repairs, check four requirements and keep your takeaway. No sign-in needed.

Is this an interview-prep course?

The focus is everyday engineering judgment: reading code, spotting assumptions and reasoning about behavior. The planned program is built around short, deliberate practice.

Your next small step
starts here.

Bring your curiosity. Make a little room for practice.

Explore the preview

Early preview · The full program is in development