FeaturesCommunityGuidesUse casesCompareToolsBlogPricing
Orlume logo

How to make a website from scratch

How to make a website from scratch with HTML and CSS: plan it, write the pages, style them, add a domain and publish free. What to learn, in what order.

The short answer

To make a website from scratch, plan your pages on paper, write the content and structure in HTML, style it with CSS, add a little JavaScript only if you need interaction, then publish the files to a free static host such as GitHub Pages, Netlify or Cloudflare Pages and point a domain at it. A simple personal or business site takes a beginner a few days to a few weeks.

  • HTML for structure, CSS for looks, JavaScript only when you need behavior.
  • Plan pages and content before writing code; it saves the most time.
  • Static hosts publish plain HTML sites for free.
  • Builders and AI tools are faster; building by hand teaches you how the web works.

01Step 1: Plan before you code

Decide who the site is for, what pages it needs and what each page should make a visitor do. For most small sites, that is a homepage, an about page, a services or work page and a contact page. Sketch each on paper as boxes: headline here, photo there, button here. How to make a website wireframe shows how in more detail.

Write the actual words now, too. Designing around real text is far easier than squeezing text into a design later, and it exposes gaps in what you want to say.

02Step 2: Learn the three languages, in order

Mozilla's free Learn web development course is the standard place to start, and its first website guide walks through a complete small site.

What each language does
LanguageJobHow much you need for a first site
HTMLStructure and content: headings, text, images, linksEssential: a few dozen elements
CSSLooks: layout, colors, fonts, spacing, responsivenessEssential: flexbox, grid, media queries
JavaScriptBehavior: menus, interactions, dataOptional for a simple site

03Step 3: Build the pages

Work page by page, starting with the homepage, and check each in a browser as you go.

  1. 1Create the filesAn index.html for the homepage, one HTML file per page, and one styles.css.
  2. 2Write semantic HTMLUse header, nav, main, section and footer, and one h1 per page; it helps accessibility and search engines.
  3. 3Style mobile firstWrite styles for small screens, then add media queries for larger ones.
  4. 4Keep a design systemTwo fonts, a small palette and a spacing scale, defined once as CSS variables.
  5. 5Optimize imagesResize and compress before adding them; large images are the most common cause of slow pages.

04Step 4: Publish it

A site made of HTML, CSS and images is a static site, and static hosts publish it for free: push the files to GitHub and turn on GitHub Pages, or connect the repository to Netlify or Cloudflare Pages. Then buy a domain and point it at the host. How to host a website for free and how to deploy a website cover each step.

05Step 5: Make it findable and fast

Give every page a unique title and meta description, use descriptive headings, add alt text to images and submit the site to Google Search Console. Check speed with PageSpeed Insights; Google's Core Web Vitals ask for the main content to load within 2.5 seconds, per web.dev. How to make a website faster lists the usual fixes.

  • Unique title and description on every page.
  • One h1 per page and logical headings below it.
  • Alt text describing every meaningful image.
  • A sitemap submitted in Search Console.

06From scratch, a builder, or AI?

Building by hand is the best way to understand the web, and the slowest way to get a polished business site. Website builders and AI builders are much faster but give you less control or less understanding. Many people learn by hand, then use tools for client or business work. Should I build my own website or hire someone? helps you decide, and how to make a website with AI covers the fastest route.

What people who tried it say

Hacker News commenters asked how to build a simple site usually recommend starting with plain HTML and CSS on a free static host, and only adding a static site generator such as Eleventy, Astro or Hugo once you need templates or Markdown.

Looking for more first-hand opinions? Search Reddit for “how to make a website from scratch”. We link the live threads rather than summarizing them, so you read them in full.

Our take

build one small site by hand, even if you never do it again. Knowing what HTML and CSS are doing makes you better at using every builder, AI tool and developer you will ever work with.

Where this falls short

This path covers static informational sites. Online stores, member areas and apps need servers, databases and security knowledge beyond this guide, or a platform that provides them.

Where Orlume fits

If you want the result without the learning curve, Orlume designs and builds a site from a description, as real Next.js code you can download on paid plans and learn from.

Free to start · No card required · Live in one click

Sources

  1. 1.Learn web development · MDN Web Docs
  2. 2.Your first website · MDN Web Docs
  3. 3.Web Vitals · web.dev (Google)

Orlume logoResearched and written by the Orlume team · Updated October 2026

More on building a website

All 12 building a website questions →
Questions

People also ask.

More on how to make a website from scratch, answered briefly.

Can I build a website from scratch for free?

Yes. A text editor, a browser and a free static host cost nothing; only a custom domain costs money.

How long does it take to learn to build a website?

A simple site can be built within weeks of learning basic HTML and CSS. Becoming fluent takes months.

Do I need JavaScript to build a website?

Not for a simple informational site. HTML and CSS are enough; add JavaScript for interactive features.

What software do I need to build a website?

A code editor such as VS Code and a web browser. Everything else is optional.

Orlume logoStill stuck? Email us
Orlume logo

Build something that doesn't look AI-made.

Describe the site you want. Watch it get designed, not just generated. Then publish it to its own orlume.site address.

  • Free to start
  • No card required
  • Publish to a live URL
  • You own the code