Metabase is an open-source project, and we welcome contributions from the community. Whether you’re fixing bugs, adding features, improving documentation, or building drivers, your contributions help make Metabase better for everyone.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/metabase/metabase/llms.txt
Use this file to discover all available pages before exploring further.
Ways to contribute
There are many ways to contribute to Metabase:- Report bugs - If you find a bug, please report it on our GitHub issues
- Fix bugs - Pick an issue and submit a pull request
- Add features - Implement new functionality that benefits the community
- Improve documentation - Help make our docs clearer and more comprehensive
- Build drivers - Create drivers for databases not yet supported
- Answer questions - Help other users in our Discourse community
Before you start
Before diving into code, it’s helpful to:- Check existing issues - Someone may already be working on what you have in mind
- Discuss major changes - For significant features, open an issue first to discuss your approach
- Read the code review guidelines - Understand our review process and expectations
For security vulnerabilities, please see our Security Policy for responsible disclosure guidelines.
Getting started
Set up your development environment
Follow our development environment guide to get Metabase running locally.
Find an issue to work on
Browse the issues on GitHub and look for issues labeled
good first issue or help wanted.Fork and clone the repository
Fork the Metabase repository and clone it to your local machine.
Make your changes
Write your code, following our coding conventions and style guides. Make sure to:
- Write tests for your changes
- Update documentation if needed
- Follow the existing code style
Code review process
All pull requests go through a code review process:Goals of code review
- Catch bugs - Identify potential issues before they reach production
- Ensure quality - Maintain high code quality standards
- Share knowledge - Learn from each other’s approaches
- Consider implications - Think about how changes affect the broader codebase
Review requirements
Every PR of significant complexity needs at least one approval from another engineer on the team before merging.
Review feedback
Reviewers use these symbols to indicate their feedback:- 👍 (+1) - Approved, ready to merge
- 👎 (-1) - Strong veto, must be resolved before merging
- 🤷 (±0) - Minor concerns, but won’t block if others approve
Timing expectations
- High priority PRs - Should be reviewed as soon as possible
- Milestone PRs - Can wait a few days
- Unreviewed PRs - It’s the PR author’s responsibility to follow up and request reviews
Best practices for contributors
Writing good commit messages
- Use present tense (“Add feature” not “Added feature”)
- Keep the first line under 72 characters
- Be descriptive about what changed and why
- Reference issue numbers when applicable
Making reviewers’ lives easier
- Keep PRs focused - One feature or fix per PR
- Add context - Explain your approach in the PR description
- Comment on complex code - Guide reviewers through tricky sections
- Use clear naming - Make your code self-documenting
Getting better reviews
Tips for getting thorough reviews
Tips for getting thorough reviews
- Tag specific reviewers who have expertise in the area
- Use GitHub’s Notes and Warnings to highlight important information
- Test your changes locally and share evidence in the PR
- Be responsive to feedback and questions
Community
Join our community channels:- Discourse - Ask questions and discuss features
- GitHub Discussions - Long-form discussions
- Twitter - Follow for updates