This free guide walks you through everything from opening Notepad to uploading a live website — using only free tools already on your computer. No subscriptions, no drag-and-drop builders, no experience required.
HTML stands for HyperText Markup Language. It's the skeleton of every webpage on the internet — it tells your browser what content to show and how to organize it. When you visit a website, your browser is reading an HTML file and drawing what it says on screen.
HTML uses tags — short codes wrapped in angle brackets like <h1> and <p> — to mark up your content. Most tags come in pairs: an opening tag and a closing tag with a slash.
You only need two things: a text editor and a browser. On Windows, Notepad is already installed. On Mac, use TextEdit (set it to plain text mode under Format → Make Plain Text).
my-website.index.html inside your my-website folder. Important: make sure the filename ends in .html, not .txt.<head> holds invisible information — the title that appears on your browser tab, links to stylesheets, etc. The <body> holds everything visible on the page.
my-website folderindex.html
Now that you know the basics, let's build a real homepage. You'll add a navigation bar, a hero section with your name and a photo, and a short about blurb. Keep editing your index.html file.
A good homepage answers three questions immediately: Who are you? What do you do? How do I contact you? Add a heading with your name, a short description, and links to your other pages.
Save a photo into your my-website folder and reference it with the <img> tag. The src attribute points to the file name, and alt is a text description for screen readers and search engines. Always include alt text.
my-photo.jpg not My Photo.JPG. Spaces and capital letters cause broken image links when you go live.
<nav> bar with links to other pagesalt attributeCSS stands for Cascading Style Sheets. While HTML gives your page structure, CSS gives it style — colors, fonts, spacing, layout, borders, and everything visual. Without CSS, a webpage is plain black text on a white background.
You write CSS in a separate file called style.css (or any name ending in .css), then link it from your HTML page inside the <head> tag.
CSS supports colors in several formats. The most common are hex codes like #2563eb (a blue), named colors like red or navy, and RGB like rgb(37, 99, 235). You can find any color's hex code by searching "color picker" in Google.
Every HTML element is a box. You control the space around and inside it with four properties:
padding — space inside the box, between content and borderborder — the line around the boxmargin — space outside the box, between it and other elementswidth / height — the size of the box itselfThe most practical CSS skill for beginners is Flexbox. Add display: flex to a container and its children line up horizontally.
style.css file in your project folder<link rel="stylesheet" href="style.css">padding and margin to add some breathing room
A real website has more than one page. Create new HTML files in the same folder and link between them with <a href="..."> tags. Links are relative — about.html means "a file called about.html in the same folder."
index.html structure (doctype, head, body).<title> to "About Me".<body>.about.html in the same folder as index.html.Your folder should now look like this:
<link rel="stylesheet" href="style.css"> in the <head> of every page. They'll all share the same look, and updating one CSS file updates every page at once.
Contact pages are often the most important page — it's how people reach you. Use the <form> tag to collect information, or simply list your email with a mailto: link:
Want a real contact form with fields? Use the Form Generator — click a field type, configure it, and copy the HTML straight into your contact.html page.
about.html and contact.html<nav> to every pageRight now your website only works on your own computer. To make it available to anyone on the internet, you need a web server — a computer that's always on and connected to the internet. Companies that rent space on these servers are called web hosts.
When you host a website, you're essentially renting a folder on someone else's server. You upload your HTML, CSS, and image files to that folder, and the hosting company makes them accessible at a web address (URL).
The easiest way to get live right now is to use the StartingSites site editor. Sign up for a free account and you get a live URL at yourname.startingsites.com — no FTP, no uploads. Just paste your HTML into the editor and click Save.
Most web hosts give you an FTP (File Transfer Protocol) address to connect and upload files. You need a free FTP program — FileZilla (filezilla-project.org) is the most popular option and works on Windows and Mac.
public_html or www folder — that's where your site goes.my-website folder on your computer.index.html. Web servers automatically serve a file named index.html when someone visits your domain. Any other name won't work as a homepage.
GitHub Pages lets you host a static website for free from a GitHub repository. It's a great next step once you've mastered the basics and want to learn version control. Search "GitHub Pages tutorial" for step-by-step instructions.
Sign up for StartingSites and get a live URL at yourname.startingsites.com instantly — no FTP, no setup, no credit card.
🚀 Get My Free Site