Micropage
Builds a complete, styled webpage out of one URL parameter. Nothing is stored: the URL is the document, so the link is the only artefact and it can be shared, bookmarked or edited by hand. Pages carry no JavaScript.
The shape of a link
/micropage?p=<head>~<slot>~<slot>...
Dot-separated codes, namespaced by first letter: t=template, c=theme, w=width, a=accent, x=flags. Order does not matter. Only the template code is required; everything else falls back to a default.
Everything after the first ~ is slot content, positionally matched to the slots the chosen template declares. Extra slots are ignored; missing ones are omitted from the page rather than rendered blank.
Rules that will bite you
- Percent-encode each slot. The ~ between slots must stay literal; a tilde INSIDE content must be written %7E, or it will be read as a slot separator.
- An empty slot is two consecutive tildes.
- Never leave a literal + in content: write %2B. Some clients decode a bare + as a space, so "C++" silently becomes "C ".
- Never leave a literal # in content: write %23. Everything after a # is a URL fragment, is never sent to the server, and is lost with no error.
- Slot content is markdown-lite: **bold**, _italic_, `code`, [label](https://url) links, and line breaks. The Article body slot also takes headings, lists, quotes and code blocks.
- Only http, https, mailto and tel links survive; any other scheme renders as plain text. Raw HTML is escaped, never rendered.
- Keep the whole link under the length limit below. It is set so every page stays QR-encodable.
Templates
| Code | Name | Slots, in order |
|---|---|---|
tar |
Article Title, standfirst, and a full markdown body. |
title, lede, body |
tev |
Event Title, when, where, details, and a link. |
title, when, where, details, link |
tsg |
Sign One line of text scaled to fill the page. For printing and taping to a door. |
text, note |
twf |
WiFi A network name, password, and a QR code that joins the network when scanned. |
network, password, security |
tqr |
QR code A title above a large scannable QR code of a link. |
title, link |
Try one
Themes
| Code | Name | Look |
|---|---|---|
cl | Light | Clean light page, system sans |
cd | Dark | Dark page, system sans |
cm | Minimal mono | Monospace, generous whitespace |
cp | Paper | Serif on faintly textured off-white |
ct | Terminal | Monospace on near-black, with dashed rules |
cb | Brutalist | Heavy rules, flat black on white |
Accents
| Code | Name | Colour |
|---|---|---|
alob | Lobster | #E15554 |
arub | Ruby | #A31621 |
aamb | Amber | #ECC30B |
atig | Tiger | #F18701 |
alil | Lilac | #7768AE |
asky | Sky | #4D9DE0 |
aesp | Espresso | #551B14 |
apru | Prussian | #0A2239 |
agry | Grey | #6B7280 |
Widths and flags
Widths:
ws Small · wm Medium · wl Large · wf Full
Flags:
xc Centre all text · xb Larger display type scale
Limits
- Whole link: 1800 characters — chosen so every micropage link stays QR-encodable
- Slots: 24
- One slot: 600 characters, or 2000 for a markdown body
For agents
/micropage/agents returns this same registry as JSON — templates, slot order, limits, and a working example link per template.