1. The Three Pillars of the Web
Every website ever built uses the same three technologies. Think of them as the bones, skin, and muscles of a web page:
HTML — Structure
The skeleton. Defines headings, paragraphs, links, images, buttons. Pure content, no style.
CSS — Style
The skin. Controls colours, fonts, layout, spacing, animations. Makes it look good.
JavaScript — Behaviour
The muscles. Responds to clicks, fetches data, updates the page dynamically. Makes it do things.
You can build a complete, useful website with just HTML and CSS. Add JavaScript only when you need interactivity.
2. Your First HTML Page
Create a file called index.html, paste this in, and open it in your browser:
That's it. A complete, valid webpage. Everything else is built on top of this structure.
3. CSS Basics
- Selectors target HTML elements:
h1 { }targets all<h1>tags,.my-class { }targets elements with that class,#my-id { }targets a specific element. - The Box Model — every element is a box: content → padding → border → margin. Understanding this resolves most layout confusion.
- Flexbox — add
display: flex;to a container and its children line up in a row. Addgap,justify-content, andalign-itemsto control spacing and alignment. This handles 80% of layout needs. - Colors: hex (
#1565c0), rgb (rgb(21, 101, 192)), or named (cornflowerblue). Fonts: link a Google Font in<head>and apply withfont-family.
4. JavaScript Essentials
This 15-line example touches the most important JS concepts for beginners:
The three things to understand: variables (store data), functions (reusable logic), DOM manipulation (talk to the HTML page).
5. Tools You Actually Need
- VS Code — the free code editor that dominates web development. Extensions for every language, great Git integration, live preview extensions available.
- Browser DevTools (F12) — inspect HTML, debug JavaScript, profile performance. Built into Chrome, Firefox, Edge, and Safari. Learn this early.
- Git + GitHub — version control and free code hosting. See the Programming Guide for an intro. Also doubles as a deployment platform.
6. Hosting for Free
🛠️ GitHub Pages
Push your HTML/CSS/JS to a GitHub repo and enable Pages. Your site lives at username.github.io/repo. Free, simple, no build step needed for static sites.
☁️ Netlify
Drag-and-drop your folder or connect a GitHub repo. Automatic deploys on push. Free tier is generous. Supports custom domains and HTTPS.
△ Vercel
Designed for React/Next.js but works great for static sites too. Fast CDN, easy custom domains, free tier for personal projects.
☁ Cloudflare Pages
Unlimited requests on free tier, global CDN, very fast. Connect a GitHub/GitLab repo and it deploys automatically on every push.
Recommendation for beginners: Start with GitHub Pages — it teaches you Git at the same time.
7. Modern Web Stack Options
📋 Vanilla (HTML/CSS/JS)
No frameworks. Fastest to learn, works everywhere, no build tools. Perfect for first projects and simple sites. Start here.
⚛️ React
JavaScript UI library from Meta. Component-based. Most popular framework in the industry. Learn after you know vanilla JS well.
🐄 Vue
Gentler learning curve than React. Great documentation. A solid choice once you're comfortable with HTML/CSS/JS basics.
8. Free Learning Resources
- MDN Web Docs — the definitive HTML, CSS, and JavaScript reference. More accurate and complete than any other source.
- freeCodeCamp — full web dev curriculum from HTML to React. Certifications included.
- The Odin Project — project-based full-stack curriculum. Highly respected, 100% free, actively maintained.
- CSS-Tricks — deep dives on CSS concepts, Flexbox, Grid, and modern techniques. Great for intermediate learners.
- Flexbox Froggy — a game that teaches CSS Flexbox interactively. 28 levels, takes under an hour, genuinely effective.
- Grid Garden — same idea, teaches CSS Grid. Play both.
9. Build This First — Personal Portfolio Page
A personal portfolio is the best first project: it's genuinely useful, teaches real skills, and gives you something to show employers or clients. Here's the outline:
Download a clean HTML/CSS portfolio template and a Flexbox/Grid cheat sheet from our Gumroad shop.