A design calculator website for FIRST Robotics Competition (FRC) and FIRST Tech Challenge (FTC).
Install mise to manage Node.js, pnpm, and other tools automatically.
mise install # installs Node.js, pnpm, jq, clang-format from mise.toml
pnpm install
pnpm run devThe mise enter hook runs pnpm install --frozen-lockfile automatically whenever you cd into the project.
mise run check- Typecheck, format check, and lint in parallelmise run format- Format web (oxfmt) and C++ source simultaneouslymise run test:e2e- Build app then run Playwright tests (handles build prerequisite automatically)
pnpm run dev- Start development serverpnpm run build- Build for productionpnpm run build:wpi- Build WASM bindings from wpilib (requires Docker)pnpm run start- Preview production buildpnpm run lint- Run linterpnpm run lint:fix- Fix linting issuespnpm run format:fix- Fix web formatting (oxfmt)pnpm run format:wpi- Fix C++ formatting (clang-format via mise)pnpm run typecheck- Type check TypeScript
pnpm run test- Run unit tests (Vitest)pnpm run test -u- Update snapshot tests (use when snapshot output changes)mise run test:e2e- Run Playwright UI tests (builds first automatically)pnpm exec playwright test- Run Playwright UI tests (requires build first:pnpm run build)
- React Router v7 (framework mode)
- TypeScript
- Shadcn UI + Tailwind CSS
- Comlink (for background workers)
- Vitest + Playwright (testing)
- Icons: https://icon-sets.iconify.design/
