What is pages.gay?
Updated
pages.gay is a static site hosting service built around git.gay repositories. You keep your HTML, CSS, fonts, and images in a repo, and pages.gay publishes them as a live website at user.pages.gay or user.pages.gay/repo. It's aimed at people who want a project page online in minutes without running a server, and it can also be self-hosted if you run your own Gitea or Forgejo instance.
How publishing works
The model is simple: your repository is the source of truth, and pages.gay serves whatever static files you push to the relevant branch.
- User site: create a public repository named
pageson git.gay. Your files go on the main branch, and the site appears atuser.pages.gay. - Project site: in any repository, create a new empty branch named
pages. The site appears atuser.pages.gay/repo.
In both cases you upload your static files — HTML, CSS, fonts, images, and anything else — and push to the repo. There's no build step described in the source material, so this is for files that are already ready to serve.
A caching caveat worth knowing
pages.gay uses a cache, so updates may not show up for a few minutes after you push. If you need to see a change immediately, a hard refresh (Ctrl + Shift + R) forces a cache update. Plan for this if you're iterating quickly or verifying a deploy.
Custom domains
To serve a site on your own domain, add a .domains file to your repository — in the same branch as the page's content — containing the domain you want to use. Then configure DNS:
| Domain type | Records to add |
|---|---|
| Subdomain | CNAME pointing to [branch].[repo].[user].pages.gay |
| Apex domain | A record → 213.210.34.143, AAAA record → 2a0f:9400:6906:1977::143, and a TXT record with content [branch].[repo].[user].pages.gay |
Apex domains need the A/AAAA/TXT combination because CNAME records don't work at the apex.
Self-hosting
If you have your own Gitea or Forgejo server, pages.gay can be self-hosted. The source material points to the docs for that setup rather than describing the steps, so treat the hosted git.gay flow and the self-hosted flow as separate paths and follow the docs if you go the self-hosted route.
Who this fits
pages.gay suits you if:
- Your site is already static — plain HTML/CSS/assets with no server-side rendering.
- You're comfortable with Git and want deployment to be "push to a branch."
- You want a free-looking, low-friction home for a personal or project page tied to a git.gay account.
It's less suited to sites that need a build pipeline, server-side logic, or instant cache-free updates on every push.