Skip to content

Refactor web/ to Vite + React + shadcn#77

Merged
snowmead merged 1 commit into
mainfrom
web/vite-shadcn-landing
Jul 18, 2026
Merged

Refactor web/ to Vite + React + shadcn#77
snowmead merged 1 commit into
mainfrom
web/vite-shadcn-landing

Conversation

@snowmead

@snowmead snowmead commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace the static web/ site with Vite + React + TypeScript + shadcn
  • Keep hero demo/animations; reorder and tighten later sections for scanability
  • Document the real machine envelope (success + failure with error.context) and human→agent handoff

Test plan

  • cd web && npm install && npm run build
  • npm run dev — hero/fleet demos, copy install, /llms.txt
  • Vercel Root Directory web, framework Vite

Note

Low Risk
Changes are confined to the marketing web/ frontend and ignore rules; no runtime CLI, auth, or data-path changes.

Overview
Replaces the static web/ landing page (inline HTML plus main.js) with a Vite + React + TypeScript app using Tailwind 4 and shadcn UI. index.html is now a thin shell that mounts React at #root.

Hero and fleet demos keep the same timed up/down behavior: animation timing moves into lib/conductor.ts and React components (HeroDemo, Fleet) instead of vanilla DOM scripts. Reduced-motion and demo pause-on-hover behavior are preserved.

Page content is reorganized for scanability: lifecycle verbs lead, then install (human → agent handoff via skill/SCHEMA), then agent JSON contract with success and failure envelopes (error.context, logs hints), parallel agents, and a shorter “why” section.

Tooling and deploy: root and web/ gitignores for node_modules, dist, .vercel; oxlint; vercel.json for Vite and llms.txt headers. Static web/main.js is removed.

Reviewed by Cursor Bugbot for commit bcc338f. Bugbot is set up for automated code reviews on this repo. Configure here.

Preserve the hero demo and brand, tighten post-hero copy for agent
readability, and teach the real --json envelope with success and failure
samples.
@snowmead
snowmead merged commit 4727677 into main Jul 18, 2026
@snowmead
snowmead deleted the web/vite-shadcn-landing branch July 18, 2026 15:35

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit bcc338f. Configure here.

</div>
</div>

<HeroDemo reduceMotion={reduceMotion} conductor={conductor} />

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copy install breaks hero demo

High Severity

useCopy lives in Hero, so clicking Copy install re-renders HeroDemo. React reapplies fixed props (data-phase="idle", hidden on command spans, base classNames), wiping imperative animation state. Scheduled cues may not replay until the next cycle, leaving the hero demo stuck wrong for up to one loop.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit bcc338f. Configure here.

Comment thread web/src/lib/conductor.ts
stop() {
running = false;
cancelAnimationFrame(raf);
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Conductor stop leaves RAF running

Medium Severity

stop sets running false and cancels one frame id, but each tick always schedules another requestAnimationFrame without checking running. A tick already on the stack reschedules after stop, so the loop can outlive unmount or a later start and duplicate listeners work.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit bcc338f. Configure here.

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