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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade

  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 · sign in to grade