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