sxsphinxstack

Skills / Deploy anywhere

Deploy anywhere

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.

Use this skill. Nothing to install.

Open in ChatGPT Open in Claude prefilled and ready; just hit send
for Gemini, Copilot, or Cursor: paste it, then say "use the deploy anywhere skill"

Don't have an agent?  ·  Raw file: skills/deploy-anywhere.md

Watch the first two minutes

This is how a session goes, first deploy included. Click through it.

(pastes the skill) my project only works on my computer. how do I put it online?
With a free static host. Three good options: GitHub Pages, Cloudflare Pages, Netlify. All free at your scale. Do you already have a GitHub account?
yes, from before. but I've never deployed anything and I'm convinced I'll break something
GitHub Pages then, zero new accounts. And there is nothing here to break: the worst case is a failed deploy, your machine's copy is untouched, and the deploy log names the problem. It's usually a wrong folder or a filename with the wrong case.
what do you need from me
First a check that the project is truly static: an index.html at the root. Then it's repo Settings, then Pages, then deploy from main. You click; I narrate each screen in one line.
it says my site is live?? that was fast
Open it on your phone to be sure. Then we prove the loop: change one visible word, commit, push, and watch the live page update. Once you've seen that with your own eyes, you own deploys.

Scripted example of a real session.

Never deployed anything before?

Then the word probably sounds bigger than the act. For a static site, deploying means a host copies your files and serves them at a URL, and this skill has you pick one host, ship on it, and move on. No comparing hosts for a week: all three options are free at this scale, switching later is cheap, and a failed deploy costs nothing but the minute it takes to read the log. Projects that are one deploy away from being real:

A real site, shipped Your own browser start page A one-pager behind a QR code

What you end up with

A URL, and proof that pushing updates it. The whole loop fits on one screen:

Example
$ git push                       1
Enumerating objects: 5, done.
To github.com:username/weather-diary.git
   e7c21aa..b3f90d2  main -> main

pages build and deployment       2
  build     ok        41s
  deploy    ok
  live at:  username.github.io/weather-diary/

phone check: loads, readable     3
  1. Push is the trigger. On every host here, the deploy starts when the repo changes. There is no separate upload step to remember, which is exactly why the loop sticks.
  2. The log is where answers live. When a deploy fails, this section names the reason, and the skill has you read it together instead of guessing. Wrong output folder and case-sensitive filenames cover most first failures.
  3. Done means opened on a phone. A URL you have only seen on your own laptop isn't verified. The skill also has you write the URL down somewhere you'll find it again.

Questions people actually ask

Is hosting really free?

At personal-site scale, yes, with no expiry: GitHub Pages is free, Cloudflare Pages has a generous free tier, and Netlify's free tier covers a site like this comfortably. The paid tiers of those services exist for traffic and features a first site doesn't have.

Which host should I pick?

If you've done ship-on-github, GitHub Pages, because it needs zero new accounts. Cloudflare Pages is a good pick if you may want its free analytics later, and Netlify can take a drag-and-drop folder if you want a no-git one-off. The skill's actual rule is stronger than any of that: pick one, ship, move on.

What if the deploy fails?

You read the deploy log, which names the problem. In practice a first failure is almost always a wrong build-output folder or a filename whose case differs from the link pointing at it. Your files are untouched either way; fix and push again.

My project has a build step. Does that change things?

Only slightly: the host asks for the build command and the output folder, and you give it both. For plain HTML you leave the command blank and point at the root. The skill checks which case you're in before wiring anything.

Can I host a backend or database this way?

No, and the skill is honest about the boundary: these hosts serve static files. When your project needs a server or shared data, backend-basics and database-basics are the next skills up; everything you learned here still applies to the front half.

Where to go from here

Site live at a URL? Make the URL earn more:

Your own domain See who visits Make it fast
Curious? Read the full skill — the exact instructions your agent gets
---
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

1. 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.
2. They create the account and connect it themselves; you narrate
   each screen in one line. Never handle their password.
3. 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).
4. 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.
5. 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.