Grow your own
Host your own site
You can put a real website online today – for free, with no special software – either by hand or by describing it to an AI assistant, and then dropping the files onto Cloudflare. This is exactly how BLOOM and a handful of other sites you may have seen were built. Here's the whole thing, plainly, with a few moments worth pausing to celebrate.
The quick version
For people who know what HTML, a folder, and a domain are, but haven't kept up with how sites get built and hosted in 2026. Two things have changed: an AI agent can write the whole thing, and good static hosting is now free and instant.
-
Decide it's a static site
Plain HTML/CSS/JS, no build step, no database. That covers most portfolios, course pages, guides, microsites. (If you need logins or a live backend, that's a later, bigger conversation – BLOOM itself adds Supabase for that.)
-
Write the files – by hand or with an AI agent
Either start from the tiny starter further down (no AI needed), or describe the site to an AI coding agent and iterate in plain English. Ask for "a static site, plain HTML/CSS/JS, no build step," and to keep everything in one folder. See choosing an assistant below.
Tip: ask it to inline anything fragile (icons, small data) so the page also works when you just double-click the file. Fetches from disk silently fail.
Iterating in plain English is fine while you're getting your bearings, but it's not the long-term habit. See building your own edit tool below, once the basics work, so small changes don't need asking AI at all.
-
Put the files in one folder
An
index.htmlat the folder root is your home page. Other pages can beabout/index.html→/about/, and so on. -
Host it free on Cloudflare Pages
Three ways, easiest first:
- Drag-and-drop: Cloudflare dashboard → Workers & Pages → Create → Pages → "Upload assets." Drop your folder. Done.
- Git-connected: push the folder to a GitHub repo, connect it in Pages, and every push auto-deploys. (Build command: none. Output dir:
/.) - CLI:
npx wrangler pages deploy . --project-name=yoursite
You get a live
yoursite.pages.devURL right away.That's it – you just published a page on the open web.
That address works for anyone, anywhere. Open it on your phone, send it to someone. Most people never do this; you just did.
-
Point a custom domain at it (optional)
Buy a domain (anywhere; ~$10/yr), add it to Cloudflare, then in your Pages project: Custom domains → add it. Cloudflare wires the DNS for you.
-
Updating = re-deploy
Edit the files (or ask the agent to), then drag the folder in again / push again / re-run wrangler. New version is live in seconds.
.pages.dev is free forever.The full walkthrough
No assumptions. If you've never made a website, start here. We'll define each piece as we go, and we'll use the drag-and-drop method so you never touch a command line.
First, the four words people will throw at you
| A static site | A website that's just a set of files (text, styling, pictures). Nothing runs behind the scenes – the visitor's browser just reads the files. Fast, cheap, and hard to break. Perfect for a portfolio, a course page, a guide. |
|---|---|
| An AI coding agent | A chat assistant that can write the website's files for you from a plain-English description. You don't write code; you describe what you want and refine it. (Claude is the one used to build BLOOM.) Optional – you can also write a first page by hand; we show how. |
| A domain | The human-friendly address people type, like yourname.com. You rent it (about $10–15 a year). Optional to start – you get a free address without one. |
| Hosting | The service that keeps your files online so anyone can visit. We'll use Cloudflare Pages, which is free for sites like this. |
Step by step
-
Make your one true sentence
Before anything fancy, decide on a single real sentence to put on your page – your name and why you're making it. Something like "Hi, I'm Jordan, and this is my first website." In a few minutes that exact sentence will be public on the internet, which makes the whole thing click. Keep it handy.
-
Type it in yourself, by hand
Before any AI tool touches this, open a plain text editor (Notepad, TextEdit, or VS Code all work) and type this, swapping in your sentence from the last step:
<!doctype html> <html lang="en"> <head><meta charset="utf-8"></head> <body> <h1>Hi, I'm ___, and this is my first website.</h1> </body> </html>Save it as
index.html, not.txt– some editors add.txton their own, so check the filename after saving. Double-click it. That's a real web page, and you typed every character of it.This is the small, plain version of what an AI assistant builds for you in the next step, tags and all. Typing it once means the files an assistant hands you later won't be a mystery.
-
Build out the rest – with an assistant, or by hand
With an AI assistant (easiest): open one (see below) and describe your site. Be specific about the kind:
Build me a personal website as a static site: plain HTML, CSS, and JavaScript, no build step. One home page and an "about" page. Friendly, readable, works on phones, accessible. Start the home page with this sentence: "your sentence" Put everything in one folder and show me the files.Then just talk to it: "make the header green," "add a list of my projects," "I don't like that font." It rewrites the files each time, which is fine for now – see building your own edit tool below once you're past the basics.
By hand (no AI needed): keep building on the file you just typed, or copy the fuller starter in the "no assistant" box below into a file called
index.html, and change the words to yours. That's a complete, accessible page.If you use an assistant, one useful sentence to include: "Inline any icons or small data into the page so it still works if I open the file directly," and "keep it accessible – good contrast, alt text, keyboard-friendly." Ask for accessibility up front and the tool does the work. -
Save the files into one folder
Make a new folder on your computer, e.g.
my-site. Save each file into it. The home page must be namedindex.html– that's the one a web address opens by default.A second page goes in its own subfolder as
index.htmltoo:my-site/about/index.htmlbecomes the address/about/. The assistant can set this up for you if you ask. -
Look at it on your own computer first
Double-click
index.html. It opens in your browser, just for you (the address bar starts withfile://– that means it's local, not online yet). Read your sentence back. Tweak until you're happy.Checkpoint: that's a real web page, on your own screen, that you made. Nobody else can see it yet – putting it online is the next step, and it's the fun one. -
Make a free Cloudflare account
Go to cloudflare.com and sign up. It's free; no card needed for this.
-
Upload your folder to Cloudflare Pages
In the dashboard: Workers & Pages → Create → Pages → Upload assets. Give your project a name, then drag your whole
my-sitefolder into the box. Cloudflare uploads it and, a few seconds later, gives you a real web address ending in.pages.dev. Open it.Congratulations – you've officially published your first page on the internet.
That web address works for anyone, anywhere. Open it on your phone, text it to a friend – they'll see exactly what you made.
And your one true sentence? It's public now, at a real address on the open web, readable by anyone on Earth. You are, officially, published. That's a genuinely rare thing to be able to say – take the moment.
-
(Optional) Use your own domain
If you'd rather have
yourname.comthanyourname.pages.dev: buy a domain (Cloudflare can sell you one, or bring one from elsewhere), then in your Pages project open Custom domains and add it. Cloudflare handles the technical wiring. (Students: a free domain for a year often comes with the GitHub Student Developer Pack.) -
Changing your site later
Ask the assistant (or edit by hand), save the updated files into the same folder, and upload the folder again the same way. The new version replaces the old one in seconds. Nothing to reinstall, nothing to remember.
For small, repeat changes, this is a good moment to try editing the file yourself, or to ask the assistant once to build you a simple tool for the edits you make most. See building your own edit tool below.
Which AI assistant should I use?
Any of these can write the files for you from a plain-English description. They (and their free tiers) change fast, so check current options – but here's the lay of the land, lowest-effort first.
1. Build it in your browser (no install)
v0, Bolt (bolt.new), Lovable – you type what you want and watch the site appear, right in a browser tab; many can publish for you too. The gentlest start if you've never opened a terminal.
2. A coding agent in your editor or terminal (more control)
Claude Code (Anthropic – the one that built BLOOM), OpenAI Codex, GitHub Copilot (in VS Code, and free for students via the GitHub Student Developer Pack), Cursor, Windsurf, or Cline (a free, open-source VS Code extension). These can also publish the site for you.
3. Just a chat assistant (most basic)
Claude.ai, ChatGPT, Gemini – paste your request, then copy the files it gives you into a folder by hand. Works with no special setup.
No AI tool at all? You can still make a real page by hand. Copy this into a file named index.html and change the words – it's complete and accessible:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My first website</title>
<style>
body{font-family:system-ui,sans-serif;max-width:40rem;
margin:2rem auto;padding:0 1rem;line-height:1.6;color:#16271C}
a{color:#12513A}
</style>
</head>
<body>
<h1>Hi, I'm ___, and this is my first website.</h1>
<p>I made this and put it on the internet. More to come.</p>
</body>
</html>
Save it, then host it the same way (the drag-and-drop step above). No assistant required.
Made something? Give it away, and teach it.
The whole point of doing it this way – free hosting, tools that do the heavy lifting, open formats – is that it's learnable and shareable. Once you've done it once, you can walk a colleague or a class through the same steps. Students can build a portfolio, a research guide, or a class project and have it live the same day – and feel that "I'm published" moment for themselves.
If you publish something, consider an open license so the next person doesn't have to start from zero. That's the idea behind BLOOM. See build it once, then give it away for the longer version of why.
Self-report when you finish and it shows as a small pill on your BLOOM profile, linking back to this lesson. It's a self-attested mark, not a verified credential.
Helpful, free references: Cloudflare Pages – Get started · MDN – Learn web development · U.S. Web Design System (accessibility-first components) · GitHub Student Developer Pack (free domain + tools for students).