Thanks for your interest in contributing! This document covers how to get started.
- Fork the repository
- Clone your fork
- Set up local development (see docs/DEV.md)
# Install prerequisites
# - Go 1.24+
# - Node.js 20+
# - Air (go install github.com/air-verse/air@v1.61.7)
# Start development
make dev- Check existing issues to avoid duplicate work
- For large features, open an issue first to discuss the approach
- Read docs/ARCHITECTURE.md to understand the codebase
Backend (Go):
- Follow standard Go formatting (
go fmt) - Add tests for new functionality
- Keep hooks focused and services reusable
Frontend (SvelteKit/TypeScript):
- Use TypeScript strictly (no
anytypes) - Follow existing component patterns
- Use Tailwind for styling
General:
- No commented-out code
- Meaningful commit messages
- Update docs if you change behavior
# Run all tests
make test
# Run specific test suites
cd frontend && npm run test:public- Create a branch from
main - Make your changes with clear commits
- Ensure tests pass
- Push to your fork
- Open a Pull Request
- Describe what changed and why
- Link related issues
- Keep PRs focused (one feature/fix per PR)
- Be responsive to review feedback
- Search existing issues first
- Include reproduction steps
- Specify your environment (OS, versions)
- For security issues, email directly instead of opening a public issue
Open a discussion on GitHub if you need help or want to propose something.