thunderbird / thunderbird/thunderbird-android
Refactor Donation Appeals for Campaigns
@dani-zilla is already working on this.
Since Sep 14, 2026.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
🎯 The objective
Our current implementation for donation appeals assumes a set number of appeals made to the user. There's the first appeal that lets new users know that the app is donation-supported, then a second one that reminds them of its.
An improved implementation could take any number of appeals, including one-time appeals and recurring reminders. It could register certain appeals for users who have made donations in the past, updates or other benefits for those who have donated, recurring, such as yearly, donations, and more.
To support this, we'd need a new way to track appeals. New data objects that define the appeals, when they display, what type of appeal it is (one-time, recurring, reward, previous donations, etc), duration between recurring appeals.
The user should also have the option to opt out of appeals if they simply don't want donation reminders.
This is a proposed change, not an accepted project, but if accepted, it could make it easier to add new campaigns in the future, rather than adding appeals on top of each other, causing potential conflicts, or accidentally overwhelming users.
🎒 Resources
Existing work for an additional appeal has been planned, though currently there are no plans for more. Should we decide to add more, we should do so in advance to refactor the existing appeals framework to make it easier to define and control these, as well as make it easier for the user to opt-out.
🦮 Rules of the Road
🟢 In Scope
- A new framework for donation appeal campaigns
🔴 Out of Scope
🚧 Technical and/or Business Requirements
- This is an unplanned feature. This ticket is only to track the potential need for a refactor in the future, not define the work we are currently planning or have in progress.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.