A comprehensive dashboard for analyzing F-Droid app store metrics, including search patterns and app download statistics.
Note
The calculations are a bit iffy. (My calculations always are :P)
And I am unsure whether the data labels mean what I think they mean.
Enjoy it while it works! I probably won’t maintain it long-term.
- Search query analysis and trends
- Geographic distribution of searches
- Error analysis and technical metrics
- Time series visualization
- App download patterns from HTTP servers
- Request path analysis (JAR files, repository diffs, etc.)
- Server performance comparison
- Geographic distribution of downloads
You can add badges to your README file to display various metrics (monthly) for your package.
A GitHub Actions cronjob runs daily to recompute these metrics.

Replace io.github.kitswas.virtualgamepadmobile with your package ID.
You can find the processed data files in the processed directory. (Search for your package ID)
https://fdroid-metrics.streamlit.app/
You need the UV package/project manager to install the dependencies.
You can get UV here.
Tip
To change the Python version, change the requires-python field in pyproject.toml
and the number in .python-version.
uv will take care of the rest.
Set up the environment. (Only once)
uv venv
# .venv/Scripts/activate # Windows
source .venv/bin/activate # Linux/MacOS
uv sync --link-mode=symlink # Install the dependencies, use -U to updateOr use the Dockerfile. (Min 2GB RAM, 2 CPU Cores) (4 CPU Cores recommended)
The data fetchers have been revamped to support flexible date range queries. Each data file represents cumulative metrics since the previous date (usually weekly snapshots).
Download F-Droid search metrics data:
# Download data for a specific date range (recommended)
uv run python -m etl.getdata_search --start 2024-09-01 --end 2024-09-30
# Download current month (legacy mode)
uv run python -m etl.getdata_search
# Download specific month (legacy mode)
uv run python -m etl.getdata_search 2024 12
# Get help
uv run python -m etl.getdata_search --helpDownload F-Droid app metrics data from HTTP servers:
# Download data for a specific date range (recommended)
uv run python -m etl.getdata_apps --start 2024-09-01 --end 2024-09-30
# Download current month (legacy mode)
uv run python -m etl.getdata_apps
# Download specific month (legacy mode)
uv run python -m etl.getdata_apps 2024 6
# Get help
uv run python -m etl.getdata_apps --helpNote: The fetchers will automatically:
- Fetch the
index.jsonfrom each server - Filter available dates that fall within your specified range
- Download only the matching date files (e.g.,
2025-09-29.json) - Skip files that already exist locally
Launch the interactive multipage dashboard:
uv run streamlit run dashboard.pyThe dashboard will be available at http://localhost:8501.
We have ruff for code formatting and linting.
Install the VSCode extension
and enable Format on Save for a better experience.
To fix imports:
uv run ruff check --select I --fix # Sort imports
uv run ruff check --select F401 --fix # Remove unused importsTo check for linting errors:
uv run ruff check # Use --fix to fix the errorsTo format the code:
uv run ruff format