Chapter 10 of 10
You've learned the building blocks. Now you'll put them together to build a complete, realistic web page โ a personal profile page that shows everything HTML can do.
A personal profile page with: a header with navigation, a hero section with your name and role, an about section, a skills list, a projects table, a contact form, and a footer. This is structurally identical to what you'd build for a real portfolio.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Nelson Njihia โ Developer</title>
</head>
<body>
<header>
<nav>
<a href="#about">About</a>
<a href="#skills">Skills</a>
<a href="#projects">Projects</a>
<a href="#contact">Contact</a>
</nav>
</header>
<main>
<!-- Hero -->
<section>
<h1>Nelson Njihia</h1>
<p>Software Engineer ยท Building real systems that solve real problems.</p>
<a href="#contact">Get in touch</a>
<a href="#projects">See my work</a>
</section>
<!-- About -->
<section id="about">
<h2>About Me</h2>
<p>
I'm a software engineer and founder of NelsonLabs โ a free coding
education platform. I build data-driven systems, automation tools, and
AI-powered applications in production.
</p>
<p>
I believe in understanding code from first principles, not just
copying patterns that other people created.
</p>
</section>
<!-- Skills -->
<section id="skills">
<h2>Skills</h2>
<ul>
<li>JavaScript / TypeScript</li>
<li>Python</li>
<li>React & Next.js</li>
<li>Node.js</li>
<li>SQL & NoSQL databases</li>
<li>Machine learning basics</li>
</ul>
</section>
<!-- Projects -->
<section id="projects">
<h2>Projects</h2>
<table>
<thead>
<tr>
<th>Project</th>
<th>Tech</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#">NelsonLabs</a></td>
<td>Next.js, Tailwind</td>
<td>Free developer education platform</td>
</tr>
<tr>
<td><a href="#">Data Pipeline</a></td>
<td>Python, PostgreSQL</td>
<td>Internal business analytics tool</td>
</tr>
</tbody>
</table>
</section>
<!-- Contact -->
<section id="contact">
<h2>Get in Touch</h2>
<form action="/contact" method="POST">
<label for="name">Your Name</label>
<input type="text" id="name" name="name" required />
<label for="email">Email</label>
<input type="email" id="email" name="email" required />
<label for="message">Message</label>
<textarea id="message" name="message" rows="5" required></textarea>
<button type="submit">Send Message</button>
</form>
</section>
</main>
<footer>
<p>© 2025 Nelson Njihia. Built with HTML.</p>
</footer>
</body>
</html>TIP
Next step: add CSS. This page is fully structured and accessible โ but it's unstyled. Open it in a browser and it will work. The next course, CSS Styling, will teach you how to transform this into a beautiful, responsive, modern-looking profile page.