miinideckmiinideck
PricingUse casesBlog
Sign in
Use cases/Host a static site privately when GitHub Pages can't publish privately on your plan

GitHub Pages can't publish privately on your plan. Here's the shape that works.

GitHub Pages is excellent and free for what it's designed to do: publish a static site from a repository, rebuilt on every push, on infrastructure you never think about. The wall people hit is visibility. Per GitHub's own documentation, publishing a Pages site privately requires a GitHub Enterprise Cloud organisation with Pages access control — it isn't available on Free, Pro, or Team. And even where it is available, access is granted to GitHub users with access to the repository, which means there is no way to hand the site to someone who isn't a GitHub user at all. If your reader is a client, that's the end of the road, regardless of plan.

Try it now

Drop a file — get a private link in seconds. No sign-up.

Drop an HTML, ZIP, PDF, PNG or JPEG file, or click to choose.
One file, or a ZIP bundle. Max 3 MB.

Up to 3 MB, link self-destructs after 7 days. Sign up free to keep links forever, password-protect them, and store more.

How it works

  1. 1

    Build the site the way you already do, then upload the output rather than pushing it. Zip the built folder — the entry HTML with its JS, CSS, and assets — and drop it in. The bundle is unpacked with relative paths intact and served behind one link in seconds, so a static site behaves exactly as it does locally.

  2. 2

    The link is unguessable and no-indexed by default. Your reader opens it in any browser with no GitHub account, no organisation membership, and no repository permissions — because there's no repository involved. Add a password if the work is confidential, or an expiry if it's tied to a review window; both are free on every plan.

  3. 3

    Re-upload when you rebuild and the link stays the same, so a client who bookmarked it in week one is still looking at the current build in week six. On Studio ($14.99/mo) it runs on your own domain with white-label, which reads differently on a client deliverable than any platform URL does.

Frequently asked questions

Can I make a GitHub Pages site private?

Only under specific conditions. GitHub's documentation states that privately publishing a Pages site requires a GitHub Enterprise Cloud organisation with Pages access control enabled, on an eligible project site built from a private or internal repository. It isn't offered on Free, Pro, or Team plans. One thing that catches people: building from a private repository does not by itself make the published site private — the site's visibility is a separate setting you have to configure explicitly.

My repo is private. Why is my site public?

Because they're two different settings. Repository visibility governs who can see your code; Pages visibility governs who can reach the published site, and on the plans most people are on there is no private option for the second one. A private repo can and does produce a fully public site. That surprises people at exactly the wrong moment, which is why it's worth checking rather than assuming the repo setting carried over.

Can I share a private Pages site with a client?

Not as a GitHub Pages site. Access control there is granted to GitHub users with access to the repository, so your reader needs a GitHub account and a permission grant on your repo. For a colleague that's a minor annoyance; for a client, a stakeholder, or anyone outside engineering it isn't going to happen. This is the specific case where a link that requires nothing of the recipient is the only workable shape.

Should I move my whole site off GitHub Pages?

Probably not, and this isn't an argument for that. If your site is public and git-backed — documentation, an open-source project page, a personal site — Pages is a genuinely good answer and rebuilding on push is worth a lot. The use here is narrower: the builds that shouldn't be public. Client deliverables, previews before launch, internal reports. Many people run both and pick per project rather than migrating.

Does it work with a static site generator?

Yes — the input is the build output, not the source, so the generator is irrelevant. Run your build, zip the output directory, and upload it. Next.js static exports, Astro, Hugo, Jekyll, Eleventy, Vite builds all land the same way. What isn't supported is anything needing a server at request time: API routes, server-side rendering, a database. That part needs a real deployment on Vercel or Netlify.

What about Cloudflare Access, Vercel, or Netlify — can those make a Pages site private?

They can gate a static site, and if one of them fits your setup you should use it. Cloudflare Access sits in front of a site you route through Cloudflare and asks the visitor to authenticate — solid for a team, heavier than it sounds for one client, because someone still has to be granted an identity. Vercel and Netlify both offer password protection on a deployment and connect natively to a private GitHub repo, so if you already deploy there or your project needs a build pipeline, that is the shorter path. The place they all ask something of you is setup: an account, a project, a deploy, and a config. The narrower case here is when you have a finished build and one person to send it to, and the only thing standing between those two facts is a URL.

Can I publish GitHub Pages from a private repo?

Yes on paid personal plans — GitHub Pages can build from a private repository on Pro and Team, and your source stays hidden. What it does not do is make the resulting site private: the published page is still reachable by anyone with the URL. That is the single most common misread of this feature, because 'Pages from a private repo' sounds like it should mean a private page and means the opposite half. On GitHub Free, Pages requires a public repository outright.

What does it cost to try?

Nothing, and you don't need an account to see whether it fits — an anonymous upload takes a file up to 3 MB and returns a link that self-destructs after 7 days. With an account the free tier allows 10 MB per file; Solo is $4.99/mo with 25 MB files and links that never expire; Studio is $14.99/mo with 50 MB files, a custom domain, and white-label.

Learn more

  • Private static site hostingThe general case, framed for delivery.
  • Host a Next.js static exportThe same route for a built site.
  • GitHub Pages vs a private linkThe choice itself, laid out side by side.
  • A client proofing linkWhere the no-account link matters most.
  • PricingFree to start; Solo $4.99, Studio $14.99.

More use cases

  • Let any MCP-capable AI tool publish finished HTML to a private link and replace it in place
  • Get a private link to a ChatGPT Canvas that opens with no ChatGPT account
  • Put one private link in your bio that delivers the freebie your audience earns

Start free. Keep it private.

No card to try, no sign-up to get a link. Sign up free to keep links forever, password-protect them, and store more.

Get started free →Try without signing in
miinideck

HTML files, finally as links — for AI builders, agencies, and consultants. Default-noindex, default-private, default-yours.

Product

  • Pricing
  • Use cases
  • Try it free

Resources

  • Blog
  • Free tools
  • Featured on
  • Report abuse

Legal

  • Privacy
  • Terms
Listed onmiinideck listed on Product Huntmiinideck listed on Faziermiinideck listed on TheSaaSDirmiinideck listed on AIToolHuntmiinideck listed on LaunchNest
© 2026 miinideckMade for people who don't want their work indexed.