Drop in a self-contained HTML page, get an instant shareable URL. Publish, update in place, remove, and optionally make it search-discoverable — the same API the now-defunct PageDrop used, self-hosted.
All commands run the bundled publish.py. Writes need BRILLYANCE_PUBLISH_TOKEN exported in your shell; reads are public.
python3 publish.py --file report.html
Returns a siteId, a public url (/s/<id>), an embedUrl (/embed/<id>, frame-friendly), and a delete token. Save the delete token — it's the only way to update or remove the page later.
| Flag | What it does |
|---|---|
--slug name | Memorable URL, e.g. /s/quarterly-report. 3–64 chars, lowercase, hyphens. |
--password secret | Visitors must enter a password before the page renders. |
--ttl 7d | Auto-expire. 1h–365d, once (deleted after first view), or omit for permanent. |
--discoverable | Make it search-indexable and list it in the sitemap (see below). Pair with --title / --description. |
python3 publish.py --file report.html --slug q3-report --password board2026 --ttl 30d
Pages are unlisted by default — anyone with the link can view them, but they're noindex and absent from the sitemap. Opt a page into search with --discoverable:
python3 publish.py --file report.html --slug q3-report --discoverable \
--title "Q3 Revenue" --description "Quarterly revenue results."
Discoverable pages send index, follow, get a <link rel="canonical"> plus Open Graph / Twitter tags injected into the <head> (additive — your own <title>/<meta> are untouched), and are listed in /sitemap.xml. /robots.txt points crawlers there; the /embed view always stays noindex and canonicalises back to /s.
Replace the content without changing the link — anyone who already has the URL sees the new version.
python3 publish.py --update SITE_ID --token DELETE_TOKEN --file report-v2.html
Omit --file for a metadata-only update — change settings without re-uploading the HTML. For example, toggle discoverability on an existing page:
python3 publish.py --update SITE_ID --token DELETE_TOKEN --discoverable # list it
python3 publish.py --update SITE_ID --token DELETE_TOKEN --no-discoverable # unlist it
python3 publish.py --delete SITE_ID --token DELETE_TOKEN
The URL becomes a permanent 410 Gone. Deletion is irreversible.
python3 publish.py --info SITE_ID
Public metadata only — slug, TTL, view count, whether it's password-protected, whether it's discoverable. Never the HTML.
--discoverable with --password or a short --ttl — gated or expiring pages shouldn't be indexed.