-
Notifications
You must be signed in to change notification settings - Fork 153
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
@thymikee
thymikee
left a comment
There was a problem hiding this 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.
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
thymikee
commented
Jun 10, 2026
Landing preview automation is now wired via .github/workflows/landing-preview.yml and triggered on this reopened PR. Evidence: the new Deploy Landing Preview check appeared on PR #686 after reopening. It currently fails at Verify Vercel token because no VERCEL_TOKEN repository secret is available to Actions. Add a Vercel token secret for the linked landing/.vercel/project.json project and rerun the workflow to produce the preview URL comment.
thymikee
commented
Jun 11, 2026
Code review
Verdict: minor issues — clean, well-built marketing site; one broken CTA and a couple of content nits.
Findings
-
Major —
landing/src/components/stack-support-section.tsx:19: the "Book consultation" button links tohref="#demo", but#demois the id of the very section the button sits in (SectionShell id="demo"at line 9), so clicking this lead-gen CTA does nothing. The equivalent CTAs on product pages (product-page.tsx:283) correctly link to the Callstack contact form — the "link demo cta to contact form" commit evidently missed this one. -
Minor —
landing/src/components/home/footer.tsx:15-17: in the "Documentation" footer group, both the "Documentation" and "GitHub" links point to the same GitHub repo URL, making the Documentation link redundant given the project has a docs site. -
Minor —
landing/src/app/fonts/AllianceNo2-*.ttf: four files of the commercial Alliance No.2 typeface (~355 KB) are committed to a public OSS repo; worth confirming the license permits public redistribution of the raw font files (Switzer/Geist are fine).
Checked and solid
- GitHub star counter (
landing/src/lib/github.ts): returnsnullon any failure, 4hnext.revalidateset correctly, token only fromprocess.env.GITHUB_TOKEN, and the consumer degrades to a "Stars" label viaSuspense— a GitHub outage/rate-limit can't break the page. - List keys: all
.map()renderings use stable content-based keys; no remaining index-key hazards. - Internal links/anchors: all resolve except
#demo(finding 1). - CI workflow (
landing-preview.yml): fork-PR guard, pinned action SHAs, secrets handled properly. - Workspace isolation:
landing/is a fully isolated pnpm workspace (ownpnpm-workspace.yaml+ lockfile), so the main package build and CI are unaffected. - No secrets in the diff; assets are all webp/svg, largest 107 KB; a11y/SEO (aria-labels, roving tabindex, reduced-motion, metadata/OG/sitemap/JSON-LD) are in good shape.
Overall
Fix the self-referencing #demo anchor and this is good to merge.
Generated by Claude Code
thymikee
commented
Jun 12, 2026
Addressed the actionable PR feedback in commit 19b54c259.
Before -> after evidence:
- Prompt copy tried
execCommandfirst -> now uses async Clipboard API first, with legacy textarea fallback. /llms.txtand/llms-full.txtwere forced dynamic -> now force-static; local build reports both routes as static.- OG images used default/monospace text -> now load the bundled Alliance brand font in
ImageResponse. - "Book consultation" pointed at
#demo-> now points to the Callstack contact form. - Footer "Documentation" pointed at GitHub -> now points to the docs site.
Validation:
pnpm lintpnpm buildLANDING_SMOKE_URL=http://127.0.0.1:4312 pnpm smoke:browser
Notes:
- Alliance font license/redistribution still needs owner confirmation; that is not verifiable from code.
- Vercel preview automation retriggered and is currently pending. Earlier preview run was blocked by the missing repo
VERCEL_TOKENsecret.
Uh oh!
There was an error while loading. Please reload this page.
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.