The p. url
p.shebang.pro/<public-id> — how a page's address is built, and what changed for older accounts.
The p. url
A published page is served at:
p.shebang.pro/<public-id>
where the public id is 12 characters from a 32-symbol alphabet, matching
^[a-z2-7]{12}$. It's assigned once, at publish time, and never
changes — renaming a page's title or its slug afterward doesn't touch
the address. See public ids and urls
for the full rules this shares with sherserve's f. addresses.
The trailing slash
A page's entrypoint is served at p.shebang.pro/<public-id>/ — with a
trailing slash. The bare p.shebang.pro/<public-id> answers a 308 to
the slashed form (query string preserved). That is what makes a
bundle's own relative references (<link href="styles.css">,
<a href="about.html">) resolve inside the bundle rather than at the
host root; a bundle asset is served at p.shebang.pro/<public-id>/<path>
as before. Links you share can use either form.
The old @handle/slug form
Older accounts may still see a page referred to by its owner's handle
and slug, @handle/slug, in places that predate public ids. Visiting
that form answers a 301 redirect — preserving any sub-path and query
string — to the id-based address above, for one release, rather than
serving the page directly. Anything you link going forward should use
the p.shebang.pro/<public-id> form; the redirect is a bridge, not a
permanent alternative.
Slug is a label, not an address
A page's slug still exists and shows up in the dashboard and in a
short link's preview card, but it plays no part in the served url
anymore. Renaming it is purely cosmetic and never breaks a link.
The short-link wrapper
Every publish also creates an sl.shebang.pro short link automatically,
alongside the p. address — see short links and aliases
for how that wrapper works and what deleting it does.