First 2 lessons free — no card needed

Learn to build
real websites.

HTML, CSS and JavaScript from zero. 34 lessons, 4 real projects, and your own site live on the internet. No experience needed.

34
Lessons, HTML to JavaScript
4
Real projects to show off
0
Experience needed
Your site, live on the internet

Free hosting with GitHub Pages, on your own domain.

Three modules.
Four real projects.

Every lesson teaches one topic properly, with examples, a hands-on build, a quiz and a challenge to lock it in. Every module ends with a real project and a test.

Module 1 · 7 lessons

HTML

Structure: everything a page is made of.

  1. 01Your First HTML PageFree
  2. 02Text, Headings & LinksFree
  3. 03Lists, Tables & Semantic HTML
  4. 04Images, Media & File Paths
  5. 05Forms & Inputs
  6. 06Accessibility & SEO Basics
  7. 07A Multi-Page WebsiteProject
Module 2 · 12 lessons

CSS

Design: make it look exactly the way you want.

  1. 08CSS Basics: Selectors & the Cascade
  2. 09Colors, Units & Typography
  3. 10The Box Model in Depth
  4. 11Positioning & Layers
  5. 12Flexbox in Depth
  6. 13CSS Grid
  7. 14Responsive & Mobile-First Design
  8. 15Pseudo-classes, Pseudo-elements & Specificity
  9. 16CSS Variables & Theming
  10. 17Transitions, Transforms & Animations
  11. 18A Landing Page for a Local BusinessProject
  12. 19Git, GitHub & Going Live
Module 3 · 15 lessons

JavaScript

Behavior: make it do things.

  1. 20JavaScript Basics: Variables, Types & Operators
  2. 21Conditionals & Logic
  3. 22Functions & Scope
  4. 23Arrays & Array Methods
  5. 24Objects & JSON
  6. 25Loops
  7. 26The DOM
  8. 27Events
  9. 28Forms & Validation with JavaScript
  10. 29Saving Data with localStorage
  11. 30Fetch & APIs
  12. 31async/await & Error Handling
  13. 32Debugging with DevTools
  14. 33A To-Do AppProject
  15. 34Final Interactive PortfolioProject

Real projects.
Not tutorial exercises.

  • A 3-page personal website with dark mode, live weather and a working contact form
  • A responsive landing page for a local business, the kind businesses pay for
  • A to-do app that saves your tasks, built the way real apps are
  • Your own site live on the internet, pushed with Git to GitHub
  • The skills to keep building: HTML, CSS, JavaScript, APIs and Git
<!-- Your first HTML -->
<html>
  <head>
    <title>My Website</title>
  </head>
  <body>
    <h1>Hello, world.</h1>
    <p>I built this.</p>
  </body>
</html>

Start free.
Finish for $97.

The first two lessons are free with an account, no card needed. When you're ready, unlock all 34 lessons with one payment. No subscription.

Free
$0
Lessons 1–2 · No card needed
  • Your first HTML page
  • Text, headings & links
  • Progress saved to your account
EB

Esdras Buelvas

Web developer · Teacher · Builder

I've been building websites with HTML, CSS and JavaScript for years, and I know exactly where beginners get lost — because I was one. This course is the guide I wish I had when I started. No jargon. No filler. Just the stuff that actually matters, taught in a way that sticks.

Lesson 01 — Free Lesson ~15 min · Video coming soon

Your First HTML Page

Today you write your first line of code. By the end of this lesson you'll have a real HTML file open in your browser, written entirely by you, from scratch.

🎬 Video coming soon...

What is HTML?

HTML stands for HyperText Markup Language. Every website in the world is built with it. When you open Google, YouTube or any news site, your browser is reading HTML and turning it into what you see on screen.

HTML isn't a programming language. There's no math and no logic. You write your content and wrap it in tags that tell the browser what each piece is: this is a heading, this is a paragraph, this is a link.

💡

Think of it this way: HTML is the skeleton of a website. It says what's there. CSS (Module 2) is the skin and clothes: how it looks. JavaScript (Module 3) is the muscles: what it does.

Set up your tools

You need two free things: a code editor and a browser. You already have a browser.

  1. Download VS Code from code.visualstudio.com and install it
  2. Make a new folder on your computer called my-site
  3. In VS Code, click File → Open Folder and pick my-site
  4. Click the new-file icon and name the file index.html
✓

Why index.html? When someone visits a website, the browser looks for a file called index.html first. It's the front door of every site.

The structure of every HTML page

Every HTML page starts with the same skeleton. Type this into index.html:

index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>My First Website</title>
</head>
<body>
  <!-- Your content goes here -->
</body>
</html>
  • <!DOCTYPE html> tells the browser this is modern HTML. It always goes on line 1.
  • <html lang="en"> wraps the whole page. lang="en" says it's in English.
  • <head> holds information about the page, like the title in the browser tab. Visitors don't see it on the page.
  • <body> holds everything visitors actually see.
✓

Rule to remember: most tags come in pairs. <body> opens, </body> closes. The slash means "closing". Everything between them is inside that element.

The tags you need today

TagWhat it doesExample
<h1>Main heading, the biggest title on the page<h1>Hello</h1>
<p>A paragraph of text<p>I am learning HTML.</p>
<strong>Important text (shows bold)<strong>Important</strong>
<em>Emphasis (shows italic)<em>really</em>
<br>Line break. No closing tagLine one<br>Line two
<hr>A divider line. No closing tag<hr>
<!-- -->A comment. Invisible on the page<!-- note -->
⚠

Heads up: <br> and <hr> are empty elements. They have nothing inside them, so they don't need a closing tag.

Write your first page

Replace the comment in your body with real content. Type it, don't paste it. Your hands learning the structure is part of the lesson.

index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>My First Page</title>
</head>
<body>
  <h1>Hello, my name is Esdras.</h1>
  <p>I am learning to build websites.</p>
  <p>This is my <strong>first page</strong> and I built it from scratch.</p>
  <hr>
  <p>Why am I learning? Because I want to build things <em>by myself.</em></p>
</body>
</html>

Save with Ctrl+S (Cmd+S on Mac). Then find index.html in your folder and double-click it. It opens in your browser. That's a real web page, and it's yours.

✓

Install Live Server. In VS Code, click the Extensions icon, search Live Server and install it. Then right-click index.html → Open with Live Server. Now the browser refreshes by itself every time you save. You'll use this for the whole course.

Quick quiz

4 questions to check you've got it. Pick an answer to see if you're right.

1Which file does a browser look for first when someone visits a website?

2What goes inside the <head>?

3Which tag does NOT need a closing tag?

4What does <!-- note --> do?

Lesson 1 Challenge

Make it yours.

Don't move on until you've done all of these. They take 10–15 minutes and lock in everything you just learned.

  • Change the <h1> to your own name
  • Add a third <p> with something true about yourself
  • Use <strong> and <em> at least once each
  • Change the <title> and watch the browser tab update
  • Add a comment that only you can see
  • Delete a closing tag on purpose and see what the browser does
Up next — Lesson 2
Text, Headings & Links
Lesson 02 — Free Lesson ~18 min · Video coming soon

Text, Headings & Links

A page with one heading isn't much of a website. Today you learn how to organize text with headings, and how links connect your page to the rest of the internet, and to other pages of your own.

🎬 Video coming soon...

Headings: h1 to h6

HTML has six heading levels, from <h1> (most important) to <h6> (least important). They work like the outline of an essay:

index.html
<h1>Esdras Buelvas</h1> <!-- the page title: only one per page -->
<h2>About me</h2> <!-- a main section -->
<h3>Where I'm from</h3> <!-- a part of that section -->
<h2>My projects</h2> <!-- the next main section -->
⚠

Don't pick headings by size. Pick them by importance. If you want a heading smaller, you'll change that with CSS later. Skipping levels (h1 straight to h4) confuses screen readers and Google.

Absolute vs relative links

An absolute link includes everything: https://github.com/dras8u. It works from anywhere.

A relative link is relative to where the current file is. projects.html means "the file called projects.html in the same folder as this page". You'll learn more about paths in Lesson 4.

💡

Rule of thumb: other people's websites get absolute links. Your own pages get relative links, so your site still works after you move it online.

Build a navigation bar

A navigation bar is just a list of links, wrapped in a <nav> tag that tells browsers "this is navigation". Add this at the top of your body:

index.html
<nav>
  <a href="index.html">Home</a>
  <a href="#about">About</a>
  <a href="mailto:you@example.com">Contact</a>
</nav>

Right now it's a plain row of blue links. That's normal. In Module 2 you'll turn it into a real navigation bar. Today is about getting the structure right.

Put it together

Update your index.html body so it has a nav, a clear heading structure, and links:

index.html
<body>
  <nav>
    <a href="index.html">Home</a>
    <a href="#about">About</a>
    <a href="mailto:you@example.com">Contact</a>
  </nav>

  <h1>Hi, I'm Esdras.</h1>
  <p>I'm learning to build websites from scratch.</p>

  <h2 id="about">About me</h2>
  <p>I started with zero experience. Now I'm building my own site.</p>

  <h2>Find me online</h2>
  <p>See my code on <a href="https://github.com" target="_blank">GitHub</a>.</p>
</body>
✓

Test every link. Click each one. The About link should jump down the page, the GitHub link should open a new tab, and the Contact link should try to open your email app.

Quick quiz

4 questions to check you've got it. Pick an answer to see if you're right.

1How many <h1> headings should a page usually have?

2Which link opens in a new tab?

3What does <a href="#about"> do?

4Which is the best link text?

Lesson 2 Challenge

Connect it all.

Do all of these before moving on.

  • Add a section with an <h2> and an id, plus a nav link that jumps to it
  • Add a link to your favorite website that opens in a new tab
  • Change the email link to your real email address
  • Add a "Back to top" link at the bottom that jumps to your <h1>
  • Check that your headings go in order, with no skipped levels
  • Rewrite any "click here" link text so it makes sense on its own
Up next — Lesson 3
Lists, Tables & Semantic HTML
Esdras Buelvas
Certificate of Completion
This certifies that
Student Name
has successfully completed Web Sprint, a 34-lesson course in HTML, CSS and JavaScript — including responsive layouts with Flexbox and Grid, APIs, Git, and building and deploying four real projects.
Date issued
—
Instructor
Esdras Buelvas
esdrasbuelvas.org
HTMLCSSFlexbox & GridResponsive DesignJavaScriptAPIsGit

Share your certificate and show the world what you built. 🚀

?
Your Dashboard