whatisgithub

What is dotnet-stats?

canonical/dotnet-stats — explained in plain English

Analysis updated 2026-05-18

1JavaScriptAudience · dataComplexity · 3/5Setup · moderate

In one sentence

A static dashboard that tracks and visualizes download statistics for .NET packages distributed through Ubuntu's Launchpad archive.

Mindmap

mindmap
  root((dotnet-stats))
    What it does
      Collects Launchpad download data
      Builds static dashboard
      Runs daily via GitHub Actions
    Tech stack
      JavaScript
      Python
      Plotly.js
      Vanilla Framework
    Use cases
      Track dotnet PPA downloads
      Visualize version share
      Forecast future downloads
    Audience
      Ubuntu maintainers
      Package data analysts

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Track daily download counts for .NET packages across Ubuntu's dotnet backports PPA

USE CASE 2

Visualize adoption trends and version share across dotnet6 through dotnet10

USE CASE 3

Forecast future package downloads with a 90-day confidence band

USE CASE 4

Self-host a similar Launchpad download-stats dashboard for another PPA

What is it built with?

JavaScriptPythonPlotly.jsVanilla FrameworkGitHub Actions

How does it compare?

canonical/dotnet-stats0xmukesh/docusaurus-tutorial1tsmejp/palworld-docker-wine
Stars111
LanguageJavaScriptJavaScriptJavaScript
Last pushed2021-12-27
MaintenanceDormant
Setup difficultymoderateeasymoderate
Complexity3/52/54/5
Audiencedatadeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Needs the dashboard served over HTTP, not opened as a local file, and Python dependencies installed for data collection.

No license information was found in the README.

So what is it?

Dotnet-stats is a project by Canonical, the company behind Ubuntu, that collects and displays download statistics for .NET software packages distributed through Ubuntu. It pulls its numbers from Launchpad, the platform Ubuntu uses to host software, and specifically tracks the dotnet backports package archive, which carries versions such as dotnet6 through dotnet10. The results are shown as a static web dashboard, meaning there is no server running behind it, just files that can be hosted anywhere and viewed in a browser. The dashboard lets you filter the data by where it came from, which release pocket it belongs to, which .NET version it covers, and what type of package it is. Behind the scenes, a Python script fetches download counts from Launchpad's API, working around a quirk where Launchpad does not let you filter results by package name directly, so the script instead pulls every published binary and keeps only the ones it cares about. Because rechecking everything from scratch every time would be slow, the script is incremental: after the first full run, later runs only refetch a few recent days of data, and it can fetch multiple packages in parallel while staying under a request rate limit so it does not overwhelm Launchpad's servers. A scheduled task runs automatically once a day, collects fresh numbers, commits the updated data files back to the repository, and republishes the dashboard using GitHub Pages. Someone wanting to run this themselves locally would install the Python dependencies, run the collection script, and then serve the web folder with a simple local web server, since opening the dashboard file directly in a browser will not work. The dashboard itself offers several different views of the data, including an overview of totals, a time series chart with moving averages, a calendar style heatmap of daily activity, growth trend calculations, a breakdown of which .NET version is most popular over time, and even a ninety day forecast with a confidence range. The project is written mainly in JavaScript, uses the Vanilla design framework and the Plotly.js charting library, and currently has 1 star on GitHub.

Copy-paste prompts

Prompt 1
Explain how dotnet-stats works around Launchpad's missing package-name filter
Prompt 2
Help me add a new source package to config.json for dotnet-stats to track
Prompt 3
Walk me through running scripts/collect.py locally with a custom date range
Prompt 4
Show me how the daily GitHub Actions workflow updates and deploys this dashboard

Frequently asked questions

What is dotnet-stats?

A static dashboard that tracks and visualizes download statistics for .NET packages distributed through Ubuntu's Launchpad archive.

What language is dotnet-stats written in?

Mainly JavaScript. The stack also includes JavaScript, Python, Plotly.js.

What license does dotnet-stats use?

No license information was found in the README.

How hard is dotnet-stats to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is dotnet-stats for?

Mainly data.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.