From a9c67a5827a433bbbb7292cf79d576c3ed0e9a44 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 12:39:49 +0200 Subject: [PATCH 01/17] feat(about): add Ko-fi support link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional way for users to support development: - About card: tonal "Support development" button opening ko-fi.com via ACTION_VIEW (no INTERNET permission), EN + DE strings - F-Droid metadata: Donate field in self-hosted and official drafts - README: short Support section with the Ko-fi link No perks/rewards attached β€” kept as a plain donation link. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 11 +++++++++++ .../calendula/ui/settings/SettingsScreen.kt | 16 ++++++++++++++++ app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values/strings.xml | 2 ++ .../de.jeanlucmakiola.calendula.yml | 1 + fdroid-metadata/de.jeanlucmakiola.calendula.yml | 1 + 6 files changed, 32 insertions(+) diff --git a/README.md b/README.md index 6753ecc..ce22130 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,17 @@ Next up: power-user features β€” widget, search, tablet layouts. The living roadmap is in [.planning/ROADMAP.md](.planning/ROADMAP.md), the release history in [CHANGELOG.md](CHANGELOG.md). +## πŸ’› Support + +Calendula is free, open source, and built by one person in their own time β€” +with no ads, no tracking, and no internet permission. If it makes your days a +little calmer and you'd like to support its continued development, you can buy +me a coffee: + +[**β˜• ko-fi.com/jeanlucmakiola**](https://ko-fi.com/jeanlucmakiola) + +Entirely optional, always appreciated. 🌼 + ## πŸ“œ License [MIT](LICENSE) β€” Jean-Luc Makiola, 2026 diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/settings/SettingsScreen.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/settings/SettingsScreen.kt index 5863ebd..21a8f7a 100644 --- a/app/src/main/java/de/jeanlucmakiola/calendula/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/settings/SettingsScreen.kt @@ -42,11 +42,13 @@ import androidx.compose.material.icons.filled.CalendarMonth import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.ExpandLess import androidx.compose.material.icons.filled.ExpandMore +import androidx.compose.material.icons.filled.Favorite import androidx.compose.material.icons.filled.Gavel import androidx.compose.material.icons.filled.Language import androidx.compose.material.icons.filled.Notifications import androidx.compose.material.icons.filled.Palette import androidx.compose.material.icons.filled.Tune +import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedButton @@ -292,6 +294,7 @@ private fun AboutCard() { val context = LocalContext.current val sourceUrl = stringResource(R.string.about_source_url) val licenseUrl = stringResource(R.string.about_license_url) + val supportUrl = stringResource(R.string.about_support_url) Surface( color = MaterialTheme.colorScheme.surfaceContainerHigh, @@ -350,6 +353,19 @@ private fun AboutCard() { Text(stringResource(R.string.settings_license)) } } + Spacer(Modifier.height(8.dp)) + FilledTonalButton( + onClick = { openUrl(context, supportUrl) }, + modifier = Modifier.fillMaxWidth(), + ) { + Icon( + Icons.Default.Favorite, + contentDescription = null, + modifier = Modifier.size(18.dp), + ) + Spacer(Modifier.width(8.dp)) + Text(stringResource(R.string.settings_about_support)) + } } } } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 42e7f52..aa24a30 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -315,6 +315,7 @@ MIT von Jean-Luc Makiola Quellcode + Entwicklung unterstΓΌtzen Version %1$s Calendula-App-Symbol Problem melden diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c3c6725..1be5841 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -308,6 +308,7 @@ MIT by Jean-Luc Makiola Source + Support development Version %1$s Calendula app icon Report a problem @@ -378,6 +379,7 @@ https://gitea.jeanlucmakiola.de/makiolaj/calendula https://gitea.jeanlucmakiola.de/makiolaj/calendula/src/branch/main/LICENSE + https://ko-fi.com/jeanlucmakiola diff --git a/docs/fdroid-official/de.jeanlucmakiola.calendula.yml b/docs/fdroid-official/de.jeanlucmakiola.calendula.yml index 5588023..45a7a3e 100644 --- a/docs/fdroid-official/de.jeanlucmakiola.calendula.yml +++ b/docs/fdroid-official/de.jeanlucmakiola.calendula.yml @@ -21,6 +21,7 @@ AuthorName: Jean-Luc Makiola SourceCode: https://gitea.jeanlucmakiola.de/makiolaj/calendula IssueTracker: https://gitea.jeanlucmakiola.de/makiolaj/calendula/issues Changelog: https://gitea.jeanlucmakiola.de/makiolaj/calendula/src/branch/main/CHANGELOG.md +Donate: https://ko-fi.com/jeanlucmakiola AutoName: Calendula diff --git a/fdroid-metadata/de.jeanlucmakiola.calendula.yml b/fdroid-metadata/de.jeanlucmakiola.calendula.yml index 01c5526..2f6581e 100644 --- a/fdroid-metadata/de.jeanlucmakiola.calendula.yml +++ b/fdroid-metadata/de.jeanlucmakiola.calendula.yml @@ -8,3 +8,4 @@ Categories: SourceCode: https://gitea.jeanlucmakiola.de/makiolaj/calendula IssueTracker: https://gitea.jeanlucmakiola.de/makiolaj/calendula/issues +Donate: https://ko-fi.com/jeanlucmakiola -- 2.49.1 From 2c38912834a7ece6f9082260c23fbae75302071e Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 12:51:12 +0200 Subject: [PATCH 02/17] docs(readme): surface Ko-fi + official F-Droid, tidy install - Move support to the top: Ko-fi badge in the header badge row, drop the redundant bottom Support section - Add "Get it on F-Droid" button now that Calendula is on the official repo - Restructure Install: lead with official F-Droid, keep the self-hosted repo as the faster-updates lane Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index ce22130..1b1c48e 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,11 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network Kotlin + Compose Material 3 Expressive MIT License +Support development on Ko-fi +

+ +

+Get it on F-Droid

@@ -68,13 +73,20 @@ database, no sync stack reinvented. ## πŸ“¦ Install -Calendula ships through a self-hosted F-Droid repository; every version tag -is built, signed, and published there automatically. +### F-Droid (recommended) -1. Install an F-Droid client ([F-Droid](https://f-droid.org), Droid-ify, Neo - Store, …). -2. Add the repository β€” open this link on your phone, or paste it under - *Settings β†’ Repositories β†’ Add*: +Calendula is on the **official [F-Droid](https://f-droid.org) repository** β€” +just search for **Calendula** in any F-Droid client, or +[install it from f-droid.org](https://f-droid.org/packages/de.jeanlucmakiola.calendula/). + +### Self-hosted repo (latest builds) + +New versions are built, signed, and published to a self-hosted repository the +moment each tag lands β€” usually a few days ahead of the official repo, which +rebuilds on F-Droid's own schedule. Add it for the freshest builds: + +1. In your F-Droid client, open *Settings β†’ Repositories β†’ Add* (or open the + link below on your phone): ``` https://apps.dev.jeanlucmakiola.de/dev/fdroid/repo?fingerprint=C2C0640402BF458FC0ED957AF0B37AA4C14022E72F89CE90B5965B458CF73425 @@ -84,10 +96,10 @@ is built, signed, and published there automatically. fingerprint (SHA-256): `C2C0 6404 02BF 458F C0ED 957A F0B3 7AA4 C140 22E7 2F89 CE90 B596 5B45 8CF7 3425` -3. Refresh, search for **Calendula**, install. Updates arrive like any - other F-Droid app. +2. Refresh, search for **Calendula**, install. -Alternatively, build from source β€” see below. +Both channels share the same signing key, so you can switch between them +without reinstalling. Or build from source β€” see below. ## πŸ›  Building @@ -115,17 +127,6 @@ Next up: power-user features β€” widget, search, tablet layouts. The living roadmap is in [.planning/ROADMAP.md](.planning/ROADMAP.md), the release history in [CHANGELOG.md](CHANGELOG.md). -## πŸ’› Support - -Calendula is free, open source, and built by one person in their own time β€” -with no ads, no tracking, and no internet permission. If it makes your days a -little calmer and you'd like to support its continued development, you can buy -me a coffee: - -[**β˜• ko-fi.com/jeanlucmakiola**](https://ko-fi.com/jeanlucmakiola) - -Entirely optional, always appreciated. 🌼 - ## πŸ“œ License [MIT](LICENSE) β€” Jean-Luc Makiola, 2026 -- 2.49.1 From b7a5f16c84770cd269a2d45eff76d30150e1b1bf Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 12:56:26 +0200 Subject: [PATCH 03/17] docs(readme): replace inline sections with doc links Move the Building section into docs/BUILDING.md and collapse Building, Architecture, and Roadmap into a compact Documentation block linking to the dedicated docs, keeping the README focused on what/install/support. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 28 ++++------------------------ docs/BUILDING.md | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 24 deletions(-) create mode 100644 docs/BUILDING.md diff --git a/README.md b/README.md index 1b1c48e..8eeac68 100644 --- a/README.md +++ b/README.md @@ -101,31 +101,11 @@ rebuilds on F-Droid's own schedule. Add it for the freshest builds: Both channels share the same signing key, so you can switch between them without reinstalling. Or build from source β€” see below. -## πŸ›  Building +## πŸ“š Documentation -Requires Android SDK 36+ and JDK 17. The Gradle wrapper is checked in: - -```bash -./gradlew assembleDebug # debug APK -./gradlew test # JVM unit tests -./gradlew lint # Android lint -``` - -If your default JDK is not 17, set `JAVA_HOME` explicitly. - -## πŸ— Architecture - -Single-activity Compose app, layered `UI β†’ Repository β†’ DataSource β†’ -CalendarContract`, observer-driven refresh, JVM-first tests. The full tour β€” -including the recurring-write and reminder pipelines β€” lives in -[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md). - -## πŸ—Ί Roadmap - -Shipped: read (v1.0), write (v1.1–v2.0), reminder delivery (v1.4). -Next up: power-user features β€” widget, search, tablet layouts. The living -roadmap is in [.planning/ROADMAP.md](.planning/ROADMAP.md), the release -history in [CHANGELOG.md](CHANGELOG.md). +- **[Building from source](docs/BUILDING.md)** β€” requirements and Gradle tasks +- **[Architecture](docs/ARCHITECTURE.md)** β€” the layered design and key pipelines +- **[Roadmap](.planning/ROADMAP.md)** β€” what's shipped and what's next ## πŸ“œ License diff --git a/docs/BUILDING.md b/docs/BUILDING.md new file mode 100644 index 0000000..6524e94 --- /dev/null +++ b/docs/BUILDING.md @@ -0,0 +1,24 @@ +# Building from source + +Calendula builds with the standard Android Gradle toolchain β€” no extra setup +beyond the SDK and a JDK. + +## Requirements + +- **Android SDK 36+** +- **JDK 17** β€” if your default JDK is not 17, set `JAVA_HOME` explicitly. + +The Gradle wrapper is checked in, so you don't need a system Gradle. + +## Common tasks + +```bash +./gradlew assembleDebug # debug APK β†’ app/build/outputs/apk/debug/ +./gradlew test # JVM unit tests +./gradlew lint # Android lint +``` + +## Release builds + +Release signing and the publishing pipeline are documented separately in +[RELEASING.md](RELEASING.md). -- 2.49.1 From 00220c5f0e635e3452fa215df9137d2da240c05d Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:04:15 +0200 Subject: [PATCH 04/17] docs(readme): use official Ko-fi button next to F-Droid badge Replace the small shields Ko-fi badge with Ko-fi's official "Support me" button, placed beside the Get it on F-Droid badge as a peer call-to-action. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8eeac68..36d4b4d 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,12 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network Kotlin + Compose Material 3 Expressive MIT License -Support development on Ko-fi

Get it on F-Droid +  +Support me on Ko-fi

-- 2.49.1 From f4789c535e13cd88a8d9e8a8d8ced3620cfb364f Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:06:03 +0200 Subject: [PATCH 05/17] docs(readme): align Ko-fi button with F-Droid badge Use Ko-fi's raster PNG button (the SVG was ignored and rendered oversized) and match both buttons to height 56 so they sit inline. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 36d4b4d..c86e52c 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid +Get it on F-Droid   -Support me on Ko-fi +Support me on Ko-fi

-- 2.49.1 From 96f4d4dc84ebb998a54f7ea0b0c42414b5d76fb9 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:07:04 +0200 Subject: [PATCH 06/17] docs(readme): restore F-Droid badge to original height Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c86e52c..a6d3eb3 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid +Get it on F-Droid   Support me on Ko-fi

-- 2.49.1 From 913b49e962609ae3ea29a45660f2bd2a5c3d7ce1 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:08:12 +0200 Subject: [PATCH 07/17] docs(readme): vertically center the F-Droid and Ko-fi buttons Wrap both badges in a table row so the different-height buttons align on a shared midline instead of the text baseline. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a6d3eb3..1f194b0 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,10 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network MIT License

-

-Get it on F-Droid -  -Support me on Ko-fi -

+ + + +
Get it on F-DroidSupport me on Ko-fi

Week view  -- 2.49.1 From 8a9e6f0ee8ebece978309e7624fd7b466e40667e Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:09:29 +0200 Subject: [PATCH 08/17] docs(readme): stack F-Droid and Ko-fi buttons, drop bordered table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The table centered them but Gitea draws cell borders we can't strip. Stack the two badges on separate centered lines instead β€” no borders, each keeps its own size. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1f194b0..8dc300e 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,13 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network MIT License

- - - -
Get it on F-DroidSupport me on Ko-fi
+

+Get it on F-Droid +

+ +

+Support me on Ko-fi +

Week view  -- 2.49.1 From 376ad5f3944e1ed69a98eb1d77026a9d283db792 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:19:57 +0200 Subject: [PATCH 09/17] docs(readme): put F-Droid and Ko-fi buttons inline at equal height MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both at height 56 on one line β€” equal heights align on the baseline, so no table/border workaround is needed. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8dc300e..c86e52c 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,8 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid -

- -

+Get it on F-DroidSupport me on Ko-fi

-- 2.49.1 From dd61e0ed377da3327e5d9fa4065f2487951bca57 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:23:13 +0200 Subject: [PATCH 10/17] docs(readme): shrink Ko-fi button for visual balance The solid Ko-fi pill read heavier than the F-Droid badge at equal height; drop it to 46 so the two feel balanced. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c86e52c..e9e2790 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

Get it on F-Droid   -Support me on Ko-fi +Support me on Ko-fi

-- 2.49.1 From 575b1c7eb7fe08b140b26940397af700c3d9da39 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 11:25:55 +0000 Subject: [PATCH 11/17] Update ReadMe.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e9e2790..c642fb9 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid +Get it on F-Droid   Support me on Ko-fi

-- 2.49.1 From 0ddbbb11e8438ebb7f27c1ed863fe0588c0f1dae Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 11:28:19 +0000 Subject: [PATCH 12/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c642fb9..430bda4 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid +Get it on F-Droid   Support me on Ko-fi

-- 2.49.1 From 8a63aa86a779367f91fdebcb6442921891b4c984 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 11:28:44 +0000 Subject: [PATCH 13/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 430bda4..e9e2790 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid +Get it on F-Droid   Support me on Ko-fi

-- 2.49.1 From 946addbbcdf946c1acbeef1698e9dd8220b6f6c0 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:30:59 +0200 Subject: [PATCH 14/17] docs(readme): use official 'Support me on Ko-fi' beige badge Swap the Buy-me-a-coffee pill for Ko-fi's beige support badge, matched to the F-Droid badge height (56). Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e9e2790..994ecd2 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

Get it on F-Droid   -Support me on Ko-fi +Support me on Ko-fi

-- 2.49.1 From 43eb5e23e84a4da4d0acae8097fcd5a72e6dab9e Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:33:41 +0200 Subject: [PATCH 15/17] docs(readme): enlarge F-Droid badge to height 80 Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 994ecd2..94808bb 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid +Get it on F-Droid   Support me on Ko-fi

-- 2.49.1 From cecd0c223498385cd5eda640e7731d5fb8a9cd79 Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 13:34:27 +0200 Subject: [PATCH 16/17] docs(readme): revert F-Droid badge to height 56 Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 94808bb..994ecd2 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Reads, writes, and reminds β€” on top of the system calendar, with zero network

-Get it on F-Droid +Get it on F-Droid   Support me on Ko-fi

-- 2.49.1 From 26e538a9ba944dc3b2cd8725242a958996f079ec Mon Sep 17 00:00:00 2001 From: Jean-Luc Makiola Date: Thu, 25 Jun 2026 14:07:40 +0200 Subject: [PATCH 17/17] docs(changelog): note Ko-fi support link Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 207b925..aa27ebb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.10.0] β€” Unreleased + +### Added +- An optional way to support development. Settings β†’ About now has a "Support + development" button that opens Ko-fi in your browser. It's a plain donation + link with no perks attached, and it needs no new permissions β€” Calendula still + has no internet access of its own and just hands the link to your browser. + ## [2.9.0] β€” 2026-06-25 ### Added -- 2.49.1