The $0 option
Build it yourself. I'll show you how.
Everything I use to build websites is free and open source. The tools, the hosting, the deployment — all of it. If you've got the time and the curiosity, you can build exactly what I build. Here's the entire playbook.
01 — The stack
Every tool I use. All free.
This is the exact stack behind every site I build. No paid software, no proprietary platforms, no vendor lock-in. You can set all of this up today without spending a cent.
Framework
Astro
The static site framework. Generates pure HTML, ships zero JavaScript by default, and supports components from React, Vue, or Svelte if you need them. This is the engine.
Styling
Tailwind CSS
Utility-first CSS framework. No writing CSS files, no naming things. Style directly in your HTML with classes like text-lg, bg-white, and rounded-xl. Fast to learn, faster to build with.
Code editor
VS Code / Cursor
Free code editor from Microsoft. Cursor is a fork with AI built in. Either works. Install the Astro extension and you're ready to go.
Hosting
Cloudflare Pages
Free static site hosting on Cloudflare's global CDN. Push your code, it builds and deploys automatically. No server to manage, no bill to pay.
Version control
GitHub
Free code hosting and version control. Every change is tracked. Connect it to Cloudflare Pages and your site deploys automatically when you push code.
Domain
Cloudflare Registrar
Domains at wholesale cost — no markup, no renewal tricks. The only part of this stack that isn't free, but it's the cheapest option available. Around $10–$15/year.
Images
Astro Image
Built into Astro. Automatically optimises, resizes, and converts your images to modern formats like WebP. No Photoshop, no image CDN subscription needed.
SEO
Google Search Console
Free. Submit your sitemap, monitor your search performance, see what queries bring people to your site. The single most important SEO tool and it costs nothing.
AI coding
Claude
AI that can write code, explain errors, generate schema markup, and help you debug. The free tier is genuinely useful. Ask it to write an Astro component and it will.
02 — The process
From zero to live in seven steps.
This is the same process I follow for every build. It's not complicated — it just takes care and attention. If you can follow a recipe, you can build a static website. The learning curve is real, but everything here has excellent documentation and active communities.
Set aside a weekend to get through steps 1–4. The rest you can work through over the following week. Your first site will take the longest. Your second will take a quarter of the time.
Step 1
Set up your tools
Install VS Code (or Cursor), Node.js, and Git. Create a free GitHub account and a free Cloudflare account. This takes about 20 minutes.
Step 2
Create an Astro project
Run npm create astro@latest in your terminal. Choose the basic template. Install Tailwind CSS. You now have a working site on your machine.
Step 3
Build your pages
Astro uses .astro files — HTML with superpowers. Create your pages in the src/pages/ folder. Home, about, services, contact. Write the content in HTML, style it with Tailwind classes.
Step 4
Add your content and images
Drop your images into the src/images/ folder. Astro will optimise them automatically. Write your text directly in the page files or use markdown for blog posts.
Step 5
Set up SEO
Add meta titles and descriptions to every page. Create a robots.txt file. Install @astrojs/sitemap to auto-generate your XML sitemap. Add JSON-LD structured data for your business.
Step 6
Push to GitHub
Commit your code and push it to a GitHub repository. This is your backup, your version history, and your deployment trigger — all in one.
Step 7
Deploy on Cloudflare Pages
Connect your GitHub repo to Cloudflare Pages. Set the build command to npm run build and the output directory to dist. Every push now deploys automatically.
03 — What to learn
The skills that matter. Nothing more.
You don't need a computer science degree. You don't need to learn React. You need basic HTML, enough Tailwind to style a page, and enough Astro to structure a site. That's it. AI can help you write every line — you just need to understand what it's writing.
Start with the Astro tutorial. It walks you through building a complete blog from scratch. Once you've done that, you'll understand 80% of what I do day to day. The other 20% is schema markup and experience — and the schema part is learnable in an afternoon.
HTML basics
Headings, paragraphs, links, images, lists. The bones of every web page. You can learn enough in a few hours.
Tailwind CSS
Style with utility classes instead of writing CSS files. The docs are excellent and you'll be productive in a day.
Astro framework
Start with the official tutorial. It covers pages, layouts, components, and content collections — everything you need.
JSON-LD schema
Structured data that tells Google what your business is. Schema.org has the vocabulary. Google's Rich Results Test validates your markup.
Git basics
Add, commit, push. That's 90% of what you need. GitHub's own guide covers it in 10 minutes.
04 — The SEO checklist
The invisible work that makes people find you.
A beautiful website that nobody finds is just a poster in a locked room. This is the technical SEO checklist I follow on every build. None of it is visible to your visitors — all of it is visible to Google, Bing, ChatGPT, and every other system deciding whether to recommend you.
Most of this is straightforward once you know it exists. The hard part isn't doing it — it's knowing to do it at all. That's what this list is for.
05 — The real costs
What this actually costs you.
The tools are free. Hosting is free. The only costs are your domain name and your time. Here's the full breakdown compared to what most small businesses pay.
This page
DIY static site
$10–$15 /year total
- Hosting $0
- Framework (Astro) $0
- Code editor $0
- Version control $0
- SSL certificate $0
- Domain name ~$12/yr
Platform
Squarespace
$276–$780 /year total
- Business plan $33/mo
- Domain (included yr 1) $20/yr after
- Transaction fees 3%
- Custom code limits Restricted
- Export options Limited
- PageSpeed score 40–70
Self-hosted
WordPress
$360–$2,400 /year total
- Managed hosting $30–$100/mo
- Domain name ~$15/yr
- Premium theme $50–$200
- SEO plugin (Yoast/Rank Math) $0–$99/yr
- Security plugin $0–$199/yr
- Backup plugin $0–$100/yr
06 — The honest truth
This takes time. That's the tradeoff.
I'm not going to pretend this is a weekend project if you've never written code. The tools are free, but the learning curve is real. HTML, Tailwind, Astro, Git, deployment, schema markup — each one is learnable, but together they take genuine time and effort.
If you enjoy building things and want to understand how the web works, this is genuinely rewarding. If you'd rather spend that time running your business — that's what I'm here for. No judgement either way. This page exists because I believe the information should be free even if your time isn't.
DIY makes sense if you
- Enjoy learning technical things
- Have more time than budget
- Want full control over your code
- Are building a personal site or side project
- Want to understand what you're paying for later
Hiring makes sense if you
- Need it done right, fast
- Want schema, SEO, and GEO handled properly
- Don't want to learn code
- Need a site that represents your business well
- Would rather invest time in your actual work
A website that works for everyone.
Fast for your customers. Cheap to run for your business. Perfectly readable by Google and AI. That's what a static website does.