Thanks for your interest in contributing! This guide covers our workflow and how to get started.
- Fork the repository
- Clone your fork locally
See the Development Setup Guide for detailed setup instructions.
We use a GitHub Project board to coordinate work and avoid duplicate effort.
- Check the project board to see what's already in progress
- Find an issue you'd like to work on from the Todo column
- Comment on the issue: "I'd like to work on this"
- A maintainer will assign you and move it to In Progress
- Fork the repo and start working
| Column | Meaning |
|---|---|
| Todo | Ready to be picked up |
| In Progress | Someone is actively working on it |
| In Review | PR is open and awaiting review |
| Done | Merged and complete |
Each item is tagged with a theme to help you find work in your area of interest:
| Theme | Description |
|---|---|
| UI Polish | User interface improvements |
| Auth | Authentication and security features |
| Git/VCS | Version control features |
| Agent | AI agent capabilities |
| Infrastructure | Deployment and environment setup |
| STT | Speech-to-text features |
| Cost/Analytics | Usage tracking and analytics |
- Self-documenting code (no comments needed)
- Strict TypeScript with proper typing
- Named imports only
- DRY principles - check for existing patterns before adding new ones
- Functions should be single-responsibility and reusable
- Hono framework with Zod validation
- Bun SQLite (bun:sqlite) for database
- Proper error handling with try/catch
- Use async/await consistently
- Use
@/alias for component imports - Radix UI + Tailwind CSS for styling
- React Query for state management
- React Hook Form + Zod for forms
pnpm test # Run all tests (backend)
cd backend && vitest <filename> # Run single test filepnpm lint # Lint both backend and frontendRun linting before submitting a PR.
- Create a feature branch from
main - Make your changes with clear, focused commits
- Run tests and linting
- Open a PR and link it to your issue (use "Closes #123" in the PR description)
- A maintainer will move the item to In Review
- Address review feedback
- Once merged, the item moves to Done
Open an issue or discussion on GitHub if you have questions or ideas.