Skip to content

Share your Hugo site without the hosting song and dance

hugo renders your whole site into public/ — a complete static website. That's the entire deploy artifact. One POST and it's live on its own subdomain.

Drop your Hugo report here — get a live link

free, no account, live for 7 days.

The artifact dead-end

Hugo builds in milliseconds, then the sharing story starts: GitHub Pages branch juggling, platform accounts, or 'just clone and run hugo server'. The fastest static generator deserves a faster preview story.

Theme tweaks and content drafts especially — you want a link in the PR, not a hosting integration per repo.

Two lines to a live link

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

Build the site

hugo --baseURL /

.github/workflows/ci.yml

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

Or with plain curl — no account needed

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

path: public/ 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

  • The whole public/ folder deploys as-is — permalinks, taxonomies and assets resolve at the drop's root
  • hugo --baseURL / makes links root-relative, so the same build works on any URL the drop lands on
  • Named drops on paid plans give your main branch a permanent URL that redeploys in place

Questions

What about baseURL?

Build previews with hugo --baseURL / — links become root-relative and resolve on whatever subdomain the drop lands on. A hardcoded https:// baseURL bakes your production domain into every link.

Why not GitHub Pages?

Pages wants a gh-pages branch or a Pages workflow, and one site per repo. This is a POST — public/ goes up unchanged, as many drops as you want.

How big can the site be?

Anonymous drops take up to 500 files; an API key raises that to 900, and chunked uploads go to 10,000 — enough for very large sites.

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.