Skip to content

Contributing

Development Workflow

Test-Driven Development (TDD) is required for all changes.

  1. Create a feature branch from master
  2. Write tests explaining expected behavior (Vitest / Playwright)
  3. Write minimal code to make tests pass
  4. Ensure biome check and tsc --noEmit pass
  5. Commit (husky pre-commit hook runs biome automatically)
  6. Merge to master

Code Style

  • Biome for linting and formatting (configured in biome.json)
  • TypeScript strict mode throughout
  • No any types without explicit biome ignore comments
  • Use useLanguage() context for all user-facing strings (FI/EN)

File Organization

  • Routes in services/api/src/routes/
  • Shared utilities in services/api/src/lib/
  • React components in apps/dashboard/src/components/
  • Pages in apps/dashboard/src/pages/
  • Types/models in apps/dashboard/src/types/
  • Contexts in apps/dashboard/src/contexts/

Adding a New Feature

  1. If backend changes needed, add routes/utilities in services/api/
  2. If frontend, add components and update relevant pages
  3. Update api-client.ts for any new API contracts
  4. Update documentation in docs/manual/