feat: add launch landing site#686
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
thymikee
left a comment
There was a problem hiding this comment.
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.
getGitHubRepoStatsusesnext: { revalidate: 4h }for ISR caching, attachesGITHUB_TOKENwhen present (avoids unauthenticated rate limits), and degrades gracefully tonull→GitHubStarLinkFallback. The repo slugcallstackincubator/agent-devicematches the canonical one inREADME.md/package.json, so the counter resolves. Good defensive design. - Accessible, well-behaved carousel.
hero-agent-carousel.tsxpauses on hover/focus/visibilitychange, honorsprefers-reduced-motion, and drives everything through refs so theuseCallbacks stay stable without stale-closure bugs. Nicely done.
Worth considering
- Clipboard API ordering (
prompt-copy-button.tsx). The primary path is the deprecateddocument.execCommand("copy"), withnavigator.clipboard.writeTextonly 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, withexecCommandas the legacy fallback. It works today, but it leads with a deprecated API. force-dynamicon static text routes.llms.txtandllms-full.txtsetexport const dynamic = "force-dynamic", butcreateLlmsTxt()/createLlmsFullTxt()are build-time-constant. This opts the routes out of static optimization so each origin request recomputes them (mitigated by the manualCache-Control+ CDN). If the content is truly static, droppingforce-dynamic(orforce-static) lets Next serve them as static assets.- Nit — OG image fonts.
og-image.tsxrenders with systemmonospace/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
|
Landing preview automation is now wired via |
Summary
Adds the new
landingNext.js site for the public agent-device.dev launch, rebased onto latestmain.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
landingapp.Validation
Ran
pnpm lint,pnpm audit:assets,pnpm build, andLANDING_SMOKE_URL=http://localhost:4312 pnpm smoke:browser. Browser smoke passed for 3 pages across 3 viewports.