Last updated 2026-08-04 · delete this file before merging to main.
Execution-Partner-AI/egp-site, local clone ~/code/egp-siteredesign/ai-os — PR #8 (all work lives here; NEVER push main)executegp)npx eleventy, publish _site, redirects in _redirectsnpx eleventy then cd _site && python3 -m http.server 8923 (or npm start for eleventy --serve)egp-site-redesign-ai-os.md — a fresh chat auto-loads the index.Eleventy 3 (Nunjucks), no framework. Everything data-driven:
| Piece | File(s) |
|---|---|
| App catalog (24 apps, 4 categories, agent copy) | _data/apps.js |
| App one-pager extras (stats + 3 illustrated sections each) | _data/appExtras.js |
| Industries (14, 3 groups) | _data/industries.js |
| Industry extras (day-timeline + 2 sections each) | _data/industryExtras.js |
| Release notes (AHQ 1.1.N versioning) | _data/releases.js |
| App/industry/release page templates (paginated) | app-pages.njk, industry-pages.njk, release-pages.njk |
| Nav + mega-drawers (Atlas HQ carries the apps drawer) | _includes/header.html |
| Footer (+ socials) | _includes/footer.html, _includes/socials.html |
| EKG signal divider (dark hero → white body bridge) | _includes/signal.html |
| Viz component library (10 CSS product vignettes) | _includes/viz.njk |
| Post layout (insights + editorial system) | _layouts/post.html |
| All styling (~2000 lines, token system at top) | assets/css/main.css |
All behavior (progressive enhancement, html.js gated) |
assets/js/main.js |
| Generated artwork (40+ SVG covers, client logos) | assets/images/art/, assets/images/clients/ |
Design system: void #030B18 ground, EP Navy #0B1F3A, amber #F59E0B = action/money ONLY, teal #14B8A6 = live/data ONLY, paper #F6F8FB. Archivo variable (display = 900 weight + font-stretch:125%), JetBrains Mono strictly for data/labels. Headlines end with amber period. Page pattern everywhere: dark hero (+ orbit ornament) → signal divider → white sections → dark final CTA.
/ — hero (Execution Feed terminal + circuit canvas), metric band, Our Clients logo wheel, apps marquee, 3-product architecture, 4 flow narratives w/ vignettes, pillars, pricing, integrations, community teaser, final CTA/atlas-hq/ — flagship: hero → AIOS learning-loop diagram → split row (copy + agency-mode diagram) → Odoo-style 17-tile clickable Nexus feature grid → centered CTA. (Apps tab was MERGED into Atlas HQ; /apps/ 301s to /atlas-hq/#apps; one-pagers keep /apps/<slug>/)/industries/ + 14 one-pagers (/industries/carpet-cleaning/ etc.)/community/ — Learn (insights posts, tutorials-coming, in-platform) + Collaborate (GitHub/Forum/Events/Partner cards w/ art) + socials row + white centered join form/community/insights/<slug>/ — 2 restored posts, editorial treatment (white body, drop cap, TOC scrollspy, progress bar, signal divider)/community/releases/ahq-1-1-1/ — versioned release notes w/ category filter chips + NEW/IMPROVED/FIXED badges/partners/ (footer-only link), /pricing/, /implementation/, /contact-us/ (Netlify form), legal pages, 404immutable, 1yr. assetVersion global (.eleventy.js) appends ?v= in base.html. Never remove — returning visitors get stale CSS otherwise.addAllPagesToCollections: true or sitemap only gets page 1.eleventyComputed titles double-escape entities — use `` inside computed front matter strings._redirects order matters — specific /blog/<slug>/ rules sit ABOVE the /blog/* wildcard.html.js classes; prefers-reduced-motion restores any animation-gated opacity (see the reduced-motion block in main.css)..aios-wrap auto-margins shrink grid items to the SVG's intrinsic 300px — .aios-compact fixes it for the split-row instance. Beware when reusing.html.js .rv{opacity:1!important;transition:none!important} before screenshotting..page-hero and .post-header.with-orbit (main.js). Homepage hero has its own canvas instead.===, is odd, groupby. Data files are CJS (module.exports)./pricing/#agency deep-links.site.signupUrl = https://app.executionpartner.ai/sign-up — route never verified against Clerk_data/releases.js fetches from atlas-hq prod release_notes (PostgREST) when RELEASE_NOTES_SUPABASE_URL + RELEASE_NOTES_SERVICE_KEY are set in Netlify env + a build hook fires on publish — not configured yet; bundled fallback carries AHQ 1.1.1. Next release = pin in VERSIONS map or let auto-increment name it 1.1.2.site.socials in .eleventy.js — GitHub real, X/LinkedIn/YouTube/Instagram/Facebook are # placeholdersassets/images/clients/)/blog/<slug>/; hq-table + nexus-frame CSS are dormant (experiments rolled back) — safe to delete or reusesrc/lib/nexus/feature-catalog.ts — 17 tabs as of 2026-08-04). Features living INSIDE a tab (missed-call text-back → Automations; funnels/forms/SEO/brand kit → Websites) are sold on the parent app's page, never as standalone apps. When atlas-hq adds/retires a rail tab, mirror it here (+ a 301 in _redirects for removals)._data/apps.js + _data/appExtras.js (stats + 3 sections + viz specs). Drawer, catalogs, sitemap, one-pager all generate. Add its tile to the Atlas HQ grid, then npm run og._data/industries.js + _data/industryExtras.js + drawer updates itself. Give long names a short field (feed titlebar + flow eyebrows use it); optional proof field renders a mono proof line. Then npm run og.npm run og (satori+sharp, scripts/generate-og.mjs, fonts vendored in scripts/fonts/) regenerates the 45 committed PNGs in assets/images/og/ — they are NOT built on deploy, so re-run after adding pages or changing tag lines. Per-page wiring = ogImage front matter / computed key; everything else falls back to og-default.png.BUNDLED in _data/releases.js (entries take cat + type: NEW|IMPROVED|FIXED), push. Or wire the env vars for auto.assets/images/clients/, edit the tile <img> in index.html (.client-tile, .dark variant for white logos).redesign/ai-os, push, Netlify auto-builds the PR preview (~45s). Verify with curl against the preview URL.Explanatory diagrams for concepts (AIOS loop, agency mode) — clean icon grids for feature lists (tried an interactive workspace-frame diagram for Nexus features; owner rolled it back to icons). Rejected a GHL-style comparison table. Hero stays navy; content sections white ("the Insights pages are literally perfect" — that's the canonical look). No emojis as icons anywhere. Everything centered means everything centered (watch lede blocks pinned left inside centered heads — fixed globally via .sec-head.center .lede{margin-inline:auto}).