npm run dev- Start development server (port 3000)npm run build- Build for productionnpm run lint- Run ESLintnpm run lint:fix- Auto-fix ESLint errorsnpm run typecheck- Run TypeScript type checkingnpx tsx scripts/test-streaming.ts- Run streaming tests- No formal test runner - test files exist (*.spec.ts) but no Jest/Vitest configured
- Next.js 15 + React 18 web application with GraphQL API at
/api - Key directories:
src/pages/(routing),src/components/(React components),src/hooks/(custom hooks),src/lib/(core utilities) - Authentication: Firebase Auth + Ethereum wallet (SIWE protocol)
- State management: React hooks + SWR for server state + Context providers
- External APIs: Calls to
api.graffiticode.orgfor language compilation services - Database: Firestore for task storage, local storage for UI state
- Files: Use
.jsxfor React components,.tsxfor TypeScript,.jsfor utilities - Naming: kebab-case for files, camelCase for functions/variables, PascalCase for components
- Imports: External libraries first, then internal imports, then relative imports
- Styling: TailwindCSS classes preferred, responsive design with
sm:/lg:prefixes - Components: Functional components with hooks, custom hooks for shared logic
- Error handling: Custom HttpError classes with status codes, defensive programming patterns