Thank you for your interest in contributing! Aperture is open source and welcomes contributions of all kinds.
Please open a GitHub issue with:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Your environment (OS, Docker version, browser)
Open a GitHub issue with the enhancement label. Describe:
- The use case you're trying to solve
- Your proposed solution
- Any alternatives you've considered
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes following the guidelines below
- Run tests:
cd backend && pytest tests/ -v - Build the frontend:
cd frontend && pnpm run build - Open a pull request with a clear description of your changes
See DOCS.md for full setup instructions.
- Follow PEP 8
- Use type hints throughout
- Write docstrings for public functions
- Keep functions small and focused
- Add tests for new functionality in
backend/tests/
- Use TypeScript strict mode
- Functional components with hooks (no class components)
- Keep components focused — split large components
- Use Tailwind CSS for styling
- No inline styles
- Create
backend/app/services/llm/<provider>_service.py - Implement an async function that returns
LLMResponse - Add the provider to
audit_service.py's_call_providerfunction - Add the provider to
SUPPORTED_PROVIDERSinaudits.py - Add the UI for the provider in the frontend
Audits.tsxandSettings.tsx - Add tests
Use conventional commits:
feat:— new featurefix:— bug fixdocs:— documentation changestest:— adding or fixing testsrefactor:— code refactoringchore:— maintenance tasks
By contributing, you agree that your contributions will be licensed under the MIT License.