The Play Store is not the only way to ship an Android app — and for a one-person FOSS project it is often the worst way. Here is the stack I actually use in 2026 to build, sign, distribute, and get discovered, with the parts that failed.
Why not the Play Store
- $25 one-time fee plus an ongoing identity/verification dance.
- Policy surface: an app that reads WiFi state and shows warnings can trip "sensitive permissions" review.
- Cold-start tax: without installs, ranking is zero, so you pay for ads you can't afford.
For a free, open-source utility, the store adds cost and gatekeeping without adding users.
The stack
1. GitHub Releases as the download page
Build the APK in GitHub Actions, attach it to a tagged Release. The Release page is the store listing: version, changelog, APK, checksum. No cost, no review, instant.
2. IzzyOnDroid for discoverability
IzzyOnDroid is an F-Droid-compatible repo that indexes apps of FOSS projects. You open an issue (RFP-style), they verify, and your app appears in a real app store — with auto-updates from your GitHub releases. This is the single highest-leverage free channel for a new FOSS Android app.
3. A Codeberg / self-hosted mirror
GitHub is a single point of failure and some regions block it. Mirror the repo (Codeberg, etc.) so the source stays reachable.
4. fastlane metadata
Ship fastlane/metadata/android/en-US/ (title, short description, full description, icon, screenshots). F-Droid-family repos and several directories read it directly — write it once, get discovered in several places.
5. Root-free, dependency-light code
The fewer scary permissions, the faster you pass directory review. My app uses a plain foreground-service + notification model with no root and no analytics SDK.
What failed (so you don't waste the time)
- Posting to general dev communities to announce the app: most platforms gate new accounts (phone verification, karma, manual review). Reddit auto-flagged a brand-new account as a bot even with a real app link.
- "Build it and they will come": a listing with zero traffic converts zero. Distribution ≠ demand.
Build, don't beg
If you're technical, the whole pipeline — actions, release, fastlane, mirror — is maybe an afternoon. Ship it, list it in 2–3 directories, then write about what you learned. The code is the easy part; the audience is the hard part.
I write up these experiments in more detail (including the field-level evidence of every signup that got blocked, and how I got past it) — see my profile for the handbook.
Repo in question: a free, MIT-licensed WiFi-warning app — source and releases on GitHub.
Top comments (0)