Handles
The @handle every account has — where it's used today, and where it used to appear in urls.
Handles
Every sherlock account has a unique @handle — 3 to 20 characters,
lowercase letters, numbers, and underscores. It's shown next to your
email on the account page, with a Change handle dialog to pick a new
one at any time.
Reserved names
A handful of names are reserved and can never be claimed, including
admin, root, support, help, api, auth, shebang, dash,
and each service's own name (sherlock, sherpage, sherserve,
sherlink, sherbase). Picking one of these returns "Already taken"
even though no account holds it.
The list is enforced server-side at three points, all kept in sync:
the pre-signup availability check, the sign-up trigger that assigns a
handle to a new account, and a database constraint on the profiles
table itself — so a reserved handle can't slip through even if the
first two are bypassed.
Where a handle is used
Today, a handle's only real job is identifying your account — in the delete-account confirmation dialog, for example, which asks you to type it back before it will proceed.
The old @handle/slug url form
Before public ids, a published page or uploaded file's address was built
from its owner's handle and the resource's slug —
dash.shebang.pro/@yourhandle/some-slug, in effect. That form is
superseded: every resource now gets a permanent, handle-independent
address instead. See
public ids and urls for the current
shape, and for how an old @handle/slug link keeps working via a
redirect rather than breaking outright.
Because a handle can still be changed later, nothing that has to keep working — a bookmark, a link shared once — should ever be built from it again.