gf.cx · og card gallery
GF.CX · OG CARD GALLERY · 4 JUNE 2026
Every gf.cx surface that ships an og:image, rendered side-by-side. One public R2 URL per surface, refreshed at last commit (deploy-coupled surfaces) or daily sweep (registry-driven). External resolvers (iMessage/WhatsApp/Slack) and internal home-network viewers fetch the same fresh asset.
TL;DR
- 8 cards live on R2 (1 from earlier · 7 shipped today).
- 1 surface (kb.gf.cx) deploy-coupled — refreshes on every publish.
- 7 surfaces on registry sweep — daily via
og_card_refresh_all.sh. - 13 surfaces still on shared
assets.gf.cx/share/card.svgdefault — next migration. - OPEN: most surfaces have R2 assets live but don’t yet emit
<meta property="og:image">pointing at them.
Per-surface cards
kb.gf.cx · CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Access · deploy-coupled
images.dare.co.uk/og/kb-gf-cx.png
pa.gf.cx · CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Access · sweep
images.dare.co.uk/og/pa-gf-cx.png
data.gf.cx · CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Access · sweep
images.dare.co.uk/og/data-gf-cx.png
snapshots.gf.cx · CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Access · sweep
images.dare.co.uk/og/snapshots-gf-cx.png
etf.gf.cx · CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Access · sweep
images.dare.co.uk/og/etf-gf-cx.png
agent.gf.cx · CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Access · sweep
images.dare.co.uk/og/agent-gf-cx.png
Still on shared default
These surfaces emit og:image pointing at assets.gf.cx/share/card.svg — a single shared card that doesn’t identify which surface it represents. Per-surface override is the next migration.
| Surface | Current og:image | Status |
|---|---|---|
| abbeyroad.gf.cx | assets.gf.cx/share/card.svg |
shared |
| audrey.gf.cx | assets.gf.cx/share/card.svg |
shared |
| claude.gf.cx | assets.gf.cx/share/card.svg |
shared |
| dash.gf.cx | assets.gf.cx/share/card.svg |
shared |
| io.gf.cx | assets.gf.cx/share/card.svg |
shared |
| library.gf.cx | assets.gf.cx/share/card.svg |
shared |
| notion.gf.cx | assets.gf.cx/share/card.svg |
shared |
| patterns.gf.cx | assets.gf.cx/share/card.svg |
shared |
| print.gf.cx | assets.gf.cx/share/card.svg |
shared |
| sandbox.gf.cx | assets.gf.cx/share/card.svg |
shared |
| status.gf.cx | assets.gf.cx/share/card.svg |
shared |
| svc.gf.cx | assets.gf.cx/share/card.svg |
shared |
| vault.gf.cx | assets.gf.cx/share/card.svg |
shared |
Mechanism
| Tier | Trigger | Wired by | Surfaces today |
|---|---|---|---|
| 1 · deploy-coupled | after each wrangler deploy |
deploy script calls og_static_card.py |
kb-gf-cx |
| 2 · registry sweep | daily (planned launchd) | og_card_refresh_all.sh reads og_surfaces.json |
pa, data, snapshots, etf, agent, evernote, labels |
Next concrete moves
- Wire
<meta property="og:image">into each surface’s HTML head pointing at its R2 URL — the assets are live but most surfaces don’t reference them yet - launchd plist for the daily Tier-2 sweep (target ~03:00 ET)
- Migrate the 13 shared-default surfaces to per-surface cards
- Refine per-surface accent palettes — current defaults are generic
- Extend
gfcx_subdomain_new.pyscaffold: auto-register new slugs inog_surfaces.json
Generated 2026-06-04 · source: ~/bin/og_static_card.py + ~/bin/og_card_refresh_all.sh · registry: ~/bin/og_surfaces.json · memory: rotation pattern

