Solutions

Static hosting with the access control built in

Most static hosts give you a URL and stop there. That is fine until the page is a client's numbers, an internal dashboard, or a draft that should not be readable by whoever the link gets forwarded to — and then you are writing authentication for something that was supposed to be a file upload.

These pages cover the parts of pagegoat that exist so you do not have to write that. The gate is part of the hosting rather than something you bolt on top of it.

Pick the capability

Looking for this from the other direction — you have a document and want to know how to hand it over? Start at use cases. Setting visibility from a script or an assistant is covered in the API and MCP docs.

How the gate behaves

Enforced before the bytes

The check happens server-side. A reader who guesses the URL without the password receives the gate, not the page with the content sitting in view-source underneath it.

Four ways in

Public for anyone with the link, password for one shared secret, private for named people by email, or capture to ask each visitor for an address first. Switching between them is one setting and never changes the URL.

Settable from code

Every visibility change is an API call, so a CI job or an AI agent can publish something gated by default and widen it later rather than the other way round.