Skip to content

reading

Read the whole thing, then say what it does.

A small codebase, every file of it. You read it, then explain it in prose to a teammate who has to modify it tomorrow. The grade is coverage: each thing a complete reading would have noticed, and whether you said it.

15 codebases · graded against an authored rubric · misses shown in full

  1. A click counter built on a custom hook

    Say what each file is for, and be exact about how much the displayed count actually increases the first time the "+3" button is clicked.

    react · beginner · 4 files

  2. A counter composable shared across a panel of buttons

    Say what each file is for, and be exact about what the numbers on each button show after it has been clicked several times.

    vue · beginner · 3 files

  3. A shopping cart with a checkout step

    Say what each file is for, and be exact about what `cart.list()` shows on a second `Cart` after an item is added to a first `Cart` that was also constructed with no arguments.

    typescript · beginner · 5 files

  4. A delete queue with an escape-to-cancel dialog

    Say what each file is for, and be exact about which id is passed to onDismiss when Escape is pressed after the queue has already moved past the first item.

    react · intermediate · 4 files

  5. A greeting that disagrees with itself after load

    Say what each file is for, and be exact about what the user sees on first paint versus after hydration, and which line is responsible for the mismatch warning.

    vue · intermediate · 4 files

  6. A search box wired to a debounced client

    Say what each file is for, and be exact about what happens between the last keystroke and the results appearing — including when the box is cleared mid-flight.

    typescript · intermediate · 4 files

  7. A session client with a keep-alive heartbeat

    Say what each file is for, and be exact about which token each kind of network call carries in the minutes after the first refresh — and which code can tell that anything went wrong.

    typescript · intermediate · 4 files

  8. A tick counter that never leaves zero

    Say what each file is for, and be exact about what the screen shows after five seconds with the interval running, and why the number refuses to move.

    typescript · intermediate · 4 files

  9. A user profile card wired to a watched prop

    Say what each file is for, and be exact about what user-profile-card.vue displays after "Switch user" has been clicked twice.

    vue · intermediate · 4 files

  10. An upload tracker on a hand-rolled event bus

    Say what each file is for, how the pieces are wired together, and what actually happens when an upload emits progress and then finishes.

    typescript · intermediate · 4 files

  11. A cart store with an audited computed total

    Say what each file is for, and be exact about how many entries end up in the store's audit log after several items are added while the total is hidden, and then the total is shown.

    vue · advanced · 4 files

  12. A paginated API client with retries and a cache

    Say what each file is for, which failures are retried and which are not, and what a caller can and cannot assume about the freshness of what it gets back.

    typescript · advanced · 4 files

  13. A profile fetch that can show the wrong user

    Say what each file is for, and be exact about what name is displayed if the user clicks "Next" twice quickly while the first request is still in flight.

    typescript · advanced · 4 files

  14. A user store built on request coalescing

    Say what each file is for, and be exact about what happens to a second call to getUser for the same id, made right after the very first fetch for that id fails.

    typescript · advanced · 5 files

  15. An SSR inbox bar with a client-only unread badge

    Say what each file is for, and be exact about what the badge span contains — its text AND its class — right after hydration finishes with 7 unread in localStorage, and whether either of them ever corrects itself.

    vue · advanced · 5 files