Analytics
Bluefin
Systems active per day.
Bluefin :stable: accumulating dataBluefin :testing: accumulating dataBluefin :unknown: accumulating data
No raptors reporting in, life finds a way
Bluefin Utah
Systems active per day.
Bluefin Utah :stable: accumulating dataBluefin Utah :testing: accumulating dataBluefin Utah :unknown: accumulating data
No raptors reporting in, life finds a way
Bluefin Classic (ublue-os/bluefin)
ublue-os/bluefin:stable, counted by ublue-os/countme. Metalink hits, not image check-ins.
Bluefin Classic: unavailableBluefin: accumulating data
The upstream badge could not be read.
Image × Stream Publication Matrix
Days since each published image last pushed to each promotion stream. One hue at four intensities, plus a glyph:
NominalWatchAlertUnknown
Reading the registry snapshot…
Streams: every image promotes :testing → :stable, which is the whole axis. Read from each repository’s execute-release.yml promotion matrix. The :gts and :latest tags still sit on some images as leftovers from retired schemes; nothing promotes through them, so they are not columns here.
Project Bluefin Image Family
Every image projectbluefin/common ships into, with the GHCR flavors each family publishes.
Bluefin
Flagship Workstation · Fedorabluefintesting —stable —bluefin-nvidiatesting —stable —
Project Bluefin Dakota
Next-Gen BuildStream · GNOME OS / BuildStream 2dakotatesting —stable —dakota-nvidiatesting —stable —dakota-gamingtesting —stable —dakota-nvidia-gamingtesting —stable —
Project Bluefin Utah
Modular Hummingbird · Fedora Hummingbird- No image published to GHCR yet
Bluefin Server
Image-Based Server · freedesktop-sdk 26.08- DDI + systemd-sysupdate delivery — no container stream
Update Churn & Compression Analytics
Project Bluefin measures download byte delta, layer reuse efficiency, and compression statistics between consecutive stable releases.
Using Chunkah and the zstd-chunked container layer format,
operating system updates are segmented into fine-grained package intervals so clients download only specific chunks containing changed packages.
Download Churn per Release
Bytes a client actually pulls for each release, one lane per image on a single 0–3,500 MB domain. Diamonds are baseline pulls: the first tag this pipeline tracked, which has no previous tag to diff against, so it carries the whole image rather than a delta.
Show the numbers
| Bluefin rolling median (5) | Bluefin p50–p95 spread | Bluefin download delta (MB) | Bluefin baseline pull (MB) | Project Bluefin Dakota download delta (MB) | Project Bluefin Dakota baseline pull (MB) | Project Bluefin Utah download delta (MB) | Project Bluefin Utah baseline pull (MB) | |
|---|---|---|---|---|---|---|---|---|
| 2026-08-09 | 703.3 | 410.20000000000005 | 478.9 | no data | no data | no data | no data | no data |
| 2026-08-11 | 868.7 | 244.79999999999995 | 703.3 | no data | no data | no data | no data | no data |
| 2026-08-13 | 868.7 | 244.79999999999995 | 671.1 | no data | no data | no data | no data | no data |
| 2026-08-18 | 868.7 | 244.79999999999995 | 868.7 | no data | no data | no data | no data | no data |
| 2026-08-20 | 858.5 | 255 | 1113.5 | no data | no data | no data | no data | no data |
| 2026-08-25 | 826.8 | 114.10000000000002 | 940.9 | no data | no data | no data | no data | no data |
| 2026-09-01 | no data | no data | 858.5 | no data | no data | no data | no data | no data |
| 2026-09-08 | no data | no data | 769.7 | no data | no data | no data | no data | no data |
| 2026-09-15 | no data | no data | 763.4 | no data | no data | no data | no data | no data |
| 2026-09-22 | no data | no data | 826.8 | no data | no data | no data | no data | no data |
| 2026-09-29 | no data | no data | no data | 3174.9 | no data | 3478.8 | no data | 2212.7 |
Percentile band withheld: a rolling p50 and p50–p95 band needs 5 consecutive measured deltas. Project Bluefin Dakota has 0 (5 more needed), Project Bluefin Utah has 0 (5 more needed). The band is drawn per lane as soon as that lane reaches 5.
Layer Reuse by Image and Release
Share of bytes already on disk when each release landed. One hue at four intensities, plus a glyph:
60%+ reused25–59% reusedunder 25% reusednot measured
Show the numbers
| 2026-08-09 | 2026-08-11 | 2026-08-13 | 2026-08-18 | 2026-08-20 | 2026-08-25 | 2026-09-01 | 2026-09-08 | 2026-09-15 | 2026-09-22 | 2026-09-29 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Bluefin | ● 85% | ● 78% | ● 79% | ● 73% | ● 65% | ● 70% | ● 73% | ● 76% | ● 76% | ● 74% | ○ base |
| Project Bluefin Dakota | — | — | — | — | — | — | — | — | — | — | ○ base |
| Project Bluefin Utah | — | — | — | — | — | — | — | — | — | — | ○ base |
Cached vs Downloaded Bytes
Each release split into bytes served from the local layer cache and bytes pulled over the network, stacked to the image’s full size. Every lane shares one 0–3,500 MB domain; baseline tags are withheld because their split is not measured.
Cached, served from diskDownloaded over the network
Show the numbers
| Bluefin cached (MB) | Bluefin downloaded (MB) | Project Bluefin Dakota cached (MB) | Project Bluefin Dakota downloaded (MB) | Project Bluefin Utah cached (MB) | Project Bluefin Utah downloaded (MB) | |
|---|---|---|---|---|---|---|
| 2026-08-09 | 2687 | 478.9 | no data | no data | no data | no data |
| 2026-08-11 | 2462.6 | 703.3 | no data | no data | no data | no data |
| 2026-08-13 | 2496.5 | 671.1 | no data | no data | no data | no data |
| 2026-08-18 | 2299 | 868.7 | no data | no data | no data | no data |
| 2026-08-20 | 2054.4 | 1113.5 | no data | no data | no data | no data |
| 2026-08-25 | 2228.8 | 940.9 | no data | no data | no data | no data |
| 2026-09-01 | 2311.3 | 858.5 | no data | no data | no data | no data |
| 2026-09-08 | 2404.2 | 769.7 | no data | no data | no data | no data |
| 2026-09-15 | 2410.6 | 763.4 | no data | no data | no data | no data |
| 2026-09-22 | 2348.1 | 826.8 | no data | no data | no data | no data |
| 2026-09-29 | no data | no data | no data | no data | no data | no data |
Compression Format State Lane
The layer format each release shipped in, with the count of layers already in zstd:chunked form out of the release’s total. One hue plus a glyph:
zstd:chunkedgzipno release
Show the numbers
| 2026-08-09 | 2026-08-11 | 2026-08-13 | 2026-08-18 | 2026-08-20 | 2026-08-25 | 2026-09-01 | 2026-09-08 | 2026-09-15 | 2026-09-22 | 2026-09-29 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Bluefin | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 | ▲ 0/74 |
| Project Bluefin Dakota | — | — | — | — | — | — | — | — | — | — | ● 120/120 |
| Project Bluefin Utah | — | — | — | — | — | — | — | — | — | — | ● 128/128 |
Latest Release per Image
The current numbers behind every lane above, with the measured deltas as a sparkline on the shared 0–3,500 MB churn domain.
Bluefin
Flagship Workstation · :stableProject Bluefin Dakota
Next-Gen Workstation · :stableProject Bluefin Utah
Modular Workstation · :testingChunkah rechunks system updates into package-interval OCI layers. Shared layers require 0 download bytes during bootc updates. Source: GHCR OCI Manifests & Attestations · method oci-layer-diff-v1 · generated 2026-09-29.
Methodology, Privacy & Opt-Out
Counting Methodology
Every Project Bluefin count comes from countme.projectbluefin.io
First-party Countme Service & Privacy Guarantees
Project Bluefin Dakota and Utah images send a daily active-system ping from the
projectbluefin-countme systemd timer to https://countme.projectbluefin.io/v1/ping.
Other images do not send it.
- What is sent: a single string,
<image-name>/<image-flavor>:<stream>, where the stream is the booted image's tag (stable,testing, orunknown). Nothing else: no install age, architecture, machine ID, username, or persistent identifier. - How often: at most once per day per system, and never from a live ISO, installer, or container.
- What is stored: one counter per UTC day and image. No per-system rows and no IP addresses. A day's count is the number of systems active that day, not distinct devices over time.
Opt-Out Instructions
To stop Project Bluefin countme reporting now and across reboots, mask its systemd timer:
sudo systemctl mask --now projectbluefin-countme.timer
A mask of the previous bluefin-countme.timer or bluefin-countme.service units, and the
/etc/projectbluefin/countme/disabled opt-out file, still stop reporting.
To disable upstream Fedora countme:
To disable Homebrew analytics:
brew analytics off
See the Homebrew analytics documentation for additional details.
Contributor Metrics
For real-time development and organizational velocity metrics across all 15 factory repositories, see the Factory metrics view.
Upstream repository metrics for projectbluefin/bluefin are also tracked on Linux Foundation Insights.