Welcome to the Thunderbird for Android project! We're excited to have you here and welcome your contributions.
Before you start contributing, please take a moment to familiarize yourself with the following:
- About Thunderbird for Android.
- Thunderbird Developer Portal
- Mozilla Community Participation Guidelines
- Matrix (developer chat)
- Frequently Asked Questions (historical K-9 forum)
- Support Forum (historical K-9 forum)
Note: Some support resources currently point to the K-9 Mail forum due to the project’s history and ongoing migration. Where appropriate, we’ll update links to Thunderbird-specific channels.
Helpful background (not strictly required):
- Kotlin - Primary programming language for the project
- Jetpack Compose - UI toolkit used for Android
- Kotlin Multiplatform - Shared code across modules where applicable
- Android Development - Basic understanding of Android app development
- GitHub - For managing contributions and pull requests
When you encounter a bug or have a feature request or idea, please do the following:
Bugs:
- Search for existing issues before filing a new one.
- If you can't find an existing issue, please open a new GitHub issue using the appropriate template.
Feature Requests / Ideas:
We don’t track new ideas or feature requests in GitHub Issues.
- Start a discussion in Mozilla Connect – Ideas
- Once a feature is accepted and work is planned, maintainers will create the corresponding GitHub issue(s).
If you'd like to help to translate Thunderbird for Android, please visit:
- Translations – How to help localize Thunderbird for Android via Weblate.
- Weblate - Thunderbird for Android project - Translation platform where all localization happens.
This should give you a detailed overview on how to contribute code to the project. Use it as a reference for setup, development, testing, and review.
- Contribution Workflow – Step-by-step process: find an issue, fork, branch, commit, PR.
- Development Environment – How to set up Android Studio, build, run, and debug the project.
- Architecture – System design: module types, UI/Domain/Data layers, offline-first.
- Development Guidelines – Project-specific conventions and quick “do’s & don’ts.”
- Code Quality Guide – Style rules, static analysis tools, and security practices.
- Testing Guide – Test layers, frameworks, and best practices.
- Git Commit Guide – How to write clear, Conventional Commit-style messages.
- Code Review Guide – Expectations for PR authors and reviewers, review etiquette.
- Translations – How to help localize Thunderbird for Android via Weblate.
- Managing Strings – Developer guide for adding/changing/removing strings, languages, and handling Weblate sync.
Thank you for taking the time to contribute to Thunderbird for Android! We appreciate your help in making the project better and more useful for everyone.