Skip to content

feat: add launch landing site#686

Closed
thymikee wants to merge 8 commits into
mainfrom
landing-launch
Closed

feat: add launch landing site#686
thymikee wants to merge 8 commits into
mainfrom
landing-launch

Conversation

@thymikee
Copy link
Copy Markdown
Member

@thymikee thymikee commented Jun 3, 2026

Summary

Adds the new landing Next.js site for the public agent-device.dev launch, rebased onto latest main.

Adds the missing GitHub header link with a server-rendered live star counter cached for 4 hours.

Touched file count: 87. Scope is limited to the landing app.

Validation

Ran pnpm lint, pnpm audit:assets, pnpm build, and LANDING_SMOKE_URL=http://localhost:4312 pnpm smoke:browser. Browser smoke passed for 3 pages across 3 viewports.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

Size Report

Metric Base Current Diff
JS raw 1.1 MB 1.1 MB 0 B
JS gzip 367.5 kB 367.5 kB 0 B
npm tarball 473.5 kB 473.5 kB 0 B
npm unpacked 1.6 MB 1.6 MB 0 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 25.4 ms 25.3 ms -0.1 ms
CLI --help 40.3 ms 41.5 ms +1.3 ms

Top changed chunks: no changes in the largest emitted chunks.

@thymikee thymikee closed this Jun 3, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-03 21:00 UTC

Copy link
Copy Markdown
Member Author

@thymikee thymikee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: launch landing site

Reviewed the dynamic/data-flow surface (the static content + assets I skimmed only). Focused on perf, data flow, and API usage per the review criteria. Overall the server/client boundary is clean. Notes, all low-severity:

What works well

  • Resilient GitHub stats flow. getGitHubRepoStats uses next: { revalidate: 4h } for ISR caching, attaches GITHUB_TOKEN when present (avoids unauthenticated rate limits), and degrades gracefully to nullGitHubStarLinkFallback. The repo slug callstackincubator/agent-device matches the canonical one in README.md/package.json, so the counter resolves. Good defensive design.
  • Accessible, well-behaved carousel. hero-agent-carousel.tsx pauses on hover/focus/visibilitychange, honors prefers-reduced-motion, and drives everything through refs so the useCallbacks stay stable without stale-closure bugs. Nicely done.

Worth considering

  • Clipboard API ordering (prompt-copy-button.tsx). The primary path is the deprecated document.execCommand("copy"), with navigator.clipboard.writeText only as the fallback when that returns false. This is inverted from current best practice — the async Clipboard API is the standard and should be tried first, with execCommand as the legacy fallback. It works today, but it leads with a deprecated API.
  • force-dynamic on static text routes. llms.txt and llms-full.txt set export const dynamic = "force-dynamic", but createLlmsTxt()/createLlmsFullTxt() are build-time-constant. This opts the routes out of static optimization so each origin request recomputes them (mitigated by the manual Cache-Control + CDN). If the content is truly static, dropping force-dynamic (or force-static) lets Next serve them as static assets.
  • Nit — OG image fonts. og-image.tsx renders with system monospace/default sans rather than the bundled Alliance/Switzer brand fonts. Purely cosmetic; flagging only since the brand fonts are already in the bundle.

Noting this PR is already closed — happy to move these onto whichever PR carries the landing site forward if that's more useful.


Generated by Claude Code

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