Foundations
Phase 1 — Fundamentals 5 lessons
Script tags, variables, functions, DOM updates, and first events.
Phase 2 — Collections and Logic 6 lessons
Arrays, objects, booleans, comparisons, loops, Math, and return values.
Phase 3 — DOM, JSON, and Storage 8 lessons
Form values, selectors, create/remove, objects in arrays, JSON, and localStorage.
DOM, style, and events
Phase 4 — Styling and Attributes 6 lessons
Inline style, classList, get/setAttribute, and dataset.
Phase 5 — Events 5 lessons
addEventListener, event.target, preventDefault, and closest for nested clicks.
Phase 6 — DOM Traversal 4 lessons
parentElement, children, closest, and nextElementSibling.
Forms, libraries, and tables
Phase 7 — Forms in Action 9 lessons
Live output, validation, files, drag and drop, wizards, and settings.
Phase 8 — Form UI Libraries 22 lessons
Pinned CDN widgets (Choices, Flatpickr, TinyMCE, Dropzone, Picmo). Vue/React names are in rules.md.
- CDN Init and Destroy
- Choices — Single Select
- Choices — Multiple Select
- Choices — Groups and Disabled
- Choices — Events
- Flatpickr — Date
- Flatpickr — Time and Datetime
- Flatpickr — Range and Multiple
- Flatpickr — Constraints and Inline
- TinyMCE — Basic
- TinyMCE — Toolbar and Plugins
- TinyMCE — Get, Set, Readonly
- TinyMCE — Form Sync
- Dropzone — Basic
- Dropzone — Accept and Limits
- Dropzone — Previews and Remove
- Dropzone — Events
- Picmo — Inline Picker
- Picmo — Popup Picker
- Picmo — Insert into Field
- Widget Form Desk
- Upload Desk Capstone
Phase 9 — Interactive Tables 6 lessons
List.js search, sort, and pagination, plus vanilla bulk select.
Runtime and language
Phase 10 — Runtime and Language 15 lessons
Timers, the event loop, hoisting, destructuring, Date/Error, modules, BigInt, increment, and scope.
Callbacks, arrays, and objects
Phase 11 — Callbacks and Array Methods 10 lessons
Function expressions, arrows, defaults/rest revisit, then forEach, map, filter, reduce, and a pipeline desk.
Phase 12 — Array Queries, Copies, and Objects 10 lessons
find/some/every/includes, slice vs mutating sort/splice, Object.keys/entries/fromEntries, object spread, and flatMap.
Async foundations
Phase 13 — Promises and Async/Await 10 lessons
Promise states, then/catch/finally, new Promise, Promise.all for parallel work, async/await with try/catch/finally, and microtasks — offline before fetch.
Phase 14 — HTTP and Fetch 10 lessons
Client/server, fetch GET, response.json, HTTP vs network errors, query strings, headers, POST/PUT/DELETE, error UI, and a JSONPlaceholder CRUD desk.
Phase 15 — Fetch Polish 7 lessons
URLSearchParams, AbortController, Bearer auth header demo, parallel fetch, loading/empty/error states, one retry, and an API console desk.