Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING BASH RUST

Web Development Project: My First Website


Build a Simple Multi-Page Website

Time to put everything together! You'll build a small, three-page website using only HTML features you've learned.

Tip: You can do this in your own folder (local), in W3Schools Spaces, or using the Try It Yourself Editor for each step.

When you finish the project, your page will look like this. In the next section, you'll learn how to make it look even better using CSS.

https://my-fantastic-website.w3spaces.com/

1. Project Structure

Example

Create a folder with three HTML files and an image folder:

my-fantastic-website/
  index.html
  about.html
  contact.html
  images/
    profile.jpg

We'll build a shared header and footer on each page, simple navigation links, and unique content per page.


2. Shared Layout (Header, Nav, Main, Footer)

Start with index.html. Use semantic tags and add appropriate content:

Example

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>My Website</title>
</head>
<body>

<!-- Site Header -->
<header style="background:lightblue; padding:20px;">
  <h1>My Website</h1>
  <nav>
    <a href="index.html">Home</a> |
    <a href="about.html">About</a> |
    <a href="contact.html">Contact</a>
  </nav>
</header>

<!-- Page Content -->
<main style="padding:20px;">
  <!-- Unique content goes here -->
</main>

<!-- Footer -->
<footer style="background:lightblue; padding:20px; text-align:center;">
  <p>Copyright 2025 My Website</p>
</footer>

</body>
</html>
Try it Yourself »

Note: We're using small inline styles so you don't need CSS yet. You'll improve this with real CSS soon.


3. Home Page Content

Add a hero heading, a short intro paragraph, a profile image, and a quick list of highlights:

Example

Insert inside <main> of index.html:

<section>
  <h2 id="welcome">Welcome</h2>
  <p>Hi! This is my first website, built with HTML.</p>
  <img src="/images/profile.jpg" alt="Picture of me" width="200" height="200">
</section>

<section>
  <h2 id="highlights">Highlights</h2>
  <p>I am practicing:</p>
  <ul>
    <li>Clean semantic structure</li>
    <li>Simple navigation and footer</li>
    <li><strong>Cant wait to use CSS to make this page really beautiful!</strong></li>
  </ul>
</section>
Try it Yourself »

4. A Small Table

Create a simple table:

Example

Add this after your highlights section on index.html:

<section>
  <h2 id="skills">Skills</h2>
  <table border="1" cellpadding="8" style="border-collapse: collapse;">
    <tr>
      <th>Skill</th>
      <th>Level</th>
    </tr>
    <tr>
      <td>HTML</td>
      <td>Beginner</td>
    </tr> 
    <tr>
      <td>CSS</td>
      <td>Next up!</td>
    </tr>
    <tr>
      <td>JavaScript</td>
      <td>Coming soon</td>
    </tr>
  </table>
</section>
Try it Yourself »

5. About Page

Next, create a new HTML file named about.html.
Reuse the same header and footer, and add new content inside the <main> element.

Example

about.html (only the <main> part shown):

<main style="padding:20px;">
  <article>
    <h2>About Me</h2>
    <div style="background:lightgrey; padding:20px">
      <img src="/images/profile.jpg" alt="Picture of me" width="100" height="100">
      <p>I'm learning web development. I like <strong>simple</strong> pages and clear content.</p>
      <p>This project uses headings, lists, tables, and forms.</p>
      <p>However, cant wait to learn CSS to make this page smashing!</p>
    </div>
  </article>
</main>
Try it Yourself »

6. Contact Page

Finally, let's add a contact page. Create a new file called contact.html.
Add a simple form with labels and name attributes for each input field. This makes sure every field can send its data correctly when the form is submitted.

Note: At this point, the form won't actually send data anywhere. You'll learn how to process form submissions later, using PHP.

Example

contact.html (only the <main> part shown):

<main style="padding:16px;">
  <h2>Contact Me</h2>
  <form action="/action_page.php" method="post">
    <label for="name">Name</label><br>
    <input id="name" name="name" required><br><br>
    <label for="email">Email</label><br>
    <input id="email" name="email" type="email" required><br><br>
    <label for="msg">Message</label><br>
    <textarea id="msg" name="message" rows="4" cols="40"></textarea><br><br>
    <input type="submit" value="Send">
  </form>
</main>
Try it Yourself »

7. Publish with W3Schools Spaces

When your three pages are ready, you can easily publish your website online using W3Schools Spaces.

How to Publish

  1. Go to W3Schools Spaces.
  2. Create a new Space and choose Start from Scratch.
  3. Upload your three HTML files and your images/ folder.
  4. Click Run, and your website will get a live link like username.w3spaces.com.

Here is a link to the page we created today: my-fantastic-website.w3spaces.com/

Below, you can see how Spaces looks in action, and view the final result in the Website tab.

Spaces Preview
The Website
Tab Image

Congratulations! You've built and published your first real website using only HTML!

In the next chapter, you'll learn how to make your site look great with CSS - colors, layout, spacing, and more.

Next » CSS Introduction


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.