Contributing
Guidelines for contributing to the Danvas platform
Overview
We welcome contributions! This guide explains our coding standards, testing patterns, and the process for submitting changes.
Engineering Standards
- Consistency: Adhere to existing naming conventions and architectural patterns.
- Type Safety: No
any. Use strict TypeScript and Drizzle-generated types. - Surgical Changes: Keep pull requests focused on a single task. Avoid unrelated refactoring.
- Self-Documentation: Write clear, descriptive code. Use inline comments for complex business logic only.
Coding Style
We use Biome (via Ultracite) for linting and formatting, and TypeScript for type checking.
# Run all checks (linter + typechecker)
bun run check
# Automatically fix safe lint and format issues
bun run fixRefer to the Code Style guide for detailed conventions.
Testing
Every change MUST include tests.
- Unit & Integration Tests: Use Vitest across apps and shared packages.
- E2E Smoke Tests: Use Playwright for critical app flows (sign-in, filing reports).
Run tests from the repository root:
bun run test # Run tests across workspace
bun run e2e:smoke # Run Playwright smoke suite
bun run architecture:check # Verify package layering boundaries
bun run validate # Run pre-merge validation pipelineSubmission Process
- Create a Branch:
git checkout -b feature/your-feature-name. - Commit Changes: Use descriptive, atomic commits.
- Open a PR: Target the
mainbranch. Complete the PR template. - Code Review: Address all feedback from the engineering team.
- Merge: Once approved and passing CI, your changes will be merged.