Skip to content

Real product screenshots in marketing BrowserFrames (Group C)#279

Open
blove wants to merge 2 commits into
mainfrom
claude/screenshot-capture
Open

Real product screenshots in marketing BrowserFrames (Group C)#279
blove wants to merge 2 commits into
mainfrom
claude/screenshot-capture

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 13, 2026

Summary

Group C of the post-merge brand sweep — closes Phase 3 of the original Statusbrew refactor spec (deferred at brainstorm time). Replaces the inline ASCII-prose placeholders inside the marketing BrowserFrames with real screenshots captured from the live `cockpit.cacheplane.ai` reference app.

What's new

Capture script — `apps/website/scripts/capture-screenshots.ts`

  • Playwright headless Chromium, 1440×900 viewport at 2× DPR
  • Drives cockpit through its 4 modes (Run / Code / Docs / API), screenshots the content section
  • Sharp pipeline: resize to max 1400 wide, encode WebP @ q=85
  • Idempotent — re-running overwrites committed WebPs

4 committed screenshots — `apps/website/public/screenshots/`

File Size Source
`cockpit-code.webp` 67K Real Angular streaming component code, dark tokyo-night
`cockpit-docs.webp` 61K Streaming guide with provideAgent setup + numbered steps
`cockpit-api.webp` 37K Python API reference rendered as structured cards
`cockpit-run.webp` 11K Live chat surface in its default "How can I help?" state

Wired into 4 BrowserFrame slots:

Slot Capture
Homepage Hero collage back frame `cockpit-code.webp`
Homepage Hero collage front frame (stays synthetic — too small for a screenshot to be legible)
Homepage Stream block `cockpit-docs.webp`
Homepage Render block `cockpit-api.webp`
`/pilot-to-prod` Build block `cockpit-run.webp`

The Ship FeatureBlock already used `LiveCockpitFrame` (lazy-loaded live iframe) — unchanged.

Net effect

  • `page.tsx`: −133 lines / +17 lines (lots of inline placeholder UI removed)
  • `Hero.tsx`: −49 lines / +12 lines
  • `pilot-to-prod/page.tsx`: −21 lines / +9 lines
  • +4 WebP files (~176K total)
  • +1 capture script (~150 lines)

Test plan

  • `pnpm nx e2e website` — 35 passed
  • Manual visual check that each of the 4 BrowserFrames renders a real cockpit screenshot
  • Re-run the script locally to confirm reproducibility

Re-running the script

```
pnpm tsx apps/website/scripts/capture-screenshots.ts
```

Optional flags: `--url ` to capture from a different cockpit URL, `--keep-png` to retain the intermediate PNGs for inspection.

🤖 Generated with Claude Code

…roup C)

Phase 3 of the original spec — replaces inline placeholder UI in the
marketing BrowserFrames with real screenshots captured from the live
cockpit.cacheplane.ai reference app.

New script — apps/website/scripts/capture-screenshots.ts:
- Playwright headless Chromium, 1440×900 viewport at 2× DPR
- Visits cockpit.cacheplane.ai, switches through all 4 modes
  (Run, Code, Docs, API), screenshots the content section
- Sharp pipeline: resize to max 1400 wide, encode as WebP q=85
- Idempotent — re-running overwrites the committed WebPs

Captured screenshots — apps/website/public/screenshots/:
- cockpit-code.webp  (67K)  — Code mode showing real Angular component
- cockpit-docs.webp  (61K)  — Docs mode showing the streaming guide
- cockpit-api.webp   (37K)  — API mode showing structured reference
- cockpit-run.webp   (11K)  — Run mode showing the live chat surface

Wired into 4 BrowserFrame slots:
- Hero.tsx — collage back frame: cockpit-code.webp
  (front frame stays synthetic — small enough that a real shot would
  be illegible at that size)
- page.tsx Stream FeatureBlock: cockpit-docs.webp
- page.tsx Render FeatureBlock: cockpit-api.webp
- pilot-to-prod/page.tsx Build block: cockpit-run.webp

The Ship FeatureBlock already used LiveCockpitFrame (lazy-loaded live
iframe) — unchanged.

Re-running the script: pnpm tsx apps/website/scripts/capture-screenshots.ts
Optional flags: --url <override> --keep-png

All 35 website e2e tests pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 13, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cacheplane Ready Ready Preview, Comment May 13, 2026 4:10am

Request Review

The eslint-disable-next-line @next/next/no-img-element comments
added in d035751 reference a rule the project's ESLint config
doesn't load — and ESLint treats a disable directive for an
undefined rule as an error itself.

Drops the comments. The <img> usages are intentional (real local
WebP screenshots in BrowserFrames where Next.js Image's optimization
isn't needed — the files are already optimized and locally served).

Fixes the Website — lint / build CI failure.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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