Series Build a Website from Scratch Part 1 of 10

What We're Building &
Setting Up Your Environment

Over the next ten parts, we'll build a complete café website from nothing but empty files. Today, we'll preview the finished product, set up our code editor, and get our very first webpage to appear in a browser.

Welcome to This Series

🎯 Goals for This Part
  • Preview the finished café website we'll build throughout this series
  • Install a code editor (VS Code) and add essential extensions
  • Create a project folder structure and download the image assets
  • Create your first HTML file and display "Hello World" in a browser

Hi there — I'm Kanon Narumiya, creative director at DE:ZIGN. I'm really glad you're here.

I created this series for anyone who wants to build a website but isn't sure where to start. You don't need any prior experience with HTML or CSS. Over ten parts, we'll work through everything step by step, and by the end you'll have built a complete, real website with your own hands.

I taught myself web development while studying at art school. In the beginning, I didn't even know which text editor to use — I just kept searching, getting confused, searching again. So I understand that first-step anxiety really well. That's exactly why I've tried to make every step in this series as clear and friction-free as possible.

You don't need any special talent to write code. All you need is a computer that can type text — and the desire to make something.

Let's See the Finished Product

Before we write a single line of code, let's look at what we're going to build.

👀 Finished Demo
After all ten parts, your site will look like this. Take a moment to browse through it.
View the finished demo →

We're building the website for café SOEL — a fictional modern café with a warm, minimalist aesthetic. It's a single-page site that starts with a hero image, then flows through a concept section, a menu with photos, a gallery, and store information.

If you're thinking "Can I really build something like this?" — the answer is yes. This entire site is built with nothing but HTML and CSS. No frameworks, no complicated programming. We'll add each piece one step at a time, and you'll get there.

The Road Ahead

Here's a quick overview of the ten parts. In Part 1 (that's today) we'll set up our tools. Parts 2 and 3 cover HTML — the structural skeleton of the site. Parts 4 through 7 introduce CSS to handle layout, styling, and design polish. Part 8 tackles SEO, Part 9 covers accessibility and performance, and Part 10 walks you through uploading the site to a real server.

There are also three bonus parts after the main series: CSS animations, a touch of JavaScript for interactivity, and a collection of design customization recipes. Those are for anyone who wants to go further after completing the core ten.

Setting Up Your Code Editor

To build a website, you need an application for writing code — a code editor. We'll be using Visual Studio Code (VS Code for short) throughout this series.

💡 KANON's Tip
There are many code editors out there, but as of 2025, VS Code is by far the most widely used in the web development industry. It's free, works on Windows, Mac, and Linux, and you can customize it with extensions. I use it every day.

Installing VS Code

1

Visit the Official Site

Open https://code.visualstudio.com/ in your browser. You'll see a large blue download button right away.

2

Download and Install

The site automatically detects your operating system. Click the download button, then run the installer and follow the on-screen instructions. On a Mac, open the downloaded .dmg file and drag the VS Code icon into your Applications folder.

3

Launch VS Code

Open VS Code once the installation is complete. If you see a Welcome tab, you're all set. You may be asked to choose a display language on the first launch — either English or your preferred language is fine.

Essential Extensions

VS Code becomes much more powerful with extensions. Here are three that will be especially useful throughout this series.

Installing extensions is simple: click the square icon in the left sidebar (the Extensions view), type the extension name into the search bar, and click "Install."

1

Live Server

This extension lets you preview your HTML file in a browser in real time. Every time you save, the browser refreshes automatically — no manual reloading needed. We'll rely on this throughout the entire series.

2

Prettier - Code Formatter

Prettier automatically tidies up your code — fixing indentation, spacing, and line breaks. It helps you build a habit of writing clean, readable code. After installing, I recommend enabling "Format On Save" so it runs automatically every time you save a file.

3

Auto Rename Tag

When you rename an opening HTML tag, this extension automatically renames the closing tag to match. It's a small thing, but it saves time and prevents mismatched-tag errors that can be tricky to spot.

📌 Remember This
To enable "Format On Save": press Ctrl + , (or Cmd + , on Mac) to open Settings, type "Format On Save" in the search bar, and check the box.

Creating the Project Folder

With the editor ready, let's create a folder to hold all our site files. In web development, we keep HTML, CSS, images, and scripts together in a single folder — often called the "project folder."

1

Create the Main Folder

Anywhere you like — your Desktop, Documents, wherever — create a new folder called cafe-soel. Use lowercase letters, numbers, and hyphens only. Spaces and special characters in folder names can cause problems when you upload to a server later.

2

Create Sub-Folders

Inside cafe-soel, create three folders: css, img, and js. These will hold our CSS stylesheets, image files, and JavaScript files respectively.

📁 Project Folder Structure
cafe-soel/
├── index.html    ← creating today
├── css/
│   └── style.css ← Part 4
├── img/
│   ├── hero.jpg
│   ├── concept.jpg
│   ├── menu-coffee.jpg
│   ├── menu-latte.jpg
│   ├── menu-cake.jpg
│   ├── menu-sandwich.jpg
│   ├── interior-01.jpg
│   ├── interior-02.jpg
│   ├── exterior.jpg
│   ├── logo.png
│   ├── ogp.jpg
│   └── favicon.svg
└── js/
    └── main.js   ← Bonus parts

This is what the final structure will look like. For now, just having the folders is enough — we'll create the files one by one as the series progresses.

3

Open the Folder in VS Code

In VS Code, go to File → Open Folder and select the cafe-soel folder you just created. The Explorer panel on the left should now show your folder contents. You're ready to start working.

⚠️ Common Mistake
Make sure you open the cafe-soel folder itself — not one of the sub-folders like css or img. You should be able to see the entire project structure in the Explorer panel.

Downloading the Image Assets

I've prepared all the images we'll use in this series as a single ZIP download. We won't use them until Part 3, but let's get them into our project folder now so everything is ready.

📦 Image Assets Download
Download the ZIP file from the link below and unzip it. Place all 12 image files into your img folder.
Download image assets →

The ZIP contains hero images, menu photos, interior and exterior shots, the logo, an OGP image, and an SVG favicon — 12 files in total.

You don't need to worry about them yet. As the series progresses, I'll tell you exactly which image to use and when. As long as they're all sitting in the img folder, you're good to go.

💡 KANON's Tip
You might notice the images are in JPG, PNG, and SVG formats — not WebP. That's intentional. In Part 9, we'll convert JPG images to WebP as part of a performance optimization exercise. The assets are distributed in their original formats so you can experience that process firsthand.

Your Very First HTML File

Time to create our first HTML file. We're not going to write anything complicated yet. The goal right now is simply to create a file and see some text appear in a browser.

1

Create index.html

In VS Code's Explorer panel, right-click on the cafe-soel folder and select "New File." Name it index.html.

📌 Remember This
The homepage of a website is always named index.html. When you upload your site to a server, the browser looks for this file first. Think of it as the front door of your website.
2

Write the Code

The file should open automatically. Type (or paste) the following code. If you have the time, I'd encourage you to type it by hand — the physical act of typing helps the structure stick in your memory.

index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>café SOEL</title>
</head>
<body>
  <h1>Hello World!</h1>
  <p>We're going to build the café SOEL website.</p>
</body>
</html>

Don't worry if you don't understand what each line does yet. We'll break it all down in Part 2. For now, just trust that this is what a basic webpage looks like.

One thing I will mention: the very first line, <!DOCTYPE html>, is a declaration that tells the browser "this file is written in HTML." Think of it as a small but important handshake between your file and the browser. Without it, the browser might not display things correctly — so always include it on the first line.

Viewing It in the Browser

Let's see our code come to life. This is where Live Server earns its keep.

1

Launch with Live Server

With index.html open in VS Code, look at the bottom-right corner of the window and click the "Go Live" button. Your default browser will open automatically and display the page.

2

Check the Result

You should see "Hello World!" in large bold text, followed by "We're going to build the café SOEL website." in regular text. If you see that — congratulations, it's working.

▶ Live Demo — Hello World

Hello World!

We're going to build the café SOEL website.

There it is — your very first webpage. It's plain, it's simple, and it's wonderful. This is a real HTML document rendering in a real browser. From here, we'll layer on CSS for colors and layout, and that plain page will gradually transform into the polished demo site you saw earlier.

⚠️ Common Mistake
If you don't see the "Go Live" button, make sure the Live Server extension is installed correctly. You may need to restart VS Code after installation. Also, "Go Live" only appears when you have an .html file open.

Try a Quick Edit

Let's see Live Server's auto-reload in action. Go back to VS Code and change the text inside <h1> from "Hello World!" to "Welcome to café SOEL." Save the file with Ctrl + S (or Cmd + S on Mac).

Now look at your browser — it should have updated without you clicking refresh. That's the live reload doing its thing. Throughout this series, we'll be constantly writing code and checking the browser. Not having to manually reload every time makes the whole process so much smoother.

💡 KANON's Tip
Feel free to change the text back or leave it as is — it doesn't matter. In Part 2, we'll rewrite the contents of index.html properly. Whatever you have now is just for practice.

Checkpoint

If everything went smoothly, here's where you should be right now.

✅ Checklist
・VS Code is installed and running
・Extensions installed: Live Server, Prettier, Auto Rename Tag
cafe-soel folder contains css, img, and js sub-folders
img folder contains all 12 image assets
index.html was created and displayed successfully in the browser

If something isn't working, don't worry. Most errors at this stage come down to a typo or a file being in the wrong place. Double-check your file names and folder locations — that usually solves it.

Setting up your environment might feel like unglamorous work. But a well-organized workspace makes everything that comes after it faster and more enjoyable.

What You Learned

  • Over ten parts, we'll build the café SOEL website using nothing but HTML and CSS
  • VS Code is our code editor of choice — free, powerful, and the industry standard for web development
  • We installed three essential extensions: Live Server, Prettier, and Auto Rename Tag
  • Our project folder cafe-soel is organized with css, img, and js sub-folders
  • We downloaded 12 image assets and placed them in the img folder, ready for future parts
  • We created our first HTML file, index.html, and displayed "Hello World" in the browser
  • Live Server's auto-reload feature lets us see changes instantly without manually refreshing