Files
file-manager/docs/MONETISATION.md
T

86 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Monetisation
## The decision
**File Manager is a one-time paid app.** No ads, no subscription, no in-app purchases, no
free tier and no trial. The price lives on the Play listing, not in the build — so there is
no Billing client, no `com.android.vending.BILLING` permission, and no purchase code in the
APK.
That is not a detail: it is what keeps the "no network permission, nothing leaves your
device" claim true in the *shipped artefact* rather than merely in the source.
## Price
| | Value |
|---|---|
| Base price | **€4.49** |
| Launch price | **€2.29** (≈49% off) for the first **14 days** |
| Model | One-time purchase, all features, no unlocks |
Both are set in the Play Console under *Products › App pricing*. Nothing about them is in
this repository, and nothing about them needs to be: changing the number is a Console edit,
not a release.
### Why €4.49
- **Anchors.** The only comparable *pure-paid* file manager on Play is MiXplorer Silver at
**€6.99**. Everything else is free with ads or free with a €3–5 one-time unlock (Solid
Explorer, FX+, X-plore, Cx). €4.49 sits below the premium paid rival and above the
free tier's unlock price, which is where "no ads, no account, no network" earns its keep.
- **Scope.** A file manager is a daily-use tool across every app on the device, not a
single-purpose utility. A one-shot photo-deduplication tool is reasonably priced at
€2.99; a file manager does more, more often.
- **Headroom.** It is much easier to discount a €4.49 base than to raise a €2.49 one. The
base price anchors future sales; the sale cannot anchor the base.
### Why a launch price
A temporary lower price gives early adopters a reason to commit and — more importantly —
produces the first reviews, which a paid app needs far more than a free one does. Once the
window closes, the price returns to €4.49. The same discount can be repeated for any later
milestone; the base price never has to move.
**Keep it honest:** the launch price is a genuine time-boxed reduction, not a permanent
"discount" — a base price that never applies is just a two-tier price with extra steps.
### ⚠️ This decision is irreversible in one direction
Play's own wording: *"You can change your app from paid to free. Once your app has been
offered for free, the app can't be changed to paid."* So:
- The price **must be set before the first upload**.
- Paid → free remains possible later if the strategy changes.
- Free → paid never does.
## Why not the alternatives
| Option | Rejected because |
|---|---|
| Free with ads | The product's whole pitch is "no clutter". Ads in a file manager are also a privacy problem — every ad SDK wants `INTERNET` and an advertising ID. |
| Free with a one-time unlock (IAP) | Would add the Billing client and the `BILLING` permission, require purchase-state plumbing and a restore path, and make the app's own "works offline forever" promise contingent on a Play check. |
| Subscription | Nothing here is a recurring service. Users are paying for a tool they already own a copy of. |
| Free | M9 exists to fund the work. See the irreversibility note: once free, never paid. |
## What is in the build — verified, not assumed
```bash
# None of these may return anything:
grep -rniE 'billing|vending' app/src gradle/ app/build.gradle.kts
$ANDROID_HOME/build-tools/36.0.0/aapt2 dump permissions \
app/build/outputs/apk/release/app-release.apk | grep -i billing
```
Checked 2026-10-14 against the release APK: **no billing reference in the source, no Billing
dependency in the version catalog, no `com.android.vending.BILLING` permission, and no
`INTERNET`**. See [PLAY_RELEASE_CHECKLIST](PLAY_RELEASE_CHECKLIST.md) step 7.
## Console steps
1. Create a **payments profile** (identity, tax, bank details) for the developer account.
2. In the Play Console, on the app's *App pricing* page, set the base price to **€4.49**
(Play fills in local equivalents; review the suggested prices rather than accepting
them blindly).
3. Set the **launch price of €2.29**, and diarise changing it back after 14 days.
4. Do all of the above **before the first upload**.