turbo build- Build all appsturbo lint- Lint all appspnpm -r run format- Format all apps
pnpm --filter [app-name] dev- Start specific app development serverpnpm --filter [app-name] lint- Lint specific apppnpm --filter [app-name] format- Format specific apppnpm --filter [app-name] test- Run tests for specific apppnpm --filter [app-name] build- Build specific app (production build)pnpm --filter [app-name] start- Start built app (production build)
- Before Committing: Always run format and lint checks
pnpm --filter [app-name] formatpnpm --filter [app-name] lint
- Conventional Commits: Use conventional commit format
- Format:
type(scope): message - Types: feat, fix, docs, style, refactor, test, chore
- Example:
feat(camp): add user profile page
- Format:
- Formatting: Prettier for auto-formatting (empty config = defaults)
- Components: React functional components with hooks
- Testing: Vitest for unit tests
- UI Components: Prefer component composition over complex conditionals
- Naming Conventions:
- camelCase for variables/functions
- PascalCase for components/types
- kebab-case for file names
- File Structure: Group related functionality into dedicated files
- Shared Code: Use workspace packages for shared functionality
pnpm -F nouns-camp test- Run unit tests with Vitestpnpm -F nouns-camp test -- [testFile]- Run a specific test filepnpm -F nouns-camp test -- -t "[testName]"- Run specific test by namepnpm -F nouns-camp test:ui- Run tests with Vitest UIpnpm -F nouns-camp test:coverage- Generate test coverage reportpnpm -F nouns-camp test:e2e- Run E2E tests with Playwrightpnpm -F nouns-camp test:e2e:ui- Run E2E tests with Playwright UI
- Imports: Use absolute imports via
@/*path alias - Testing: Vitest for unit tests, React Testing Library for component tests, Playwright for E2E tests
- Unit Tests: Place in the same directory as the file being tested with
.test.jsextension - E2E Tests: Place in
src/e2e-testsdirectory with.spec.jsextension - Test Utils: Common test utilities in
src/test/test-utils.js - Test Setup: Global test setup in
src/test/setup.js