the catalog

Every course, and what you'll build.

90 courses across JavaScript, TypeScript, React, Next.js, Vue and Svelte. Each one includes a weekly one-on-one call, code review on everything you submit, and lifetime access to the material.

90 courses

  • JS+Beginner

    JavaScript, Day One

    Write and run your first JavaScript, and understand what the browser is actually doing with it.

    • Fundamentals
    • Values
    • Control flow
    3 weeks3 1-on-1 calls

    £4.99

  • JS+Beginner

    Functions, Scope and Closures

    The idea that unlocks the rest of the language: a function remembers where it was created.

    • Functions
    • Scope
    • Closures
    4 weeks4 1-on-1 calls

    £12.88

  • JS+Beginner

    Objects, Arrays and Destructuring

    Shape data properly so the rest of your program stops fighting you.

    • Objects
    • Arrays
    • Destructuring
    3 weeks3 1-on-1 calls

    £4.99

  • JS+Intermediate

    The Event Loop, Slowly

    Why your log lines come out in that order, explained until it stops surprising you.

    • Event loop
    • Microtasks
    • Timers
    4 weeks4 1-on-1 calls

    £19.88

  • JS+Intermediate

    Promises and async/await

    Compose asynchronous work without the nesting, and handle every failure on purpose.

    • Promises
    • async/await
    • Errors
    4 weeks4 1-on-1 calls

    £19.88

  • JS+Intermediate

    Prototypes, Classes and `this`

    Where methods come from, and why `this` changes when you pass a function around.

    • Prototypes
    • Classes
    • this
    3 weeks3 1-on-1 calls

    £12.88

  • JS+Beginner

    Debugging in the Browser

    Stop adding console.log and start reading what the browser already knows.

    • DevTools
    • Breakpoints
    • Call stack
    3 weeks3 1-on-1 calls

    £4.99

  • JS+Intermediate

    Modules and the Build Step

    What the bundler does to your code, and how to fix it when the output is wrong.

    • ES modules
    • Bundling
    • Tree shaking
    4 weeks4 1-on-1 calls

    £19.88

  • JS+Intermediate

    Testing What Users Actually Do

    Tests that survive a refactor, because they assert on behaviour rather than internals.

    • Testing
    • Testing Library
    • End-to-end
    5 weeks5 1-on-1 calls

    £37.88

  • JS+Beginner

    The DOM Without a Framework

    Build a working interface with nothing but the platform, so frameworks stop being mysterious.

    • DOM
    • Events
    • Forms
    5 weeks5 1-on-1 calls

    £27.88

  • JS+Intermediate

    React, Properly

    Learn the state model first, so you stop reaching for effects to fix everything.

    • React
    • State
    • Rendering
    9 weeks9 1-on-1 calls

    £97.88

  • JS+Intermediate

    Node, Files and Streams

    Use JavaScript outside the browser, where the filesystem and backpressure are real.

    • Node.js
    • Filesystem
    • Streams
    6 weeks6 1-on-1 calls

    £47.88

  • JS+Intermediate

    Talking to APIs

    Fetch data, survive failure, and stop refetching things you already have.

    • fetch
    • HTTP
    • Caching
    5 weeks5 1-on-1 calls

    £37.88

  • JS+Advanced

    How Engines Run Your Code

    Parsing, JIT tiers, hidden classes and garbage collection — the reasons fast code is fast.

    • V8
    • JIT
    • Garbage collection
    9 weeks9 1-on-1 calls

    £107.88

  • JS+Advanced

    Capstone: Ship a Product Front to Back

    One real application, taken from empty repository to something on the internet with users.

    • Capstone
    • Full-stack
    • Deployment
    12 weeks12 1-on-1 calls

    £147.88

  • TS+Beginner

    Your First Typed File

    Add types to JavaScript you already wrote, and see the compiler catch a real bug.

    • Fundamentals
    • Annotations
    • Compiler
    3 weeks3 1-on-1 calls

    £4.99

  • TS+Beginner

    Interfaces, Unions and Narrowing

    Model the states your data can actually be in, then let the compiler prove you handled them.

    • Interfaces
    • Unions
    • Narrowing
    4 weeks4 1-on-1 calls

    £12.88

  • TS+Intermediate

    Generics You Can Actually Read

    Write reusable typed functions without producing signatures nobody can decipher.

    • Generics
    • Constraints
    • Inference
    4 weeks4 1-on-1 calls

    £19.88

  • TS+Advanced

    Conditional and Mapped Types

    Compute types from other types, and keep the result maintainable.

    • Conditional types
    • Mapped types
    • Template literals
    5 weeks5 1-on-1 calls

    £47.88

  • TS+Advanced

    Inference and Where It Gives Up

    Understand how types get guessed, so you know which annotation actually fixes the error.

    • Inference
    • Widening
    • as const
    3 weeks3 1-on-1 calls

    £19.88

  • TS+Intermediate

    Declaration Files and Other People's Types

    Work with a dependency whose types are wrong, missing or actively hostile.

    • Declaration files
    • Augmentation
    • Dependencies
    3 weeks3 1-on-1 calls

    £12.88

  • TS+Beginner

    tsconfig, Strictness and Migration

    Turn strict mode on in a real codebase without stopping all other work for a month.

    • tsconfig
    • Strict mode
    • Migration
    4 weeks4 1-on-1 calls

    £12.88

  • TS+Intermediate

    Testing Types, Not Just Code

    Assert that your types behave, so a refactor cannot quietly loosen them.

    • Type tests
    • expect-type
    • Regression
    4 weeks4 1-on-1 calls

    £19.88

  • TS+Advanced

    Monorepos and Project References

    Make a multi-package repository build fast and stay type-safe across boundaries.

    • Monorepo
    • Project references
    • Build graph
    10 weeks10 1-on-1 calls

    £117.88

  • TS+Intermediate

    Typed React Components

    Type props, hooks and generic components without resorting to `any` at the hard parts.

    • React
    • Props
    • Hooks
    6 weeks6 1-on-1 calls

    £47.88

  • TS+Intermediate

    One Contract, Client to Server

    Define the API once and have both sides break at compile time when it changes.

    • API contracts
    • Validation
    • Schemas
    7 weeks7 1-on-1 calls

    £67.88

  • TS+Intermediate

    Typed Node Services

    Type the messy edge of a backend: requests, config, environment and database rows.

    • Node.js
    • Backend
    • Validation
    6 weeks6 1-on-1 calls

    £47.88

  • TS+Intermediate

    Building a Component Library

    Design components other teams can use without reading your source code.

    • Design systems
    • Polymorphism
    • Accessibility
    8 weeks8 1-on-1 calls

    £77.88

  • TS+Advanced

    Inside the TypeScript Compiler

    Use the compiler as a library: parse, walk and rewrite code programmatically.

    • Compiler API
    • AST
    • Codemods
    9 weeks9 1-on-1 calls

    £107.88

  • TS+Advanced

    Capstone: Ship a Typed Library to npm

    Design, document, publish and version a package that strangers can depend on.

    • Capstone
    • npm
    • Versioning
    12 weeks12 1-on-1 calls

    £147.88

  • RCT+Beginner

    React, Day One

    Write your first component, and understand what JSX is actually compiling into.

    • JSX
    • Components
    • Props
    3 weeks3 1-on-1 calls

    £4.99

  • RCT+Beginner

    Props, Children and Composition

    Build UI from small pieces that fit together, without a prop that means six things.

    • Composition
    • Children
    • Props
    4 weeks4 1-on-1 calls

    £12.88

  • RCT+Beginner

    State, Events and Forms

    Make the page respond, and keep form state honest as the user types.

    • State
    • Events
    • Forms
    3 weeks3 1-on-1 calls

    £4.99

  • RCT+Intermediate

    Effects You Can Trust

    Use effects for synchronising with the outside world, and nowhere else.

    • useEffect
    • Cleanup
    • Dependencies
    4 weeks4 1-on-1 calls

    £19.88

  • RCT+Intermediate

    Lists, Keys and Reconciliation

    Why the key is not an index, and what React actually compares between renders.

    • Lists
    • Keys
    • Reconciliation
    3 weeks3 1-on-1 calls

    £12.88

  • RCT+Advanced

    How React Renders

    The render cycle, batched updates, and why a 'fast' component is still slow.

    • Rendering
    • Profiler
    • memo
    6 weeks6 1-on-1 calls

    £57.88

  • RCT+Beginner

    Thinking in Components

    Look at a mock and see a tree of components, not a page to be filled in.

    • Design
    • State ownership
    • Architecture
    3 weeks3 1-on-1 calls

    £4.99

  • RCT+Intermediate

    Custom Hooks That Stay Honest

    Extract reusable behaviour without hiding the data flow from the next reader.

    • Custom hooks
    • Reuse
    • Testing
    4 weeks4 1-on-1 calls

    £19.88

  • RCT+Intermediate

    Context Without the Mess

    Share data down the tree without turning every update into a full re-render.

    • Context
    • Providers
    • Performance
    3 weeks3 1-on-1 calls

    £12.88

  • RCT+Beginner

    Testing React the Way Users Click

    Queries, user events and assertions that survive a redesign of the internals.

    • Testing Library
    • user-event
    • Queries
    5 weeks5 1-on-1 calls

    £27.88

  • RCT+Intermediate

    Data Fetching in React

    Load data, cache it, and survive the race conditions that show the wrong user.

    • Fetching
    • Caching
    • Mutations
    7 weeks7 1-on-1 calls

    £67.88

  • RCT+Intermediate

    Accessible Components

    Build controls a keyboard, a screen reader and a mouse can all use.

    • Accessibility
    • Focus
    • ARIA
    6 weeks6 1-on-1 calls

    £47.88

  • RCT+Intermediate

    State When Context Isn't Enough

    Reach for a store when the tree can no longer see the data it needs.

    • State management
    • Stores
    • Reducers
    9 weeks9 1-on-1 calls

    £97.88

  • RCT+Advanced

    Concurrent UI and Suspense

    Stream a screen in, show a fallback that is honest, and keep input snappy.

    • Suspense
    • Transitions
    • Streaming
    9 weeks9 1-on-1 calls

    £107.88

  • RCT+Advanced

    Capstone: Ship a Product Interface

    A real product UI, taken from mock to something people can use in production.

    • Capstone
    • Product UI
    • Testing
    11 weeks11 1-on-1 calls

    £127.88

  • NEXT+Beginner

    Your First Next App

    Scaffold an App Router project and understand what each file is for.

    • App Router
    • Scaffolding
    • Pages
    3 weeks3 1-on-1 calls

    £4.99

  • NEXT+Beginner

    File-Based Routing

    Dynamic segments, catch-alls, groups and parallel routes — the whole map.

    • Routing
    • Dynamic segments
    • Groups
    3 weeks3 1-on-1 calls

    £4.99

  • NEXT+Beginner

    Server and Client Components

    Know which tree runs on the server, which hydrates, and why the boundary is where it is.

    • Server components
    • Client components
    • Boundaries
    4 weeks4 1-on-1 calls

    £12.88

  • NEXT+Intermediate

    Data Fetching and Caching

    Fetch on the server, cache on purpose, and revalidate when the data actually changes.

    • fetch
    • Caching
    • Revalidation
    5 weeks5 1-on-1 calls

    £37.88

  • NEXT+Intermediate

    Server Actions

    Mutate data from a form without standing up a separate API route.

    • Server actions
    • Forms
    • Validation
    5 weeks5 1-on-1 calls

    £37.88

  • NEXT+Intermediate

    Metadata, SEO and Open Graph

    Titles, descriptions and share cards that are generated, not copy-pasted.

    • Metadata
    • SEO
    • Open Graph
    3 weeks3 1-on-1 calls

    £12.88

  • NEXT+Beginner

    Layouts, Nested Routes and Templates

    Share chrome across pages, and know when a layout should remount.

    • Layouts
    • Templates
    • loading.js
    4 weeks4 1-on-1 calls

    £12.88

  • NEXT+Intermediate

    Route Handlers and Middleware

    When a server action is not enough: HTTP endpoints and the edge of the request.

    • Route handlers
    • Middleware
    • HTTP
    4 weeks4 1-on-1 calls

    £19.88

  • NEXT+Advanced

    Rendering Strategies

    Static, dynamic, ISR and streaming — pick one on purpose, not by accident.

    • SSR
    • SSG
    • ISR
    6 weeks6 1-on-1 calls

    £57.88

  • NEXT+Beginner

    Forms That Survive a Refresh

    Build forms that keep working when the JS bundle is late or missing.

    • Forms
    • Server actions
    • Errors
    5 weeks5 1-on-1 calls

    £27.88

  • NEXT+Intermediate

    Auth in the App Router

    Sessions, protected routes and the server/client split of a signed-in user.

    • Auth
    • Sessions
    • Cookies
    8 weeks8 1-on-1 calls

    £77.88

  • NEXT+Advanced

    Streaming and Partial Prerender

    A static shell, dynamic holes, and a first paint that does not wait on the slowest query.

    • PPR
    • Streaming
    • Suspense
    8 weeks8 1-on-1 calls

    £87.88

  • NEXT+Intermediate

    Talking to a Database from Next

    Query from a server component, mutate from an action, and never put a secret in the client.

    • Database
    • ORM
    • Server components
    6 weeks6 1-on-1 calls

    £47.88

  • NEXT+Advanced

    Deploying and Observing Next

    Ship it, watch it, and read the traces when a route is suddenly slow.

    • Deploy
    • Observability
    • Tracing
    9 weeks9 1-on-1 calls

    £107.88

  • NEXT+Advanced

    Capstone: Ship a Full-Stack Next App

    One product, from empty app directory to something on the internet with users.

    • Capstone
    • Full-stack
    • Auth
    12 weeks12 1-on-1 calls

    £147.88

  • VUE+Beginner

    Vue, Day One

    Mount an app, write a template, and see reactivity happen on the page.

    • SFC
    • Templates
    • createApp
    3 weeks3 1-on-1 calls

    £4.99

  • VUE+Beginner

    Reactivity You Can See

    ref, reactive and computed — which one, and why the page updated.

    • ref
    • reactive
    • computed
    4 weeks4 1-on-1 calls

    £12.88

  • VUE+Beginner

    Templates, Directives and Events

    v-if, v-for, v-model and events, used precisely rather than stacked.

    • Directives
    • Events
    • v-model
    3 weeks3 1-on-1 calls

    £4.99

  • VUE+Intermediate

    Components and Props

    Split a page into components whose props and emits are a contract, not a suggestion.

    • Components
    • Props
    • Emits
    4 weeks4 1-on-1 calls

    £19.88

  • VUE+Intermediate

    Composables

    Extract reusable behaviour into functions that still feel like Vue.

    • Composables
    • Reuse
    • Lifecycle
    4 weeks4 1-on-1 calls

    £19.88

  • VUE+Intermediate

    Vue Router

    Map URLs to views, guard the ones that need a user, and keep params typed.

    • Vue Router
    • Guards
    • Params
    3 weeks3 1-on-1 calls

    £12.88

  • VUE+Advanced

    The Reactivity System Underneath

    Proxies, effects and the scheduler — why Vue knows what to update.

    • Proxies
    • Effects
    • Scheduler
    5 weeks5 1-on-1 calls

    £47.88

  • VUE+Advanced

    Render Functions and Directives

    When a template is the wrong tool: h(), custom directives and teleport-level control.

    • h()
    • Directives
    • VNodes
    5 weeks5 1-on-1 calls

    £47.88

  • VUE+Intermediate

    Pinia Without the Ceremony

    A store for the state that is actually shared, and nowhere else.

    • Pinia
    • Stores
    • Getters
    4 weeks4 1-on-1 calls

    £19.88

  • VUE+Beginner

    Forms and Validation

    v-model at scale, field errors, and a submit that survives a slow server.

    • Forms
    • v-model
    • Validation
    5 weeks5 1-on-1 calls

    £27.88

  • VUE+Intermediate

    Testing Vue Components

    Mount, interact, assert — tests that survive a refactor of the template.

    • Testing
    • Vue Test Utils
    • Testing Library
    6 weeks6 1-on-1 calls

    £47.88

  • VUE+Intermediate

    Teleport, Suspense and Transitions

    Move markup, wait for async setup, and animate without fighting the DOM.

    • Teleport
    • Suspense
    • Transitions
    4 weeks4 1-on-1 calls

    £19.88

  • VUE+Intermediate

    TypeScript with Vue

    Type props, emits, slots and composables so the call site cannot lie.

    • TypeScript
    • defineProps
    • Generics
    6 weeks6 1-on-1 calls

    £47.88

  • VUE+Advanced

    Scaling a Vue Codebase

    Folders, stores, and conventions that still make sense at fifty components.

    • Architecture
    • Performance
    • Conventions
    10 weeks10 1-on-1 calls

    £117.88

  • VUE+Advanced

    Capstone: Ship a Vue Application

    One Vue product, from empty SFC to something people can use in production.

    • Capstone
    • Vue
    • Routing
    12 weeks12 1-on-1 calls

    £147.88

  • SVEL+Beginner

    Svelte, Day One

    Write a component, click a button, and see the compiler do the work a runtime usually does.

    • Svelte
    • Components
    • Runes
    3 weeks3 1-on-1 calls

    £4.99

  • SVEL+Beginner

    Reactivity Without a Runtime

    $state, $derived and $effect — the runes, and what they compile into.

    • $state
    • $derived
    • $effect
    4 weeks4 1-on-1 calls

    £12.88

  • SVEL+Beginner

    Components, Props and Snippets

    Pass data in, pass markup in, and keep the child from knowing too much.

    • $props
    • Snippets
    • Composition
    3 weeks3 1-on-1 calls

    £4.99

  • SVEL+Intermediate

    Stores and Shared State

    Share state across the tree without a store that becomes a junk drawer.

    • Stores
    • Context
    • Shared state
    5 weeks5 1-on-1 calls

    £37.88

  • SVEL+Intermediate

    SvelteKit Routing

    Folders become routes, layouts nest, and params show up where you expect.

    • SvelteKit
    • Routing
    • Layouts
    3 weeks3 1-on-1 calls

    £12.88

  • SVEL+Intermediate

    Load Functions and Form Actions

    Load data on the server, mutate with a form, and keep both type-safe.

    • load
    • form actions
    • Server
    3 weeks3 1-on-1 calls

    £12.88

  • SVEL+Beginner

    Transitions and Motion

    Animate a list, a modal, a page — without fighting the compiler.

    • Transitions
    • Motion
    • CSS
    3 weeks3 1-on-1 calls

    £4.99

  • SVEL+Beginner

    Bindings and Forms

    bind:value, group inputs, and a form whose state you can still draw on paper.

    • bind
    • Forms
    • Validation
    4 weeks4 1-on-1 calls

    £12.88

  • SVEL+Advanced

    What the Compiler Actually Emits

    Read the generated JS, and make a slow component fast by changing what it compiles to.

    • Compiler
    • Invalidation
    • Output
    6 weeks6 1-on-1 calls

    £57.88

  • SVEL+Intermediate

    SvelteKit Hooks and Auth

    Locals, hooks.server, and a session that the load function can trust.

    • hooks.server
    • Auth
    • Locals
    6 weeks6 1-on-1 calls

    £47.88

  • SVEL+Beginner

    Accessibility in Svelte

    Compile-time a11y warnings are a start. This is the rest of the work.

    • Accessibility
    • Focus
    • ARIA
    5 weeks5 1-on-1 calls

    £27.88

  • SVEL+Intermediate

    Testing Svelte Components

    Render, click, assert — tests that survive a refactor of the markup.

    • Testing
    • Testing Library
    • SvelteKit
    6 weeks6 1-on-1 calls

    £47.88

  • SVEL+Advanced

    Advanced SvelteKit

    Adapters, hooks, streaming, and the production knobs the intro skipped.

    • Adapters
    • Streaming
    • Hooks
    9 weeks9 1-on-1 calls

    £107.88

  • SVEL+Advanced

    Making Svelte Fast

    Svelte is fast by default. This is about the times it is not, and why.

    • Performance
    • Hydration
    • Bundle
    8 weeks8 1-on-1 calls

    £87.88

  • SVEL+Advanced

    Capstone: Ship a SvelteKit Product

    One SvelteKit product, from empty routes folder to something on the internet.

    • Capstone
    • SvelteKit
    • Auth
    11 weeks11 1-on-1 calls

    £127.88