Skip to content

Host a Jekyll site without the Pages machinery

bundle exec jekyll build renders your whole site into _site/ — the exact artifact GitHub Pages would serve. You can host that folder on a live URL without any of the Pages machinery.

Drop your Jekyll report here — get a live link

free, no account, live for 30 days.

Shipping…

The artifact dead-end

Jekyll's default hosting story is GitHub Pages: pinned gem versions, a branch or workflow, one site per repo. Previewing a draft post shouldn't require any of that.

Local jekyll serve shows you the site on localhost:4000 — useless for the person you want feedback from.

Two lines to a live link

Build your output like you already do, then hand the folder to the action:

Build the site

bundle exec jekyll build

.github/workflows/ci.yml

- uses: bitgate/ship-page-action@v1
  if: always()
  with:
    path: _site/

Or with plain curl — no account needed

cd _site && zip -qr - . | curl -fsS -X POST https://ship.page/deploy \
  -H "Content-Type: application/zip" \
  --data-binary @- | jq -r .url

path: _site/ deploys exactly what the tool wrote — no detection to configure. The link goes in the job summary — add comment: true and it lands on the pull request too.

What you get

  • _site/ deploys as-is — permalinks, pagination and assets resolve at the drop root
  • One curl from your shell; the action deploys path: _site/ from CI on every push
  • Anonymous drops expire after 30 days — draft previews clean themselves up
  • Any theme, any plugin, any Jekyll version — you build locally, so no host-side gem whitelist ever rejects your site

Questions

What about baseurl and url config?

Leave baseurl empty (the default) — drops mount at a subdomain root, exactly what Jekyll assumes. A custom baseurl like /blog would have to exist as a path under the drop URL.

Do the github-pages gem constraints apply?

No — build with whatever gems you use locally. _site/ is static output; there are no Pages runtime constraints here.

Can the site stay up permanently?

On a paid plan, a named drop with ttl set to never expire gives the site a permanent URL you control, redeployed by CI on every push.

Is there a free way to host a Jekyll site?

Yes — anonymous drops are free with no account: up to 25 MB zipped, live for 30 days. GitHub Pages is also free for permanent public sites; the difference here is zero setup and a preview link that cleans itself up.

How do I share a draft post for review?

Build with jekyll build --drafts so _site/ includes the draft, deploy the folder, and send the link. Anonymous drops expire after 30 days, so review copies clean themselves up.

Related recipes

Try it on your next run

Anonymous deploys need no account and no key — paste the step, get a link. When you want stable URLs that redeploy in place, an API key and a name are all it takes.

Need to share the report with someone outside GitHub? How to share a GitHub Actions artifact without a login.