Skip to content

feat: add dedicated marketing site - #15

Merged
murilopmachado merged 3 commits into
mainfrom
feat/add-marketing-site
Aug 4, 2026
Merged

feat: add dedicated marketing site#15
murilopmachado merged 3 commits into
mainfrom
feat/add-marketing-site

Conversation

@murilopmachado

Copy link
Copy Markdown
Member

Summary

Adds a dedicated AxeForge-branded marketing site for aigate at web/, deployed via GitHub Pages.

  • Hero: live-simulated aigate run -- claude terminal — real sandbox-active banner strings and a rotating blocked-event feed pulled from actual source strings, not fabricated copy.
  • 4-card kernel-isolation breakdown (file, filesystem scope, network, process), each backed by the real OS primitive it uses.
  • Cross-platform capability table: Linux (bwrap) / Linux (unshare fallback) / macOS, per enforcement layer.
  • 5-step command guide: setupinitdeny/allowrundoctor.
  • 4 use-case cards grounded in the README: regulated environments, credential exfiltration, egress lockdown, CI gating.
  • Install section using the real README TL;DR curl command.
  • Full SEO head (OG/Twitter tags, canonical, SoftwareApplication JSON-LD), robots.txt, sitemap.xml.
  • Pages workflow guarded to AxeForging/aigate so forks don't accidentally deploy.

Impeccable audit — final score: 20/20 (all 5 dimensions at 4/4)

Ran the mechanical detector + a full manual 5-dimension audit, fixed every verified real finding, then re-verified.

Dimension Score Why
Accessibility 4/4 Contrast computed (accent-as-text ~6.9:1, muted-text ~7.7:1 on the relay flavor's shell, both clear AA); global :focus-visible; clean h1→h2→h3 hierarchy; decorative logo alt=""; prefers-reduced-motion disables both looping animations and preserves state (3 seed feed lines still render, JS interval is what's paused, not the content).
Performance 4/4 The only looping animations (pulse dot, feed-line entrance) animate transform/opacity only; hover transitions are one-shot paint-only (border-color/box-shadow); on-page images are tiny (6.8KB/9.3KB); font-display: optional avoids FOIT/layout shift.
Theming 4/4 Every color routes through var(--af-*) except two justified severity-status colors (info/warn dots in the live feed). Confirmed two real fonts in use by grepping axeforge.css's font-family declarations (Inter via --af-font-sans for body, JetBrains Mono via --af-font-mono for terminal/labels/code).
Responsive 4/4 Verified with headless Chromium screenshots at 320px, 375px, and 1440px, both visually and with a same-origin iframe probe measuring scrollWidth vs clientWidth — zero page-level horizontal overflow at any width. Checked every grid-template-columns in the file for the bare-1fr-next-to-fixed-column bug class; all already use minmax(0, 1fr). The one intentionally wide element (isolation table) scrolls inside its own .table-scroll container without leaking to the page.
Implementation Integrity 4/4 Content is real and product-specific throughout — no placeholder copy, no fabricated stats. Fixed the one verified real finding (below). Confirmed two detector flags as pre-known false positives (see below).

Verified detector false positives (not fixed, confirmed correct as-is)

  • codex-grid-background: the dot-grid hero background is the shared AxeForge brand kit's .technical-grid-style convention, used identically across gumshoe/heyra/rsvp-m5 — an intentional cross-site pattern, not AI slop.
  • single-font: disproven by inspection — axeforge.css declares font-family: var(--af-font-sans) on body (Inter) and var(--af-font-mono) on .terminal-window/code/labels (JetBrains Mono). Two real fonts, hierarchy carried by both family and weight/size.

Real finding, fixed

  • Em-dash density: 10 &mdash; instances across 4,581 chars of visible body text (~1 per 458 chars) — over the detector's own AI-cadence saturation threshold. Rewrote all 10 to varied punctuation (parentheses, period, semicolon, colon, commas) chosen per sentence. Detector count dropped 21 → 11 post-fix; manual inspection confirms the residual 11 are 100% literal CLI double-dash flags rendered as visible <code> text (--unshare-net, --bind, --map-root-user, etc.), three genuine simulated-terminal-output strings (required by design to mirror real source strings), and the standard "Product — tagline" <title> convention — zero remaining stylistic prose em-dashes. This is a second, distinct, now-verified false positive for this page.

Test plan

  • node detect.mjs --json web/index.html run before and after fixes
  • Headless Chromium screenshots at 320px / 375px / 1440px, read as images
  • Same-origin iframe overflow probe: scrollWidth === clientWidth at all three widths
  • Manual contrast computation on the active relay flavor's token values
  • Grepped axeforge.css font-family declarations to settle the single-font flag

Static GitHub Pages site under web/ following the AxeForge relay template
(hero with a simulated aigate run -- claude / audit-log demo, isolation
mechanism breakdown, cross-platform table, five-command guide, use cases
grounded in the README, and the real install one-liner), full SEO head
block (OG/Twitter tags with an og-image from docs/banner.png, canonical,
SoftwareApplication JSON-LD), robots.txt/sitemap.xml, and the Pages
deploy workflow.
Reduced em-dash density in marketing-site body copy from 10 instances
(~1 per 458 chars, over the AI-cadence saturation threshold) down to
zero real prose em-dashes, replacing them with parentheses, periods,
semicolons, colons, and commas chosen per-sentence for readability.

Full 5-dimension audit (accessibility, performance, theming,
responsive, implementation integrity) verified at 4/4 each after this
fix -- see PR description for the detailed breakdown, including two
detector flags (grid-background, single-font) confirmed as pre-known
false positives and a third (em-dash count) reduced to a residual of
CLI double-dash flags and title-separator usage, not stylistic
overuse.
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

✅ PR title follows the required format

Current title: feat: add dedicated marketing site

Team credit should stay at the org level, not name a specific
contributor -- more people than one work on AxeForging repos.
@murilopmachado
murilopmachado merged commit 7c4b752 into main Aug 4, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant