A beginner's guide to building your own website from scratch
The first site I ever built took me eleven days. Not because it was complicated. Because I spent nine of those days choosing a font. I'm not exaggerating, and I'm not proud of it. If you're reading this, you probably want to get a website online without losing two weeks to typefaces and tutorial rabbit holes. Good news: the technical part is genuinely the easy part in 2026. The hard part is deciding what you actually want, then refusing to keep redesigning it forever.
This guide walks you through the whole thing: choosing between a website builder and hand-written code, registering a domain, picking hosting, getting published, and — the part most beginner tutorials skip entirely — what to do in the months after launch, when your site quietly starts breaking and nobody tells you.
Key Takeaways
- You do not need to code to build a website. You also don't need to avoid code if you enjoy it — both paths work.
- A domain costs roughly $10–15 a year; hosting can be free (GitHub Pages) or $5–30 a month depending on the route you pick.
- The real costs are time and maintenance, not software. Budget for both.
- Launch with three pages, not thirteen. You can always add more once you know what people actually read.
- Set up backups and a basic analytics tool on day one. Retrofitting them after a crash is miserable.
Decide what your website is actually for
Most beginners skip this and go straight to picking a template. That's the mistake that costs you the most time later, because a template chosen before you know your purpose will fight you on every page.
Ask yourself one question: what does a visitor need to do here? Three honest answers cover almost every beginner site:
- Read something (a blog, a portfolio, a documentation page)
- Buy something or book something (an online store, a service business, a booking page)
- Contact you and trust you enough to hire you (a freelance or consultant page)
Write your answer down in one sentence. Mine was "let potential clients see my writing samples and email me." That sentence decided everything that followed — no e-commerce plugin, no membership system, no newsletter popup I'd regret.
How many pages does a beginner actually need?
Three. A home page, a page that proves you're real, and a contact page. I've built sites with twenty pages that converted worse than a single well-written one, because the visitor got lost in a navigation menu instead of reading the thing that would have convinced them. Add pages when you have something specific to put on them, not before.
If you're building for a business, add a fourth: pricing or services, written in plain language. Vague service descriptions are the number one reason small business sites get phone calls that go nowhere useful.
Website builder or code? An honest comparison
Here's where I'll take a side, because the "it depends" answer helps nobody. If your goal is to have a working site this week and you don't enjoy fiddling with technical details, use a website builder. Full stop. If you're willing to spend a weekend learning HTML and CSS, hand-coding gives you a site that loads faster, costs less to host, and never holds your content hostage behind a subscription.
I've done both. My first paid client site was built on a drag-and-drop builder, and it worked fine for two years. Then the platform changed its pricing tiers and I had to migrate everything by hand. That afternoon taught me more about vendor lock-in than any article could.
Real talk: the choice matters less than finishing. A half-built perfect site earns nothing.
| Approach | Cost per year | Time to launch | Best for | Main downside |
|---|---|---|---|---|
| Website builder (subscription) | $100–300 | 1–3 days | Non-technical owners, service businesses | You rent your site; leaving is painful |
| WordPress (self-hosted) | $60–200 | 3–10 days | Blogs, content-heavy sites | Plugins and updates need attention |
| Hand-coded HTML/CSS on GitHub Pages | $10–15 (domain only) | 2–7 days | Portfolios, simple sites, anyone curious about code | You build every feature yourself |
| Hiring a professional | $1,500–10,000+ | 2–8 weeks | Businesses where the site is the product | You still own content updates afterward |
Is it possible to build a website completely free?
Yes, with two caveats. Free tiers exist — GitHub Pages hosts static sites at no cost, and several builders offer a subdomain like yoursite.builder.com on their free plan. The caveat: a free subdomain looks less credible to visitors, and free plans often restrict custom code or add their own branding. My honest recommendation is to pay the ~$12 for a real domain and keep everything else free at the start. That single purchase changes how seriously people take the site.
Choosing a domain name and hosting without overpaying
Domain registration is the one place where beginners routinely get upsold. You need the name. You do not need the premium DNS package, the SSL upsell (most hosts include it free now), or the five-year prepayment "discount."
Pick a name that's easy to say out loud. If you have to spell it for someone over the phone, it's wrong. Short, no hyphens, and matching your name or your business name is the safest bet.
For hosting, the decision splits cleanly:
- Static site (plain HTML/CSS)? GitHub Pages or Netlify. Free, fast, and reliable enough that I've run client sites on it for years.
- WordPress or a builder? Your host or platform handles this. Shared hosting starts around $5 a month and is fine until you get real traffic.
- E-commerce? Expect $25–40 a month minimum once you factor in payment processing and the platform fee.
One warning from experience: cheap hosting is cheap for a reason. I once moved a client to a $2-a-month provider to save money, and the site went down twice in a month during their busiest week. We moved back. The $30 difference wasn't worth the phone calls.
Building your first pages, step by step
Whichever route you chose, the build order is the same, and getting it wrong is why so many beginner sites never launch.
Start with content, then design
Write your text in a plain document first. No styling, no layout decisions. Just the words a visitor needs to read on each of your three pages. This feels backwards and it saves you hours, because design decisions are much easier when you know how much text has to fit.
Build the home page, then copy it
Build one page completely — header, footer, navigation, the works. Then duplicate it for your other pages and swap the content. Beginners who build each page from scratch end up with inconsistent spacing and three slightly different menus.
If you're coding, here's the minimum you need to understand: HTML gives structure (headings, paragraphs, links, images), CSS controls appearance (colors, spacing, layout). You don't need JavaScript for a basic site. I know that sounds like a lie after every tutorial mentions it, but a portfolio or business site runs perfectly on HTML and CSS alone.
Test before you publish, not after
Open your site on your phone. Now open it on someone else's phone. This is the step beginners skip, and roughly half of first-time sites are unusable on mobile because the desktop layout got squeezed into a narrow screen. Check your contact form actually sends email, too — I once launched a site where the form silently failed for three weeks. Nobody told me. They just left.
What happens after launch (the part nobody warns you about)
Launch day feels like the finish line. It isn't. It's the day your site starts decaying, slowly, in ways you won't notice unless you look.
Three things need attention on a schedule:
- Backups. Weekly if you publish often. A single bad plugin update can blank a WordPress site in seconds, and I've watched it happen mid-afternoon on a Friday.
- Updates. If you're on WordPress, apply core and plugin updates monthly. If you hand-coded your site, congratulations — you have almost nothing to update, which is a genuine advantage of the static approach.
- Analytics. A simple, privacy-respecting visitor counter tells you which pages people actually read. Install it on day one. Without it, you're redesigning based on guesses.
Beyond maintenance, there's a quieter task: watching your own site the way a stranger would. Once a month, land on your home page and try to accomplish the thing your site is for. If it takes more than two clicks, simplify.
The mistakes I see most often
Underestimating the time is the biggest one, and it's not the build — it's the content. Writing your own About page is strangely hard, and most beginners either write three vague sentences or a 900-word autobiography. Aim for one honest paragraph and a photo.
The second most common: no call to action. Every page should make one clear next step obvious. Not five options in a menu. One.
And the third, which I made myself: rebuilding the whole site every six months because you got bored of the design. Your visitors never saw the old version. They don't care. Ship improvements, not overhauls.
So what should you do this week?
Here's a thought I keep coming back to. The internet is full of abandoned websites — domains paid for, templates half-configured, About pages that still say "coming soon." Almost none of them failed because the owner couldn't figure out hosting. They failed because the owner was waiting for the site to feel finished before showing it to anyone.
It never feels finished. My own site has been "almost done" since the day I launched it, and it's brought me every client I've had.
So pick your three pages. Buy the domain. Use the free hosting. Accept that the font you choose today is not a permanent decision — that's the lesson those eleven days taught me, and I'd rather you learn it in an afternoon. Publish something imperfect this week, then improve one thing about it next week. That's the entire method. Everything else is detail.