React 19 + TypeScript + Vite (rolldown-vite@7.2.2) + SWC
This is a blank canvas meant to be transformed into a real application. When you receive instructions about what to build:
- Update this CLAUDE.md file first with project-specific context about the actual application. Also update README.md
- Replace the placeholder content with the real first page of the application
- Build the application according to the user's requirements
IMPORTANT: When making significant changes to this codebase, you MUST update this CLAUDE.md file to reflect those changes. This ensures future AI assistants and developers have accurate context.
- Node: >=22.12.0
- Package Manager: pnpm >=8.0.0 (required)
- Install:
pnpm install - Dev:
major app start
CRITICAL: All resource access MUST go through auto-generated clients from @major-tech/resource-client.
Import and use the auto-generated clients from /src/clients/:
import { ordersDbClient } from "./clients";
const result = await ordersDbClient.invoke(
"SELECT * FROM orders WHERE user_id = $1",
[userId],
"fetch-user-orders"
);
if (result.ok) {
console.log(result.result.rows);
}shadcn/ui: Use exclusively for all UI components.
shadcn/ui is configured with:
- Style: Lyra
- Base color: Zinc
- Icons: lucide-react
- Font: Inter (via Google Fonts)
- Dark mode: System preference detection (automatic)
pnpm dlx shadcn@latest add button
pnpm dlx shadcn@latest add card
# etc.cn()utility for class merging:import { cn } from "@/lib/utils"- CSS variables defined in
src/index.cssfor light/dark theming
- React 19 with TypeScript strict mode
- Vite with SWC (Fast Refresh)
- Tailwind CSS + shadcn/ui for styling
- ESLint configured for React hooks + TypeScript
@major-tech/resource-clientfor all resource access
- Run
pnpm lintto check if your changes actually work - Make sure to look at the
@major-tech/resource-clientpackage, the methods available and how to use them - All
invokesof resource-clients should be put in/src/actions