The public Beacon URL
A freelancer’s availability page. Server-rendered, linkable, crawlable, and readable without running any JavaScript.
The URL
/beacon/:username
The username is the freelancer’s own. No credential, no query parameters, no content negotiation - it is a page, and it behaves like one.
What comes back
A complete HTML document with the availability content already in it - the status and percentage, the next opening date, the freshness marker, the display name and photo, and whatever the freelancer wrote themselves. It is not an empty shell that fills itself in afterwards, so a crawler, a link unfurler or a text-mode browser sees the same thing a person does.
The document carries its own Open Graph tags pointing at the share card, so linking to the page is normally all you need for a rich preview.
Status codes, and the distinction that matters
| Case | Status |
|---|---|
| The username exists and has published | 200 |
| The username exists but has never published | 200, with a page saying there is nothing to show |
| The username belongs to nobody | 404 |
The middle row is the one worth reading twice. An account that exists but has not published is not a 404: the page is genuinely theirs, they have simply not put anything on it yet.
The last row is deliberate rather than incidental. Answering 200 for a username nobody owns would keep a deleted account’s URL looking alive to every crawler, unfurler and monitor - which is the opposite of what deleting an account is supposed to mean.
Linking to it
- The URL is stable while the username is. A freelancer who changes their username changes their Beacon address with it, and the old one stops resolving.
- It is safe to link publicly. It is a public page by design, no account is needed to read it, and there is no view counter anywhere - so neither you nor the freelancer learns who followed the link.
- Do not scrape the number out of it. If you want the status programmatically, embed the badge - it is a stable, documented surface, and the page’s markup is not.
Dates on this page
Any date it shows - a next opening, a return from time off - is the freelancer’s own calendar date and is not converted into the reader’s timezone. See Dates and timezones before you reformat one.