Catalog

Ninety courses. Six benches.

Interface, JavaScript, TypeScript, React, and delivery are the frontend work. Practice is how you scope it, price it, and run it inside an LLC. Every course includes one call a week. Nothing is charged until after that first conversation.

90 courses · 6 benches

15 courses in React

  • BR-04 · React · Beginner

    Components, from Scratch

    JSX, props, and a component that renders one thing you can point at.

    JSX · Props · Components · Rendering

    Read the brief

    No state yet. You will build small components, pass data in, and see a render as a function of that data.

    • Write a component as a function of its props
    • Compose two components without copying markup
    • Read a JSX tree and say what the DOM will be

    $9.99

    3 weeks · 3 calls

  • BR-04 · React · Beginner

    State Is a Snapshot

    useState, and the habit of treating state as the current value rather than a box you mutate.

    useState · Snapshots · Updates · Derived state

    Read the brief

    Updates, batching, and the bug where you read state and expect it to have changed already. You will stop storing what you can derive.

    • Update state without mutating the previous value
    • Derive a value during render instead of storing it
    • Explain why a state read can be stale

    Before this: Components, from Scratch

    $14.90

    4 weeks · 4 calls

  • BR-04 · React · Intermediate

    Rendering, and Why It Happened

    What causes a render, and how to tell a useful one from an accidental one.

    Rendering · Props · Parent state · Commits

    Read the brief

    Parent renders, state updates, and a component that rendered because its parent did. You will look at the commit rather than guessing.

    • Say why a component rendered
    • Lift state only as far as the components that need it
    • Spot a render caused by a new object identity

    Before this: State Is a Snapshot

    $19.90

    4 weeks · 4 calls

  • BR-04 · React · Beginner

    Lists, Keys, and Identity

    Keys that match identity, so a list does not reuse the wrong row's state.

    Lists · Keys · Identity · State

    Read the brief

    A beginner course on one sharp edge. Index keys, stable ids, and the input that kept another row's text.

    • Choose a key that matches the item's identity
    • Explain what breaks when the key is the index
    • Reset a row's state when the item actually changes

    Before this: State Is a Snapshot

    $29.90

    5 weeks · 5 calls

  • BR-04 · React · Intermediate

    Events and Controlled Inputs

    Clicks and fields, with state that is the source of truth for the input.

    Events · Inputs · Controlled · Forms

    Read the brief

    Controlled and uncontrolled, and the form that fights its user because both are trying to own the value.

    • Handle an event without reading the DOM afterwards
    • Make an input controlled for a reason
    • Leave an input uncontrolled when state would add nothing

    Before this: State Is a Snapshot

    $39.90

    5 weeks · 5 calls

  • BR-04 · React · Intermediate

    Composition over Flags

    Children, slots, and the component that grew a boolean for every special case.

    Composition · Children · Slots · API

    Read the brief

    You will take a component full of flags and split it into pieces that compose. The API gets smaller on purpose.

    • Replace a pile of boolean props with composition
    • Pass a slot without cloning an element
    • Keep a component's public API smaller than its internals

    Before this: Components, from Scratch

    $49.90

    6 weeks · 6 calls

  • BR-04 · React · Advanced

    Server and Client UI

    Which part of a screen can render on the server, and which part needs the client.

    Server components · Client · Boundaries · Data

    Read the brief

    Advanced. Server components, client boundaries, and the fetch that does not belong in an effect. You will draw the line before you write the file.

    • Put a client boundary at the smallest component that needs it
    • Fetch on the server when the data is ready there
    • Explain what a client component ships to the browser

    Before this: Rendering, and Why It Happened

    $59.90

    6 weeks · 6 calls

  • BR-04 · React · Intermediate

    Fetching for a Screen

    Load data for a view, and render loading and failure as part of the UI.

    Data · Loading · Errors · Race conditions

    Read the brief

    Where the request lives, what happens on retry, and the race when the person navigates mid-flight.

    • Render loading, error, and ready as separate UI
    • Ignore a response that belongs to an old screen
    • Retry without duplicating the request logic

    Before this: Events and Controlled Inputs

    $69.90

    7 weeks · 7 calls

  • BR-04 · React · Intermediate

    Sharing State on Purpose

    Context, and the alternatives, so a provider is a decision rather than a reflex.

    Context · Lifting state · Providers · Colocation

    Read the brief

    Lifting state, composition, and context for something that is truly ambient. You will remove a provider that did not need to exist.

    • Lift state to the nearest shared parent
    • Use context for a value that is genuinely ambient
    • Remove a provider that was hiding a prop

    Before this: Composition over Flags

    $79.90

    8 weeks · 8 calls

  • BR-04 · React · Advanced

    Hooks with One Job

    Extract a hook when it has one reason to exist, and a test that says what that is.

    Hooks · Extraction · Dependencies · Testing

    Read the brief

    Advanced. Naming, dependencies, and the hook that became a second component with nowhere to put markup. You will put the logic back if the hook made it worse.

    • Extract a hook that does one thing
    • Name its inputs so the call site stays honest
    • Test the behavior without mounting a whole screen

    Before this: Sharing State on Purpose

    $89.90

    8 weeks · 8 calls

  • BR-04 · React · Intermediate

    Testing React like a User

    Render, click, and assert. Tests that do not know which hook you used.

    Testing Library · Roles · Events · Async

    Read the brief

    Queries by role, user events, and the async UI. You will change the implementation and watch the test stay green for the right reason.

    • Query a component the way a person finds it
    • Assert on what changed on screen
    • Refactor a component without rewriting its test

    Before this: Events and Controlled Inputs

    $99.90

    9 weeks · 9 calls

  • BR-04 · React · Intermediate

    When Not to Memo

    memo, useMemo, and useCallback, mostly so you can take them out.

    memo · useMemo · Rendering · Measurement

    Read the brief

    Measure a slow render, then decide. You will remove memoization that was copying props and calling it performance.

    • Find a render that is actually expensive
    • Memoize a value only when identity matters
    • Delete a memo that was not earning its place

    Before this: Rendering, and Why It Happened

    $109.90

    10 weeks · 10 calls

  • BR-04 · React · Intermediate

    Accessible React

    Focus, dialogs, and names, in a component tree that re-renders.

    Accessibility · Focus · Dialogs · Names

    Read the brief

    A dialog that traps and restores focus, a button that is a button, and a live region that announces the change you just rendered.

    • Move focus when a dialog opens and restore it on close
    • Expose a name on a control you rendered
    • Announce a status change without stealing focus

    Before this: Composition over Flags

    $119.90

    11 weeks · 11 calls

  • BR-04 · React · Intermediate

    A Small Design System

    A handful of React components that share tokens, variants, and behavior.

    Design system · Variants · Tokens · Components

    Read the brief

    Button, field, stack, and dialog, documented by their props. Twelve weeks of making the next screen cheaper to build than the last.

    • Build a component API another person can use without asking
    • Share tokens between components
    • Add a variant without a one-off class name

    Before this: Composition over Flags

    $129.90

    12 weeks · 12 calls

  • BR-04 · React · Advanced

    Capstone: A React Product

    A multi-screen React interface: state, data, tests, and a dialog that works.

    Capstone · State · Testing · Accessibility

    Read the brief

    You choose the product. We hold the line on where state lives, what is tested, and whether a keyboard user can finish the main task.

    • Ship a multi-screen React interface
    • Cover the main task with tests a user could recognize
    • Explain where each piece of state lives

    Before this: Fetching for a Screen

    $147.90

    12 weeks · 12 calls