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]