"Vite is the bundler-and-dev-server cwkPippa's frontend runs on. Fast, simple, TypeScript-native."
What Vite is
Vite (vitejs.dev) is a build tool with two modes: dev (ESM-native, no bundling, instant HMR) and prod (Rollup-based bundle, optimized for shipping). For most React/Vue/Svelte projects that aren't using a full framework like Next.js, Vite is the canonical choice.
TypeScript support is first-class. Drop a .ts/.tsx file in src/, import it, and Vite handles transpilation via esbuild. Type checking is delegated — you run tsc --noEmit separately.
The cwkPippa frontend layout
cwkPippa's frontend/ uses Vite + React 19 + TypeScript:
frontend/
├── package.json
├── tsconfig.json # strict: true, target ES2022
├── vite.config.ts # Vite config — plugins, aliases
├── index.html # entry point
└── src/
├── main.tsx # React mount
├── App.tsx # top-level component
├── components/ # UI components
├── hooks/ # custom hooks
├── lib/ # utilities, api
└── types/ # shared types
npm run dev starts the Vite dev server with HMR. npm run build produces the production bundle. npm run typecheck runs tsc --noEmit.
Path aliases
Vite supports path aliases via tsconfig's paths option AND a matching alias in vite.config.ts. Common pattern: @ → ./src. Then import { Button } from '@/components/Button' instead of long relative paths.