Reference justinsforge homepage

File: forge/sites/justinsforge.com/landing/index.html. README: forge/sites/justinsforge.com/README.md. Built 2026-04-28.

What it is: single mobile-first landing page that surfaces every forge admin and read URL Justin uses. Replaces the prior minimal "Justin's second brain" landing while keeping the original Forge wordmark + dark-gold palette + live date/clock.

Sections (top to bottom):

Section Content
Brain mkdocs.justinsforge.com primary tile + quicklinks (today's daily log auto-computed client-side, handoffs, nexus, memory, docs, brands, CLAUDE, doctrine)
Operations finn, portainer, filebrowser, prowlarr, qtorrent, radarr, sonarr (each on .justinsforge.com)
Home homeassistant, frigate (each on .justinsforge.com)
Automation n8n.justinsforge.com
Capture doc-row pointing to inbox.justinsforge.com (webhook only, not browseable)
Surfaces Games (slide puzzle, maze, sketch pad)
Family hub outbound to justinkrystal.com
Brands justinwieb.com, shopnovadesign.com, gusoutdoor.co, sipnservesociety.com

Design tokens: --bg #0c0c0e, --card #16161a, --text #ededed, --muted #8c8c93, --accent #c9a227. Fonts: DM Sans + Playfair Display + JetBrains Mono. Drift-animated radial gradient backdrop. noindex, nofollow. manifest.json ships an inline-SVG Forge "F" icon for iOS home screen.

Deploy (canonical): edit landing/index.html in place. Console nginx (/etc/nginx/sites-enabled/justinsforge-games.conf) roots at /home/justinwieb/forge/sites/justinsforge.com/landing on port 8100; the next request picks up the change. No reload needed.

Routing: apex justinsforge.com → VR Alliance Cloudflare tunnel (fb20b500-0119-4c84-9536-fa85751987c3) → http://localhost:8100 on Console. All *.justinsforge.com subdomains (mkdocs, n8n, finn, portainer, filebrowser, prowlarr, qtorrent, radarr, sonarr, homeassistant, frigate, inbox) → media-server tunnel (a55b7768-b42a-4d78-82b5-4a427bdbb9b7) → respective LXCs.

Optional alternate origin: scripts/forge_sites_deploy.sh justinsforge.com ships landing/ + _shared/ + _templates/ to media-server CT 102 under /mnt/storage/appdata/justinsforge-media/landing via Finn pct push. No container currently runs against it; staged for failover only.

Access gating: apex IS gated as of 2026-04-28 evening. App "Forge Hub (apex)" (id e6e4ffa1-d79c-485c-bffb-79064bdd05c3) uses the "Justin Secure Only" reusable policy ([email protected] only). All *.justinsforge.com subdomains have their own per-app policies (most use Justin Secure Only, AdGuard uses "Justin and Krystal" so Krystal can manage DNS).

Preview: scripts/forge_sites_preview.sh justinsforge.com (port 8090 default), surfaces a Tailscale URL Justin can open from Venus.

Future updates: when a new forge admin surface comes online (or one is retired), edit the corresponding section in landing/index.html. Keep tiles short (name + one-line desc) to preserve the LLM-grep test (Justin scans the page mentally without scrolling).

[Claude Code, 2026-04-28]