$0THE $0 ASSET MACHINE

Lesson 3 of 3 · Hosting & deploy

Put it online. Free. In ten minutes.

You built the page. Now it becomes a real, shareable asset — a link anyone can open, on your own domain, with SSL, on Cloudflare's free tier. No server, no credit card, no monthly bill.

1 · Why Cloudflare

For sites like yours — HTML, CSS, JS, images — Cloudflare Pages is the free default.

What you get for $0

  • Free hosting on Cloudflare's global network
  • Free SSL — the padlock and https are automatic
  • A free .pages.dev URL the moment you deploy
  • Your own domain wired up with DNS handled for you
  • No credit card to sign up, no server to babysit

Why not the "easy" paid hosts

Most website builders charge monthly and lock your site inside their tool. Here your site is just files — you can move it anywhere, change hosts in ten minutes, and never pay a hosting bill while it sits online.

Free tiers are published plans, not permanent promises — keep an eye on Cloudflare's pricing page for current limits.

2 · Path A — Drag-and-drop deploy (10 minutes)

The fastest route from "file on my laptop" to "link on the internet." This is the short version of the checklist in the Starter Asset Kit.

  1. Organize your folder. Put your page in a folder as index.html. (Multi-page site? Structure it like section 4 below.)
  2. Sign up at dash.cloudflare.com — free, no credit card.
  3. In the sidebar: Workers & Pages → Create → pick the Pages tab → Upload assets.
  4. Name the project — it becomes your free URL: your-name.pages.dev.
  5. Drag your folder into the upload box. (Drag the folder that contains index.html.)
  6. Click Deploy. Done — you now have a live URL.
  7. Open it on your phone. Real users are on phones; check the real thing, not just your desktop.
  8. Click something. If a link 404s, your folder structure or link path is off — fix locally, re-upload (section 5).

3 · Add your own domain

The .pages.dev URL is yours forever, but a domain makes it a brand.

  1. Get a domain. Register one through Cloudflare Registrar (at-cost pricing) or bring one you already own from any registrar.
  2. In your Pages project → Custom domains → Set up a custom domain → enter your domain.
  3. If the domain's DNS already lives on Cloudflare, DNS records are added for you. Anywhere else, Cloudflare tells you exactly which records to point over — or change your registrar's nameservers to Cloudflare's once and every future setup is one click.
  4. Wait ~1 minute. SSL certificates issue automatically — nothing to buy, nothing to configure, nothing to renew.
  5. Visit your domain with the padlock showing. You're live.

4 · Deploying a whole multi-page site

Folders become URLs, and index.html is the page each folder serves automatically. That's the entire rule.

Your site folder = your site's URLs
my-site/
├── index.html            → your-domain.com/          (home)
├── first-page/
│   └── index.html        → your-domain.com/first-page/
├── cloudflare/
│   └── index.html        → your-domain.com/cloudflare/
└── kit/
    └── index.html        → your-domain.com/kit/

5 · Updating after you edit

Nothing you ship is final. Three ways to push changes, in order of comfort.

Option 1 — Re-upload 5 seconds

Project → Deployments → Create deployment → drag the folder again. Best when you're just starting out.

Option 2 — Git-connected recommended

Connect a GitHub (or GitLab/Bitbucket) repo. Every git push triggers a fresh deploy automatically. This is how real teams ship — and it's a free plan feature.

Option 3 — Wrangler CLI for the terminal-curious

npx wrangler login then npx wrangler pages deploy . from your site folder. Same result, no browser.

Seeing an old version?

HTML is cached for ~5 minutes and static assets longer (this site caches assets 30 days). Hard-refresh (Ctrl+Shift+R) while developing, and don't panic when a fresh deploy takes a minute to show.

6 · When it doesn't work — the four real problems

  1. 404 on the home page → you uploaded a file instead of a folder, or the folder has no index.html. Check the file is actually named index.html, not index.html.txt (Windows hides extensions — turn them on).
  2. Custom domain stuck "pending" → DNS hasn't propagated. If you brought a domain from another registrar, the records or nameservers must point at Cloudflare. Double-check spelling; then wait 5–30 minutes.
  3. Padlock not showing yet → certificates take about a minute on first setup. If it's been an hour, re-open Custom domains and follow the prompt shown there.
  4. Changes not appearing → cache. Hard-refresh; in the Pages project check you deployed the new deployment (Deployments list, top entry).

7 · The whole thing as one checklist

  1. Build the page (Lesson 1 or a kit prompt).
  2. Folder with index.html — locally verified by double-clicking it.
  3. Cloudflare → Workers & Pages → Upload → Deploy → live .pages.dev URL.
  4. Check it on your phone.
  5. Custom domain → DNS automatic → SSL automatic.
  6. Share the link. $0 spent. Asset live.

You've done the whole loop

Build the code → capture the email → deploy it free → share it. That's a real funnel, live on the internet, running for $0. Now do it again for a real business — with feedback, deadlines, and someone who's built a few of these.

 Lesson 3 of 3 ← Lesson 2  ·  Starter Asset Kit →
The $0 Asset Machine™ — a Mikee AI training · mikee.pro · Questions? mikee@mikee.ai · Privacy
OpenCode, Freebuff, Cloudflare and other tools named here are independent third-party tools; "free" refers to their published free tiers. This training teaches a system; it is not a promise of income.