Friendly answers, no jargon. If you're stuck after this, open an issue - real humans read them.
Everything happens in the claim repo.
One JSON file in pages/ is one page. The fastest path is the
guided form, which writes the file for you. Names are 2-40 characters
of lowercase letters, numbers and hyphens, and each GitHub account can claim up to
2 pages while we're young.
For people without a website. You describe your page, we render it at
name.got-a.page - responsive, accessible, light and dark, in one of six
themes: sunrise, lagoon, forest, plum,
slate, ember.
{
"mode": "instant",
"owner": { "github": "yourusername" },
"showcase": true,
"page": {
"type": "person",
"title": "Your Name",
"tagline": "What you're about",
"avatar": "https://github.com/yourusername.png",
"theme": "sunrise",
"links": [{ "label": "GitHub", "url": "https://github.com/yourusername" }],
"sections": [{ "heading": "About", "text": "A few sentences about you." }]
}
}
type: person or product today; project,
community and event templates arrive in Phase 2.showcase: true opts you into the Wall of Pages gallery (coming in Phase 2).product.launchDate, a product.cta
button, product.features and product.screenshots.https:// - the .page domain demands it.Already have a site? Point your name at it. Supported records:
CNAME, A, AAAA, TXT. A CNAME can't be
combined with other record types - that's a DNS rule, not ours.
{
"mode": "point",
"owner": { "github": "yourusername" },
"purpose": "My portfolio",
"records": { "CNAME": "yourusername.github.io" }
}
A merged claim creates DNS records. It does not add the domain to your
hosting account. Both sides must be set up before your site can load at
yourname.got-a.page. Instant mode needs none of these steps.
Add yourname.got-a.page to the host serving your site, using the steps below.
Do this before the claim is merged and DNS is published, so the hostname is
associated with your site first. Copy the host's recommended DNS target into
your claim's records field. If you already opened the PR, edit the same file
on your fork's branch to update it.
You do not need access to the got-a.page DNS dashboard or to change its
nameservers. The claim repo publishes the supported records for you.
yourname.got-a.page, then Save.CNAME file to the root of your
publishing source. It contains only yourname.got-a.page, without https://
or a path. Keep it in future builds. If you use a custom GitHub Actions
publishing workflow, the Pages setting is still required, but a CNAME
file is ignored and is not required."records": { "CNAME": "yourusername.github.io" }
(or your organization's github.io hostname). Do not include a repository
path or https://.yourname.got-a.page to that project.records.CNAME. Vercel uses project-specific targets, so do not copy a
generic target or another project's value.CNAME file is needed in your source repository.yourname.got-a.page, and follow Verify > Add
domain. Keep external DNS; do not move the got-a.page nameservers.your-site.netlify.app; copy the value
Netlify gives you into records.CNAME.CNAME file is needed in your source repository.Netlify domain steps and external DNS instructions
yourname.got-a.page and continue through the setup.522 error.your-site.pages.dev target in records.CNAME. The
claim repo handles DNS; you do not need to add the got-a.page zone to
your account or change its nameservers.CNAME file is needed in your source repository.https://yourname.got-a.page and confirm it shows your own site with
a valid certificate. .page addresses require HTTPS, so an unfinished
certificate can prevent the site from opening.If a host asks for an extra verification record, copy the exact record name, type and value into an issue for maintainers to review. Do not add it at the wrong name or combine a CNAME with TXT on the same hostname. The current claim format does not support arbitrary verification-record names. Never post passwords, API keys or login codes.
Before removing your custom domain or deleting your hosted site, remove the point-mode claim's DNS through a PR too. Leaving DNS pointed at a detached hosting account can let someone else claim that hostname.
Every .page address is forced onto HTTPS by browsers themselves (the TLD is
on the HSTS preload list). That's great for safety, and it means two practical things:
instant pages are always secure (we handle it), and point-mode targets must serve valid
HTTPS or browsers will refuse to load them. All the hosts in the table above do this
automatically once the custom domain is added.
owner.github must match the PR author.See a page doing harm? Email abuse@got-a.page with the subdomain and what's wrong. Clear abuse comes down first and gets discussed after - the full policy is in ABUSE.md.