Update all user-facing strings (HTML title, manifest, header logo, browser title updater), code comments, and documentation references. Folder name retained as-is.
6.3 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous
| phase | plan | type | wave | depends_on | files_modified | autonomous | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 16-frontend-scaffold | 01 | execute | 1 |
|
true |
Purpose: Establish the frontend build toolchain and component foundation for all subsequent UI work. This is the bare-bones project that compiles and serves an empty page with styling ready.
Output: A working packages/web/ directory with Vite dev server, Tailwind CSS, and shadcn/ui configured.
<execution_context>
@/.claude/get-shit-done/workflows/execute-plan.md
@/.claude/get-shit-done/templates/summary.md
</execution_context>
Existing project structure - this is currently a single package
@package.json @tsconfig.json
Task 1: Create Vite + React + TypeScript project packages/web/package.json, packages/web/vite.config.ts, packages/web/tsconfig.json, packages/web/tsconfig.app.json, packages/web/index.html, packages/web/src/main.tsx, packages/web/src/App.tsx, packages/web/src/index.css, package.json, tsconfig.json 1. Create `packages/web/` directory. 2. Initialize a new Vite project with React + TypeScript template files manually (do NOT use `npm create vite` interactively): - `packages/web/package.json` with name `@codewalk-district/web`, type `module`, scripts: `dev`, `build`, `preview`, `lint`. Dependencies: `react`, `react-dom`. Dev dependencies: `@types/react`, `@types/react-dom`, `@vitejs/plugin-react`, `typescript`, `vite`. - `packages/web/vite.config.ts` with react plugin. Set server proxy: `/trpc` → `http://127.0.0.1:3847/trpc` to avoid CORS issues during development. - `packages/web/tsconfig.json` extending `tsconfig.app.json` with references. - `packages/web/tsconfig.app.json` targeting ES2020, module ESNext, moduleResolution bundler, strict mode, jsx react-jsx, include `src`. - `packages/web/index.html` standard Vite entry pointing to `/src/main.tsx`. - `packages/web/src/main.tsx` rendering `` into `#root`. - `packages/web/src/App.tsx` minimal component returning `-
Update root
package.json:- Add
"workspaces": ["packages/*"]for npm workspaces. - Add script
"dev:web": "npm run dev --workspace=packages/web". - Keep all existing scripts and dependencies unchanged.
- Add
-
Run
npm installfrom root to link workspaces.
Do NOT modify any existing source files in src/. Only touch root package.json and tsconfig.json for workspace config.
cd packages/web && npx vite build succeeds without errors.
npm run dev:web starts dev server (verify it starts, then kill).
Vite dev server starts and builds. Root workspace config links packages/web.
-
Update
packages/web/src/index.csswith Tailwind directives:@tailwind base; @tailwind components; @tailwind utilities;Plus CSS custom properties for shadcn theming (the standard shadcn/ui CSS variables for colors, radius, etc.).
-
Install shadcn/ui dependencies:
- Dependencies:
class-variance-authority,clsx,tailwind-merge,lucide-react - Dev dependency:
tailwindcss-animate - Add tailwindcss-animate plugin to tailwind.config.ts
- Dependencies:
-
Create
packages/web/components.json(shadcn/ui config):{ "$schema": "https://ui.shadcn.com/schema.json", "style": "default", "rsc": false, "tsx": true, "tailwind": { "config": "tailwind.config.ts", "css": "src/index.css", "baseColor": "neutral", "cssVariables": true }, "aliases": { "components": "@/components", "utils": "@/lib/utils" } } -
Create
packages/web/src/lib/utils.ts:import { type ClassValue, clsx } from "clsx" import { twMerge } from "tailwind-merge" export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } -
Configure path aliases in
vite.config.tsandtsconfig.app.json:@/→./src/(standard shadcn convention)- Install
@types/nodeas dev dependency for path resolution in vite config.
-
Update
packages/web/src/App.tsxto use a Tailwind class (e.g.,<div className="text-2xl font-bold p-8">Codewalkers</div>) to verify Tailwind works. -
Run
npm installfrom root after adding dependencies. npx vite build in packages/web succeeds. The built output includes Tailwind styles (check dist/assets/*.css contains Tailwind resets). Tailwind CSS compiles. shadcn/ui configured with components.json and utils.ts. Path alias@/resolves.
<success_criteria>
- Vite + React + TypeScript project builds in packages/web/
- Tailwind CSS configured and compiling
- shadcn/ui components.json and utils ready
- Root npm workspaces configured
- Dev server starts with proxy to backend </success_criteria>