DEV Community

Techora
Techora

Posted on

Build a Real Website Before You Learn Another Framework

Here's a challenge for anyone currently learning web development:

For the next project, don't build a todo app.

Don't build another calculator.

Don't start another "Netflix clone."

Build something a real Nigerian small business could actually use.

For example:

A simple website for a local restaurant.

The goal isn't to create a production-scale application.

The goal is to practice the complete development workflow:

Plan → Build → Test → Debug → Deploy.

That workflow is far more valuable than simply finishing another tutorial.

TEKHUB's(https://tekhub.ng/) current web-development training follows a similarly practical direction, with full-stack, frontend, and backend tracks based in Awka.

You can learn more here:

Project Brief

Build a responsive website for:

Mama's Kitchen—a fictional Nigerian restaurant.

Required pages/sections

  • Home
  • About
  • Menu
  • Services
  • Contact
  • Location

Functional requirements

Your site should:

  • Work on mobile
  • Have responsive navigation
  • Contain a contact form
  • Include clear calls to action.
  • Use semantic HTML
  • Have accessible form labels
  • Load reasonably quickly

Step 1 — Plan Before Coding

Write down the pages first.

Then sketch the layout.

For example:

Header
 ├── Logo
 ├── Home
 ├── About
 ├── Menu
 └── Contact

Hero
 ├── Heading
 ├── Description
 └── CTA

Menu
 ├── Breakfast
 ├── Main dishes
 └── Drinks

About

Contact

Footer

Enter fullscreen mode Exit fullscreen mode

This takes a few minutes.
It can save you from randomly creating files and components later.

Step 2 — Build the HTML

Don't worry about making it beautiful yet.
Focus on structure.

<header>
  <nav>
    <a href="/">Mama's Kitchen</a>
    <a href="#menu">Menu</a>
    <a href="#contact">Contact</a>
  </nav>
</header>

<main>
  <section id="hero">
    <h1>Good Food. Made Fresh.</h1>
    <p>Local meals prepared with care.</p>
  </section>

  <section id="menu">
    <h2>Our Menu</h2>
  </section>

  <section id="contact">
    <h2>Contact Us</h2>
  </section>
</main>
Enter fullscreen mode Exit fullscreen mode

Ask yourself:

Can I explain what each element is doing?

If yes, continue.
If no, stop and learn that part.

Step 3 — Make It Responsive

Now use CSS.

Your first test should be:

Open the browser.

Resize it.

Then open DevTools.

Test:

  • Desktop
  • Tablet
  • Mobile

Look for:

  • Horizontal scrolling
  • Text that becomes too small
  • Buttons that are difficult to tap
  • Images overflowing
  • Navigation breaking

This is where you learn that "responsive design" isn't just a phrase on a course outline.

Step 4 — Add JavaScript

Now introduce behaviour.
For example, mobile navigation.

const menuButton = document.querySelector("#menuButton");
const navigation = document.querySelector("#navigation");

menuButton.addEventListener("click", () => {
  navigation.classList.toggle("open");
});
Enter fullscreen mode Exit fullscreen mode

But don't just paste this.

Answer these questions:

  1. What does querySelector() return?
  2. What is an event listener?
  3. What does toggle() do?
  4. What happens if the element doesn't exist? If you can't answer them, investigate.

Step 5 — Add Form Validation

Now your contact form becomes a learning exercise.

Test:

  • Empty name
  • Invalid email
  • Empty message
  • Valid submission

You should give the user useful feedback.
This is much better practice than simply creating a form that looks nice.

Step 6 — Use Git

Create your repository.
Then commit meaningful changes.

For example:

Initial website structure
Add responsive navigation.
Create a menu section.
Add contact form validation.
Fix mobile layout.
Prepare the production build.
Enter fullscreen mode Exit fullscreen mode

Your commit history should tell the story of the project.

Step 7 — Deploy

This is where many beginner projects stop.
Don't stop there.
Put the project online.

Now you can:

  • Test it outside your computer
  • Send someone the link
  • Collect feedback
  • Find bugs
  • Improve it

The project has become real.

Bonus Challenge: Add an API

Once the basic version works, add something external.

For example:

  • Currency conversion
  • Maps
  • Weather
  • Menu data
  • Booking availability

Now you're learning how applications communicate with external services.
That's a natural reason to learn APIs.

Where Should AI Fit?

Use AI as a development assistant.

Good questions:

"Explain this JavaScript error."

"Why isn't my CSS grid behaving as expected?"

"Review this function and point out possible edge cases."

"Give me three approaches and explain the trade-offs."

Less useful:

"Build my entire project."

The second approach can produce a working result without necessarily producing a stronger developer.

The point of the project is to increase your understanding.

The Bigger Lesson

Don't confuse:

course completion with skill development

A course can give you structure.

A project forces you to think.

Debugging forces you to understand.

Deployment forces you to finish.

Feedback forces you to improve.

That's the complete loop.

If You're Choosing a Web Development Course

Look beyond the course title.

Ask:

  • What will I build?
  • How much practical work is involved?
  • Will an instructor review my work?
  • Will I learn Git/GitHub?
  • Will I learn APIs?
  • Will I learn deployment?
  • Can I ask questions when I'm stuck?
  • Will I leave with demonstrable projects?

TEKHUB (https://tekhub.ng/) currently offers web-development options ranging from Web Interface Engineering to full-stack and backend-focused paths, with its training based in Awka.

Now close the tutorial.

Open your editor.

Build something that solves a small problem.

Then break it.

Then fix it.

That's where the real learning begins.

Top comments (0)