| name | deploy-anywhere |
| category | web |
| description | Put an existing project online with a free host. GitHub Pages, Cloudflare Pages, or Netlify, verified live. Use when they have files but no URL, say "how do I put this online", or want a site off localhost. |
deploy-anywhere
Take a static project that already exists on someone's
machine and getting it served at a public URL, free. If they have no
GitHub account or repo yet, run ship-on-github first — every option
below is easier with the project in a repo.
Picking a host
Lay out the three and let them choose; all are free at this scale.
- GitHub Pages: zero new accounts if ship-on-github is done. Deploys
from the repo. Best default for a first site.
- Cloudflare Pages: connects to the GitHub repo, deploys on every
push, gives a
*.pages.dev URL. Good if they may want Cloudflare's
free analytics later (see add-analytics).
- Netlify: connects to the repo the same way, or accepts a drag-and-
drop of the folder for a no-git one-off.
*.netlify.app URL.
One host is enough. Do not set up two "to compare" — pick, ship,
move on. Switching later is cheap.
Wiring it
- Confirm the project is truly static: an
index.html at the root
(or a build output folder). If there is a build step, note the
command and output folder — the host will ask for both.
- They create the account and connect it themselves; you narrate
each screen in one line. Never handle their password.
- GitHub Pages: repo Settings → Pages → deploy from branch → main.
Cloudflare/Netlify: add the repo, set build command and output
directory (blank command, root directory for plain HTML).
- First deploy runs. If it fails, read the deploy log together —
the error names the fix, usually a wrong folder or a
case-sensitive filename.
- Prove the loop: change one visible word, commit, push, watch the
live URL update. Once is enough if they did ship-on-github;
otherwise do it twice.
Done
- A live URL on the host they chose, opened on their phone
- A push (or drag-drop) visibly updates the site
- They can say where the files live, what triggers a deploy, and
where to read the log when one fails
- The URL is written down somewhere they will find it again
Natural next steps: custom-domain to replace the free subdomain,
add-analytics to see whether anyone visits.