Your starting point
You can open a local project. Start with a page a person can read and operate before adding remote data or a back end.
- Basic functions and records are helpful.
- A local browser and the project’s supported preview setup.
Your finish line
You can build a usable page, inspect a real request and response, distinguish loading from empty and error states, and verify persistence through a local server restart.
Stack up four small wins
Starting marks your intent to follow the path. Check off steps as you learn.
STEP 1 OF 4
Read the browser page as a user
Sketch a six-card resource directory with a clear heading order. Identify what should happen when a keyboard user reaches each link or control.
Bro tip: Walk through your sketch in reading order and name what each control does. A keyboard user needs a useful route through the same page.
What you’ll learn
- HTML structure, CSS presentation, and behavior
- Headings and labeled controls
- Keyboard and narrow-layout checks
You’re ready to move on whenThe sketch has a purposeful reading order and observable behavior for every proposed interactive control.
Your page plan has a user journey. Good first move, bro.
STEP 2 OF 4
Build an accessible local directory
Complete the Accessible Resource Directory Starter. Check content and keyboard use before adding more visual effects.
Bro tip: Use the keyboard to visit all six resources, then filter to no matches and clear the query. Check the narrow layout too.
What you’ll learn
- Semantic structure
- Responsive layout
- Client-side filters
You’re ready to move on whenAll six resources are reachable by keyboard, the narrow layout fits, and filtering and clearing give the expected records.
Open project: Accessible Resource Directory Starter
Directory checkpoint marked. Keep keyboard use in your checks as the page grows.
STEP 3 OF 4
Handle a real asynchronous request
Complete the Local Data Explorer Practice. Use the project’s local server and controlled fixtures instead of depending on an external service.
Bro tip: Keep separate local fixtures for valid, empty, and failed loads. Retry after a failure and count the records to catch accidental duplicates.
What you’ll learn
- JSON fixtures over HTTP
- Loading, empty, and failed requests
- Recoverable retry
You’re ready to move on whenThe interface distinguishes pending, empty, successful, and failed loads, and retry recovers without duplicating records.
Open project: Local Data Explorer Practice
Nice checkpoint, bro. You are making room for the awkward states as well as the successful one.
STEP 4 OF 4
Connect the interface to persistent server data
Complete the Local Bookmark API Workshop. Keep it explicitly local and single user while tracing requests, validation, storage, and results.
Bro tip: Send one invalid request directly to the local server, then save a valid bookmark and restart. Compare the saved ID before and after.
What you’ll learn
- Endpoints and server validation
- Stable IDs
- A complete saved journey
You’re ready to move on whenThe server rejects invalid direct input and accepted bookmarks remain after a server restart and browser reload.
Open project: Local Bookmark API Workshop
Your saved journey checkpoint is marked. Keep the local, single-user boundary clear when describing it.
Your build lineup
- Accessible Resource Directory Starter
Make a small, readable web directory that works with a keyboard before adding richer behavior.
- Local Data Explorer Practice
Learn asynchronous loading and recovery with a small dataset served by your own development project.
- Local Bookmark API Workshop
Connect a small browser interface to a local server and persistent records without adding accounts or public hosting.
Watch it. Then build it.
Start with a worked example, then connect the recording to your own small, checkable build. Videos open on their creator’s or publisher’s website.
Read Vibe Bro’s written lesson briefing ↗
Beginner · Video course · About 4 hours
Learn HTML – Full Tutorial for Beginners
freeCodeCamp · Dave Gray
Learn the structure of a web page through headings, lists, links, semantic elements, forms, and a small project.
For step 2: Build an accessible local directory
Before watching: No prior web development required. Stack: HTML in a text editor and browser.
Watch, then tryBuild the directory's reading order and labeled controls first. Check what each element means before adding decorative styling.
This teaches HTML structure. Use the path's CSS and accessibility documentation when adding responsive layout, filtering, and the project's full keyboard checks.
Watch course ↗ · Practice: Accessible Resource Directory Starter
Publisher’s course details · checked October 28, 2026
Next step · Video course · About 8 hours
Node.js and Express.js - Full Course
freeCodeCamp · John Smilga
Move from browser-only code to a local JavaScript server, HTTP requests, JSON responses, and route handlers.
For step 4: Connect the interface to persistent server data
Before watching: Comfortable with JavaScript functions, objects, and basic asynchronous code. Stack: Node.js and Express; a local development setup is needed to practice.
Watch, then tryFocus on browser versus server, the request–response cycle, JSON, and GET/POST/PUT/DELETE routes. Trace one bookmark request through its handler.
Recorded in 2021. Check current Node and Express docs for setup differences; keep this exercise local and single user while adding our explicit validation and persistence checks.
Watch course ↗ · Practice: Local Bookmark API Workshop
Publisher’s course details · checked October 28, 2026
Video links selected . Selection checks cover publisher metadata and topic fit.
The docs behind it
These references explain the underlying concepts and APIs. The prompt templates and project plans are original examples to adapt to your own setup.
- MDN — Semantic HTML and accessibility
- MDN — Using Fetch and handling responses
- Express — Routing HTTP operations
Documentation links checked .
Editorial review · October 28, 2026
Supported: Original learning sequence; projects were not executed and educational outcomes were not measured. The freeCodeCamp publisher pages confirm Dave Gray's HTML course, John Smilga's Node/Express course, approximate 4/8-hour lengths, and covered topics. Next-step JavaScript prerequisites and current-setup warning fit the material. Metadata/topic review only; no video playback.