Front-End Web Development
Build websites that look right on every screen, then put them online for real. Fifteen modules, from your very first tag to a site with your name on it.
- 15 modules, 119 lessons
- About 140 hours
- 15 projects and a capstone
- Module 1 is free
Aligned to the MDN Curriculum and SFIA 9 · Lessons save for offline
By the end, you’ll be able to
- Build semantic, accessible web pages that meet WCAG 2.2 AA.
- Lay out responsive interfaces with Flexbox and Grid that work from 320 px phones to wide desktops.
- Write JavaScript that responds to users and fetches live data from REST APIs.
- Use the terminal, Git and GitHub to version, collaborate on and publish code.
- Set up a modern project with npm, Vite, Prettier and ESLint.
- Test, optimise and deploy a site to production, on your own domain.
- Use AI assistants critically: ask good questions, check the answers and never ship code you can't explain.
- Present a portfolio of at least six projects hosted under your own name.
The syllabus
Tap a module to see its lessons
1How the web works6 lessons · about 1 hourFree
What really happens between tapping a link and seeing a page.
- What happens when you open a website
- URLs, domains and DNS
- Requests, responses and status codes
- HTML, CSS and JavaScript: who does what
- Your first web page
- Reading MDN, the developer's dictionary
Project: An "About me" page, built in the browser
2HTML: structure and meaning10 lessonsPro
Structure content so browsers, search engines and screen readers all understand it.
- Elements, tags and attributes
- Headings, paragraphs and lists
- Links and file paths
- Images and alt text
- Page structure: header, nav, main, footer
- Sections and articles
- Tables, used properly
- Forms: inputs, labels and buttons
- Built-in form validation
- The head: titles, meta tags and link previews
Project: A menu page for a local restaurant
3Your toolkit and your first live site9 lessonsPro
VS Code, the terminal, Git and GitHub, then put your first site live.
- Files, folders and paths
- Setting up VS Code
- No laptop yet? Free cloud editors
- The terminal in 15 minutes
- Git basics: init, add, commit
- GitHub: push your code
- Publish with GitHub Pages
- Browser DevTools
- AI assistants: ask, check, understand
Project: The menu page, live on the web, with a README
4CSS fundamentals10 lessonsPro
Selectors, the cascade and the box model, and how to debug them in DevTools.
- Connecting CSS to HTML
- Selectors
- The cascade and specificity
- Inheritance
- Colour and contrast
- Units: px, rem, %, vw
- The box model
- Block and inline
- Custom properties
- Debugging CSS in DevTools
Project: Style the restaurant menu
5Typography, images and icons6 lessonsPro
Readable type, fast web fonts, responsive images and SVG icons.
- Web fonts that load fast
- Type scales and readable text
- Spacing systems
- Responsive images and modern formats
- SVG icons
- Backgrounds, borders and shadows
Project: A magazine-style article page
6Flexbox7 lessonsPro
Line things up in a row or a column, then spread them out or centre them.
- Normal flow
- Flex containers, main and cross axis
- justify-content
- Aligning items with Flexbox
- Wrapping and gap
- grow, shrink and basis
- Patterns: navbars, cards, footers, centring
Project: A navigation bar and card section
7Grid and responsive design8 lessonsPro
Two-dimensional layouts that adapt from small phones to wide screens.
- Rows, columns and fr
- Placing items and naming areas
- auto-fit and minmax
- Mobile-first and media queries
- Container queries
- Positioning and z-index
- Transitions, animation and reduced motion
- Testing on real phones
Project: A responsive landing page for a local business
8JavaScript fundamentals10 lessonsPro
Variables, functions, loops, arrays and objects, and how to debug them.
- What JavaScript does, and the console
- let and const
- Strings, numbers and booleans
- Comparisons and conditions
- Functions
- Arrays
- Loops
- Objects
- Template literals and string methods
- Debugging with breakpoints
Project: A bill splitter
9Thinking in JavaScript7 lessonsPro
Break problems into steps, and use array methods, errors and modules.
- Breaking problems into steps
- Scope
- map, filter and find
- reduce
- Errors and try…catch
- Modules: import and export
- Reading other people's code
Project: A budget tracker's logic, with tests
10The DOM and events9 lessonsPro
Make pages respond to taps, typing and forms.
- What the DOM is
- Selecting elements
- Changing text, classes and attributes
- Creating and removing elements
- Click, input and submit events
- Event delegation
- Form validation with JavaScript
- Saving data with localStorage
- Focus and keyboard support
Project: An interactive quiz
11Data and APIs: fetch, JSON and EmailJS9 lessonsPro
Pull live data into your pages, handle slow and broken cases, and send a form.
- JSON
- How APIs work
- Promises and async/await
- Fetching data
- Loading, empty and error states
- Sending data with POST
- Contact forms with EmailJS
- API keys: what's safe in front-end code
- Debugging network requests
Project: A currency or weather dashboard with a working contact form
12Git for teams and modern tooling9 lessonsPro
Branches and pull requests, then npm, Vite, Prettier and ESLint.
- Branches
- Merging and conflicts
- Pull requests and code review
- Good commits and .gitignore
- Node and npm
- package.json and scripts
- Vite
- Prettier and ESLint
- Using a library from npm
Project: Move the dashboard to Vite through a pull request
13Accessibility6 lessonsPro
Audit and fix pages against WCAG 2.2 AA, with a screen reader and a keyboard.
- Who accessibility is for
- Keyboard and focus
- Screen readers: TalkBack and NVDA
- Contrast and colour
- Accessible forms and errors
- Automated audits: axe and Lighthouse
Project: An accessibility audit and fix of an earlier project
14Design for developers5 lessonsPro
Hierarchy, spacing and colour, and how to build from a Figma file.
- Visual hierarchy
- Alignment, spacing and consistency
- Reading a Figma file
- Exporting assets
- Building a design faithfully
Project: Build a page from a Figma design
15Ship it: performance, SEO and real clients8 lessonsPro
Core Web Vitals, SEO, your own domain, and working with a client.
- Lighthouse and Core Web Vitals
- Faster images and fonts
- SEO basics
- Deploying to Netlify from GitHub
- Custom domains and HTTPS
- Netlify forms and redirects
- A first automated test
- Working with a client: brief, scope, handover
Project: Deploy a site with a Lighthouse score of 90+
Some of what you’ll build
Module 2
A menu page for a local restaurant
Module 7
A responsive landing page for a local business
Module 11
A currency or weather dashboard with a working contact form