What is Fedora Hummingbird Linux?
I was recently on the Fedora Podcast to talk Bluefin, Utahraptor, the Factory, and AI. There's a little bit of everything in this one, enjoy!
I was recently on the Fedora Podcast to talk Bluefin, Utahraptor, the Factory, and AI. There's a little bit of everything in this one, enjoy!
Jono Bacon posted this video about how we did things in Ubuntu during the good old days. I thought it would be relevant to post here. Marco Ceppi and Adam Israel are the Maintainers Emeritus who helped make the first prototypes of Bluefin. It's basically this formula but applied to bootc images:
Hi there, I'm Delphic Melody. I'm the vector artist who's been creating vector art for Project Bluefin. You might be familiar with some of the vector wallpapers that I've created by remastering and expanding on the work of the extremely talented Natalia Jagielska and Atius Amy: Wallpapers
I'm chiming in to let folks know that Brazilian Bluefins live!
You're more than welcome to modify the vectorized dinos to create your own personalized versions of Bluefin with your country's flag.
Please feel free to PR your renditions to Bluefin's official artwork repository: Artwork Repo
Oh, and if you enjoy my work, please consider donating to my Ko-fi if you can. It really helps keep me motivated to create vector art.
Thank you for your time and consideration. May you have an amazing week.
Completed work across the configured factory portfolio.
| Label | Merged pull requests |
|---|---|
| 2026-09-01 | 9 |
| 2026-09-02 | 14 |
| 2026-09-03 | 2 |
| 2026-09-04 | 10 |
| 2026-09-05 | 39 |
| 2026-09-06 | 47 |
| 2026-09-07 | 38 |
| 2026-09-08 | 35 |
| 2026-09-09 | 20 |
| 2026-09-10 | 76 |
| 2026-09-11 | 6 |
| 2026-09-12 | 34 |
| 2026-09-13 | 33 |
| 2026-09-14 | 39 |
| 2026-09-15 | 6 |
| 2026-09-16 | 14 |
| 2026-09-17 | 16 |
| 2026-09-18 | 39 |
| 2026-09-19 | 41 |
| 2026-09-20 | 78 |
| 2026-09-21 | 22 |
| 2026-09-22 | 81 |
| 2026-09-23 | 113 |
| 2026-09-24 | 48 |
| 2026-09-25 | 75 |
| 2026-09-26 | 63 |
| 2026-09-27 | 50 |
| 2026-09-28 | 15 |
| 2026-09-29 | 88 |
| 2026-09-30 | 49 |
| Label | Merged pull requests |
|---|---|
| projectbluefin/actions | 96 |
| projectbluefin/bonedigger | 7 |
| projectbluefin/common | 133 |
| projectbluefin/dakota | 133 |
| projectbluefin/documentation | 255 |
| projectbluefin/finpilot | 85 |
| projectbluefin/iso | 2 |
| projectbluefin/server | 134 |
| projectbluefin/testsuite | 77 |
| projectbluefin/utah | 150 |
| projectbluefin/utah-packages | 128 |
| Label | Label assignments |
|---|---|
| 2-discussing | 5 |
| 3-clanker-queue | 26 |
| 3-human-queue | 26 |
| 4-review | 41 |
| agent/architect | 19 |
| agent/ci-maintainer | 4 |
| agent/quality | 32 |
| agent/scanner | 41 |
| agent/security | 4 |
| architecture | 17 |
| automerge | 83 |
| blocked | 4 |
| build | 10 |
| chore/deps | 82 |
| dependencies | 7 |
| flatcar-base | 6 |
| full-build | 2 |
| hive/hosted-projectbluefin-knuckle-gjvq | 82 |
| hold | 112 |
| javascript | 7 |
| kde | 11 |
| lgtm | 72 |
| needs-human | 14 |
| pr/needs-review | 63 |
| quality | 36 |
| release/blocked | 1 |
| release/ready | 4 |
| runner | 11 |
| security | 6 |
| size:XS | 1 |
| tech-debt | 1 |
| testing | 35 |
Publishing-lane outcomes, cadence, duration, and release events.
| Label | Dakota |
|---|---|
| 2026-09-01 | 0 |
| 2026-09-02 | 0 |
| 2026-09-03 | 0 |
| 2026-09-04 | 0 |
| 2026-09-05 | 0 |
| 2026-09-06 | 0 |
| 2026-09-07 | 5 |
| 2026-09-08 | 10 |
| 2026-09-09 | 0 |
| 2026-09-10 | 0 |
| 2026-09-11 | 0 |
| 2026-09-12 | 0 |
| 2026-09-13 | 0 |
| 2026-09-14 | 0 |
| 2026-09-15 | 0 |
| 2026-09-16 | 0 |
| 2026-09-17 | 0 |
| 2026-09-18 | 0 |
| 2026-09-19 | 0 |
| 2026-09-20 | 0 |
| 2026-09-21 | 0 |
| 2026-09-22 | 0 |
| 2026-09-23 | 0 |
| 2026-09-24 | 0 |
| 2026-09-25 | 14 |
| 2026-09-26 | 10 |
| 2026-09-27 | 22 |
| 2026-09-28 | 2 |
| 2026-09-29 | 2 |
| 2026-09-30 | 0 |
| Label | Release events |
|---|---|
| 2026-09-21 | 1 |
| 2026-09-18 | 1 |
| 2026-09-16 | 1 |
| 2026-09-14 | 1 |
| 2026-09-09 | 1 |
| 2026-09-04 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-30 | 1 |
| 2026-09-29 | 1 |
| 2026-09-29 | 1 |
| 2026-09-29 | 1 |
| 2026-09-29 | 1 |
| 2026-09-29 | 1 |
| 2026-09-29 | 1 |
| 2026-09-28 | 1 |
| 2026-09-08 | 1 |
Release details remain on the canonical /changelogs surface.
Human and automated contributions with current contributors.
| Label | Human | Automation |
|---|---|---|
| Report period | 780 | 420 |
Celebrating our top community builders across the Project Bluefin factory
@castrojo272 PRscommondakotatestsuite+7Top Hero#02
@hanthor110 PRscommontestsuiteserver+4High Velocity#03
@kylerankin67 PRscommontestsuiteserver+6High Velocity#04
@mrbobbytables65 PRstestsuiteserveractions+4High Velocity#05
@Danathar59 PRscommondakotatestsuite+7High Velocity#06
@ahmedadan47 PRscommondakotadocumentationHigh Velocity#07
@mendezr32 PRscommontestsuiteserver+5New Light#08
@jeefy29 PRsserverNew Light#09
@Siddhj220616 PRscommonactionsfinpilotHigh Velocity#10
@repires15 PRscommontestsuiteactions+3High Velocity#11
@buggtb14 PRscommontestsuiteactions+2New Light#12
@dtg0110013 PRsserveractionsdocumentation+1High Velocity#13
@sramkrishna12 PRscommontestsuiteactions+2New Light#14
@arteeh5 PRscommonserverutah-packagesNew Light#15
@KiKaraage5 PRscommonactionsutahHigh Velocity#16
@HuntedRaven73 PRscommonactionsutahCross-Fleet#17
@clubanderson3 PRscommonutah-packages#18
@eltorrero3 PRscommonactions#19
@TB5162 PRsserverdocumentationNew Light#20
@bronson1 PRserverNew LightFirst-time guardians who made their mark in the factory this month.
Public ecosystem measures labelled with their native source windows.
| Label | Additions |
|---|---|
| Production tap | 1 |
| Experimental tap | 3 |
| Label | Downloads |
|---|---|
| 2026-09-01 | 3847891 |
| 2026-09-02 | 3704773 |
| 2026-09-03 | 3346979 |
| 2026-09-04 | 3546709 |
| 2026-09-05 | 3606051 |
| 2026-09-06 | 3971490 |
| 2026-09-07 | 4269175 |
| 2026-09-08 | 3641711 |
| 2026-09-09 | 3430562 |
| 2026-09-10 | 3964229 |
| 2026-09-11 | 4223264 |
| 2026-09-12 | 3427171 |
| 2026-09-13 | 3209228 |
| 2026-09-14 | 3253176 |
| 2026-09-15 | 6879476 |
| 2026-09-16 | 9581954 |
| 2026-09-17 | 5635105 |
| 2026-09-18 | 5799594 |
| 2026-09-19 | 6441098 |
| 2026-09-20 | 5626597 |
| 2026-09-21 | 5122010 |
| 2026-09-22 | 5022777 |
| 2026-09-23 | 4330136 |
| 2026-09-24 | 4717927 |
| 2026-09-25 | 4303001 |
| 2026-09-26 | 4377214 |
| 2026-09-27 | 4183987 |
| 2026-09-28 | 5367481 |
| 2026-09-29 | 5826789 |
| 2026-09-30 | 4203369 |
Release details remain on the canonical /changelogs surface.
brew tap --trust with brew tap + brew trust by @castrojo in #941github-activity: available (2026-09-01 to 2026-09-30): sourcegithub-lanes: available (2026-09-01 to 2026-09-30): sourcegithub-releases: available (2026-09-01 to 2026-09-30): sourcegithub-releases: available (2026-09-01 to 2026-09-30): sourcegithub-releases: available (2026-09-01 to 2026-09-30): sourcecountme: unavailable — Countme active-system measurement is incomplete. (2026-09-01 to 2026-09-30): sourcehomebrew: available (2026-09-01 to 2026-09-30): sourceflathub: available (2026-09-01 to 2026-09-30): sourceI wanted to capture the recent swarm of activity in the project lately, so I turned to a trusted tool: gource. This is a visualization tool that makes git activity look cool. We needed something that showed how Bluefin used to be, to how Bluefin is now. Here's the past few months:
Some high points:
I'll likely refresh this in a few weeks since we're really grooving now and getting in lots of fixes. We'll see how it plays out over the next month or so! I think this graphical representation is quite cool. It's a good graphical representation that shows how we went from manual mode to agentic mode. It's also nice that everything is MORE SPREAD OUT across MORE people instead of just a few. The next few months will be the real test to see how we do! Check clankers.projectbluefin.io for contribution instructions if you want to check it out!
For me the reviewer role has changed significantly. We have testing branches and test suites now so we can do better reviews instead of "this is mostly fine if it breaks users will tell us.". There's still a lot of that of course, we can never know who is using every knob in an operating system. Mostly now I review things in my omp harness and watch things scroll by slowly. Sometimes I need to steer/adjust but these days it's more acking each other's reviews. This is particular handy with James being in India, we can leave each other homework to review since every change still needs a +2 from maintainers.
Here's two more, both on manual mode:
Dakota Alpha 6 is out. This one is brought to you by Ahmed Adan/ Built against GNOME 51 and freedesktop-sdk 26.08.1, running Linux 7.2.6, NVIDIA 615.71.09. Kernel OGC 7.2.6-ogc1 for your gaming needs.
This one certainly feels good! Please remember that we still do NOT support secure boot, so temper your expectations! Here's the changelog, I'll make a video on this one since we have a lot to discuss!

Alpha 5 baseline values are from tag stable-20260731 (as reflected in the Alpha 5 release announcement):
| Component | Alpha 5 | Alpha 6 | Source / Pin |
|---|---|---|---|
| GNOME Shell | 50.3 | 51.0 | gnome-build-meta |
| Mutter | 50.3 | 51.0 | gnome-build-meta |
| freedesktop-sdk | 25.08.14 | 26.08.1 | elements/freedesktop-sdk.bst |
| gnome-build-meta | 50.3-5-g4b25046 | 51.0-3-ge34f1eb | elements/gnome-build-meta.bst |
| Kernel | 7.0.11 | 7.2.6 | elements/core/linux-fdsdk.bst |
| Game Mode kernel | 7.1.4-ogc1 | 7.2.6-ogc1 | elements/core/linux-ogc.bst |
| NVIDIA | 610.43.02 | 615.71.09 | elements/bluefin-nvidia/nvidia-drivers.bst |
| bootc | 1.16.6 | 1.16.13 | elements/gnomeos-deps/bootc.bst |
| systemd | 260.2 | 261.2 | gnome-build-meta |
| Mesa | 26.1.4 | 26.2.2 | freedesktop-sdk |
| GTK | 4.22.4 | 4.24.0 | gnome-build-meta |
| PipeWire | 1.6.1 | 1.6.8 | gnome-build-meta |
| WirePlumber | 0.5.15 | 0.5.17 | freedesktop-sdk |
| NetworkManager | 1.56.1 | 1.58.1 | gnome-build-meta |
| xdg-desktop-portal | 1.22.1 | 1.22.1 | gnome-build-meta |
Note on kernel and bootc: Dakota pins its kernel at 7.2.6 via elements/core/linux-fdsdk.bst (ahead of freedesktop-sdk 26.08.1's default of 7.2.2) and pins bootc at 1.16.13 via elements/gnomeos-deps/bootc.bst (ahead of gnome-build-meta's default of 1.16.6).
GNOME 51 "A Coruña" was officially released on September 16, 2026 — see the official release notes.
This is the first time we utilized dakota:next tracking a dev release, and Ahmed smoothly transitioned the testing branches through these:
| Change | Commit |
|---|---|
| GNOME 51 and freedesktop-sdk 26.08 on testing | 5005f85 |
| freedesktop-sdk 26.08.1 and NVIDIA 615.71.09 | e835b88 |
| Complete fdsdk 26.08 port across all variants | a29d9f6 |
| Derive fdsdk pin and patches from tracked gnome-build-meta | 57a70d3 |
| Stage sandbox shell explicitly for fdsdk 26.08 | 526affd |
| Core junctions to GBM 50.4 and fdsdk 25.08.16 | 5e630bc |
| Core junctions to GBM 51.0-3 | 12334d2 |
Track gnome-build-meta master in :next | 3af437b |
Here's a bunch of enablement crap:
| Change | Commit |
|---|---|
| Kernel 7.2 with hardware enablement | 5fbeae7 |
| Align testing on 7.1.8 | 6e388f8 |
| OGC gaming kernel 7.2.6-ogc1 | 1371bce |
Carry hid-asus build fix for OGC 7.2.6-ogc1 | d2c8cf7 |
| NVIDIA 610.57.04 plus missing data files | ed2bea8 |
| ATH12K Wi-Fi across variants | b307333 |
| Restore desktop capabilities across streams | a984a81 |
| Preserve hybrid graphics configuration | 997f6ec |
brlaser CUPS driver | 846cd92 |
dmidecode for BIOS info | 0c5c9ea |
| Disable zram in favor of zswap | 53952c7 |
ydotool input automation and uinput rules | a182aba |
plugdev and nintendo_switch groups for udev | 02bb985 |
And some of the upcoming desktop improvements that we've been going over in the Discussions:
| Change | Commit |
|---|---|
| Curated GNOME Shell extensions suite | 01b757b |
quick-settings-audio-panel enabled by default | 8897f7c |
| BudsLink-Companion replaces Bluetooth-Battery-Meter | b07c05d |
syncthing-toggle → bluefin-bling v2 | bd7bbe6 |
| Ghostty resize overlay off by default (Wayland loop) | 556bc0c |
| Ghostty dual-theme tracks GNOME Dark/Light | ffe6271 |
| Stop GDM fingerprint retry loop on unenrolled readers | ddc37d7 |
| Disable PC-speaker WirePlumber sink | a5e9152 |
| Portable unzip flags for extension installs | 787bf4d |
| Preserve release ZIP root files in extension packaging | 20113c3 |
| Avoid broken and intrusive desktop defaults | 691a377 |
| Developer mode adapted to Dakota | 9efe6e9 |
| Bluefin dinosaur avatars in GNOME user-account picker | e106345 |
| Unbreak fresh-ISO post-install (uwelcome, brew, devmode) | 85a1123 |

Bluefin's "Game Mode" is fleshed out now, offering access to a "Bazzite Light" gaming setup, perfect for slaying out. Destiny on Linux please Sony!
| Change | Commit |
|---|---|
| OGC gaming kernel 7.2.6-ogc1 | 1371bce |
| 32-bit GL/Vulkan drivers, Steam UI GPU acceleration | 096b351 |
Steam .deb pinned to versioned pool URL | e051009 |
patches/linux-ogc added to sync overlay | efc23c7 |
| Re-pin LuaJIT after upstream deleted ROLLING tag | f277abd |
The chunka work is great, you'll notice way smaller updates than the old images. Top of the line hunter!
| Change | Commit |
|---|---|
| Single source of truth for the image-variant set | a987f87 |
| Real stream tag in fastfetch via boot-time booted-image sync | d4048c6 |
| Generate ownership during image builds with chunkah | 4360e70 |
| Fetch remote companion data before reading in chunkah | 73ff57e |
| Preserve export mtimes in chunkah | 1c081c0 |
| Compose host toolchain once during image builds | e4a2dfd |
Stop using /dev/stdin for inline writes under BuildBarn/BuildBox | 5e30bde |
resize-overlay = never; theme tracks the GNOME Dark/Light preference.snd_pcsp sink disabled in WirePlumber — audio no longer falls back to the PC speaker after resume./var/swap/swapfile.io.github.maniacx.BudsLink Flatpak.aarch64 images are not published this cycle. (We'll turn these on soon)| Image | Stream | Command |
|---|---|---|
| Dakota | Stable | sudo bootc switch ghcr.io/projectbluefin/dakota:stable |
| Dakota | Testing | sudo bootc switch ghcr.io/projectbluefin/dakota:testing |
| NVIDIA | Stable | sudo bootc switch ghcr.io/projectbluefin/dakota-nvidia:stable |
| NVIDIA | Testing | sudo bootc switch ghcr.io/projectbluefin/dakota-nvidia:testing |
| Gaming | Stable | sudo bootc switch ghcr.io/projectbluefin/dakota-gaming:stable |
| Gaming | Testing | sudo bootc switch ghcr.io/projectbluefin/dakota-gaming:testing |
| NVIDIA Gaming | Stable | sudo bootc switch ghcr.io/projectbluefin/dakota-nvidia-gaming:stable |
| NVIDIA Gaming | Testing | sudo bootc switch ghcr.io/projectbluefin/dakota-nvidia-gaming:testing |
You can't rebase to Dakota from another image. If you're not on Dakota already, reinstall from the ISO.
Testing instructions and bug reporting: ISO Testing. File ISO bugs in projectbluefin/dakota-iso.
Remember that the wolves are coming, level up your skills at training.projectbluefin.io. It's a tough world out there, here's a sneak peek at the artwork from the artists at makemeacomic.com! These are just a sample of entries from a mysterious journal uncovered on Europa by a [REDACTED] merchant. Inside are the secrets to unlocking the potential of Contributor-Guardians and their mounts. But the forces of the Toilmaster are already ahead of them. Instructions from a doomed CNCF Expedition are sparse:
There's a stone here. "All these worlds are yours, except Europa, attempt no landing there." But sir didn't the Hummingbird team leave three days ago?
Long-Range Raptor Mount
Alright, here it is, Bluefin Server, this one actually boots. This is the base of the Bluefin Factory, the thing you'll build your homelab on. And in turn, your desktops or whatever you want. Kubernetes for the home.
An FSDK-based, image-based Linux server OS.**
To celebrate this milestone, enjoy the latest video, with some fresh lore!
Bluefin Server targets the same use-case space as Flatcar Container Linux, Kairos, Fedora CoreOS, and Talos, but is built from scratch with BuildStream 2 from freedesktop-sdk (FSDK 26.08) components and uutils coreutils.
It is designed to be installed and then managed entirely through the Kubestellar GUI. I'll be releasing point releases quickly over the next few days. After the install it will give you a web address, then you go to it on your computer. Then that's it, your perfect home server.
Except the dashboards are empty. The more people we have making these the better, including a ZFS one! This variant will have ZFS support so now's the time to jump onboard!
It is DDI first: the OS payload is a compressed XFS DDI filesystem image that is deployed by an offline, systemd-native installer.
Bluefin Server is currently in Alpha:
systemd-sysupdate should work, we're about to find out!
configurations.docs/MVP_1_0_READINESS.md.50-root.transfer names root-a
and root-b; the installer currently creates only root-a.systemd-sysinstall provides the interactive terminal UI and systemd-repart handles partitioning and block-copy DDI placement. Finally distro installers can all go die!systemd-sysext so the base image stays distroless. We started with k3s but I want to see how this one goes, stripped down for the home.SSH ON: SSH is enabled for cluster boot tests and remote debugging. It is scheduled for removal once diagnostics move to serial logs or a guest agent. See
docs/skills/factory-integration.md.
Bare metal sorely needed! However this runs on any Linux, feel free to fire up a VM and start designing that dashboard! Once we get home assistant and all the goodies it'll be amazing! Thanks for checking it out!
You need only podman and just. BuildStream
runs inside the FSDK bst2 container, so BuildStream is not installed locally.
just validate # resolve the element graph
just show-me-the-future # end-to-end QEMU installer smoke test
See AGENTS.md
for the full build command matrix, hard rules, and agent skill routing.
See
CONTRIBUTING.md
for the contributor checklist, Conventional Commit rules, and
docs/skills/index.md
for task-specific guidance.
A belated happy five years to Universal Blue, and how wanting laptops my family could actually live with turned me into an open source maintainer.
This is my personal site. Opinions here are my own and don't necessarily reflect those of Red Hat.
Maybe you saw that Universal Blue recently celebrated its five-year anniversary. Aurora, Bazzite, and Bluefin (the OG) all marked it with posts of their own. I’m thankful to be a part of the team that’s done such great work. I’m usually content to just get things done in the background, but it’s high time I share some of my thoughts about this project and organization we call Universal Blue.
When Jorge Castro made that initial commit five years ago, he was doing different things than we do today. He was running Fedora Silverblue or openSUSE MicroOS, using various scripts to shape the installation into his dream. It was a beginning.
I was in a different, but similar place. I could see the day approaching when my kids were going to need laptops for school, and they already wanted to do more gaming. I didn’t love managing Windows even for myself and didn’t want to manage multiple installs, but multiple Linux installs weren’t much more exciting. I was experimenting to find a solution to make supporting my family’s laptops seem less like sysadmin work, to find something that would “just work” instead.
My GitHub and private Git server are littered with repos full of old dotfiles, configs, Ansible playbooks and shell scripts. I was determined to pre-configure and automate all the post-install Linux things. For me, this “perfect Linux laptop” idea was brewing in 2021. That’s probably when I started to get a solid base of Ansible to manage my family’s Linux systems.
Though I’ve consistently been using Linux on the server for 30 years, desktop use has been more intermittent. “The Year of the Linux Desktop” is almost a perennial joke, and laptops almost always meant more pain than a typical desktop PC. It’s been decades since I bought into the religious wars of macOS versus Windows versus Linux versus BSD. At some point, pragmatism set in. I don’t really care which OS you’re running, but maintaining a fleet of laptops for your family is still a pain, except perhaps if they are all Chromebooks.
In November 2022, I stumbled across a blog post and video by Jorge. He’d been writing (and talking) about immutable Linux OSes, and at that moment he was comparing Fedora Silverblue and openSUSE’s MicroOS. MicroOS caught my attention as something I might use to make my family’s laptops a little bit more reliable. It promised something like ChromeOS that could still function as a normal system. I found it intriguing, but there were enough rough edges that I just couldn’t switch off the Ansible-customized Ubuntu which had become the in-home standard.
In December 2022, Jorge posted something magical. Fedora had released an experimental feature for Silverblue and Kinoite: container-native rpm-ostree. It meant we could have a custom built operating system image, but built like any other Docker image. I’d been living and breathing Docker images. I’d been running Kubernetes at home. I’d packaged applications in Docker images for work and home. The promise of pre-built application images, running the same thing everywhere, was now available as a custom operating system! I could bake in customizations for my family, fixes for all the quirks that normally I had to fix after an installation, or whatever I wanted. Maybe most importantly, all of the package and upgrade conflicts which inevitably occurred for any package management system were no longer an issue.
That whole class of problem would happen in CI, not on my laptop, certainly not on my wife’s or kids’ laptop!
And NVIDIA, oh, NVIDIA: the greatest love/hate of any Linux user who’d chosen to use it. Powerful and wonderful when it works, but often a pain to get going: NVIDIA would get the same treatment.
Fun fact, I’d used both Fedora Silverblue and CoreOS before, but I found them too restrictive without a better way to customize the defaults to have a better overall user experience. It’s kind of crazy that this turned around so quickly once I could participate in building the OS image itself. Container-native truly opened the door wide for new contribution in this space. It certainly did for me!
This is where I stopped watching what Jorge was doing from afar and got involved.
The ublue-os GitHub org and a Discord server had both been created. I joined the chat and saw them working on a pre-built NVIDIA kmod. I had some of my own custom images going, but I jumped in to help with that NVIDIA kmod; I had a vested interest in making it work. My first official contribution was on February 20, 2023. It wasn’t much, but Universal Blue was (and still is) a welcoming community, and I quickly became involved in more and more code reviews and code contributions. Not even a month later, I’d forked Kyle Gospodnetich’s serverblue repo into uCore, with his blessing of course. By then Kyle was fully invested in Bazzite!
The rest, as they say, is history! And frankly, most of the history is public record because all of our commits, issues, PRs and discussions are out in the open. It’s Open Source Software, after all. I found a passion for participating in the shared effort of building and maintaining our various Universal Blue projects; I stuck with it.
One day I looked up and realized, “oh, I’m a maintainer.”
Achieving that “status” was never a goal; rather, it was a natural progression. uCore became my primary Universal Blue project, and I’m practically its sole maintainer, though I’m also a core maintainer across all of Universal Blue, and a user of most of it. Working in the server space certainly matches my traditional interests, so I’m glad I can assist with the desktop projects but don’t need to carry that load alone.
Bluefin and Bazzite fulfilled the dream of Linux laptops that “just work.” Ansible ceased to be used for desktop/laptop management as the prebuilt images (bOS, my lightly personalized version of Universal Blue images) became the new home standard. My boys got Dell laptops with NVIDIA cards which enabled some 3D gaming as well as school, and maintenance was minimal, since those failures now occur in CI and never make it to the laptops themselves. My wife and daughter got a matching pair of HP laptops with AMD integrated graphics, better battery life and still some light gaming ability.
These systems just keep updating.
Are there occasional hiccups? Yes. Is it massively easier to maintain than before, when every other update seemed to result in a broken NVIDIA kmod or some other issue? 100%! I confess the boys argued their way into Windows specifically to play a game which still doesn’t work on Linux with Proton, but they miss the Linux desktop and I think I’ll win them back soon.
There is another important thing. I want to say “thank you” to Jorge and Kyle. Each had their own dreams… Kyle’s vision was to bring the “just works” gaming experience of the Steam Deck to any desktop or handheld, while Jorge pushed for the “just works” experience of a Chromebook but with more power and flexibility. Kyle, Jorge and I worked and gamed together, and Kyle would sometimes join me and my boys for gaming sessions. I wasn’t always sure how to relate to Jorge’s ambitious goals, but he challenged me to think bigger. Beyond these two, a whole group of people came together as friends and teammates to support each other personally and technically as we built the various Universal Blue projects.
This team has brought dreams to life.
One of those dreams has been to get people jobs! Most of us did this work outside our day jobs. Eventually some folks set up sponsorship via GitHub, etc, and that’s been awesome to help offset the costs of development, but day jobs pay the bills. The community and network Jorge built here has been excellent in that regard. Contributors to Universal Blue at different career stages have found their way into new opportunities at several different software companies. I’m one of them. My fairly recent start at Red Hat is a great example. My previous years of experience were crucial, but learning specific technologies and Open Source methodologies with Universal Blue provided a direct path to what Red Hat needed. So when I say I’m thankful for this project, and for the opportunity to participate, I mean it. My Universal Blue experience had already been personally and technically rewarding, but finding a job in Open Source through this project experience was next level!
Thank you to everyone who has contributed to a Universal Blue project, however big or small! Thank you for all the users! This has been a great adventure, and in the best possible way, I don’t see an end in sight.
Model Context Protocol (MCP) is an open protocol for LLMs and agents to talk to each other. We're now serving the Project Bluefin organization knowledge base and live factory state at https://mcp.projectbluefin.io/mcp.
Right now hive.projectbluefin.io exposes an API that has things that are useful for agents. We use it to dole out work to volunteers and to get review tasks. This is what's letting us scale out in ways we haven't been able to before. Hive has a nice Knowledge Base that it exposes, so this initial cut is to search that knowledge. This is mostly useful to connect whatever agent you use to our stuff and get context for your agent. So if you want to do Bluefin things you just add this. I've updated the Agentic Contributor Guide, note that our hive API endpoints are published, so if you're building a deep integration it probably makes sense to work with the Hive API directly. Feedback and usage notes welcome!
https://mcp.projectbluefin.io/mcphttps://mcp.projectbluefin.io/healthHere's what's exposed:
| Tool | Description | Parameters |
|---|---|---|
search_knowledge | Search Project Bluefin knowledge base: engineering patterns, test coverage gaps, CI conventions, and repo findings across projectbluefin/*. | query (string, required)limit (integer 1–25, default 10) |
get_factory_status | Live factory status from Hive: hub health, active contributors, actionable items, per-tier limits. | None |
get_work_queue | Live work queue and triage state from Hive: issues ready to implement and triage grouping. | limit (integer 1–25, default 10) |
get_index_status | Operational health, record count, and timestamp of the published knowledge index. | None |
get_quickstart | Onboarding checklists (first-pr, run-tests, factory-gates, branch-rules). | topic (enum, required) |
get_repository_map | High-level component map, entrypoints, and branch targets for bluefin, bluefin-lts, common, dakota, documentation. | repo (enum, required) |
Completed work across the configured factory portfolio.
| Label | Merged pull requests |
|---|---|
| 2026-08-01 | 38 |
| 2026-08-02 | 20 |
| 2026-08-03 | 30 |
| 2026-08-04 | 14 |
| 2026-08-05 | 12 |
| 2026-08-06 | 10 |
| 2026-08-07 | 117 |
| 2026-08-08 | 20 |
| 2026-08-09 | 54 |
| 2026-08-10 | 8 |
| 2026-08-11 | 3 |
| 2026-08-12 | 5 |
| 2026-08-13 | 10 |
| 2026-08-14 | 5 |
| 2026-08-15 | 15 |
| 2026-08-16 | 11 |
| 2026-08-17 | 7 |
| 2026-08-18 | 8 |
| 2026-08-19 | 5 |
| 2026-08-20 | 14 |
| 2026-08-21 | 21 |
| 2026-08-22 | 17 |
| 2026-08-23 | 8 |
| 2026-08-24 | 19 |
| 2026-08-25 | 7 |
| 2026-08-26 | 14 |
| 2026-08-27 | 4 |
| 2026-08-28 | 11 |
| 2026-08-29 | 10 |
| 2026-08-30 | 22 |
| 2026-08-31 | 2 |
| Label | Merged pull requests |
|---|---|
| projectbluefin/actions | 44 |
| projectbluefin/bluefin | 155 |
| projectbluefin/bluefin-lts | 38 |
| projectbluefin/bonedigger | 3 |
| projectbluefin/common | 50 |
| projectbluefin/dakota | 92 |
| projectbluefin/documentation | 18 |
| projectbluefin/finpilot | 49 |
| projectbluefin/iso | 1 |
| projectbluefin/server | 4 |
| projectbluefin/testsuite | 67 |
| projectbluefin/utah | 6 |
| projectbluefin/utah-packages | 14 |
| Label | Label assignments |
|---|---|
| 1-triage | 3 |
| 3-clanker-queue | 41 |
| 4-review | 38 |
| agent/contributor | 2 |
| automerge | 52 |
| chore/deps | 52 |
| cli/copilot | 2 |
| contributor/castrojo | 2 |
| dependencies | 2 |
| hold | 13 |
| javascript | 2 |
| kde | 9 |
| lgtm | 23 |
| needs-human | 1 |
| pr/needs-review | 67 |
| quality | 3 |
| release/ready | 63 |
| renovate/high-risk | 16 |
| renovate/low-risk | 3 |
| runner | 9 |
| security | 6 |
| size:M | 1 |
| size:S | 2 |
| size:XL | 1 |
| size:XS | 19 |
| testing | 3 |
Publishing-lane outcomes, cadence, duration, and release events.
| Label | Bluefin Testing | Bluefin LTS | Dakota |
|---|---|---|---|
| 2026-08-01 | 0 | 0 | 0 |
| 2026-08-02 | 0 | 0 | 0 |
| 2026-08-03 | 0 | 0 | 0 |
| 2026-08-04 | 0 | 0 | 0 |
| 2026-08-05 | 0 | 0 | 0 |
| 2026-08-06 | 0 | 0 | 0 |
| 2026-08-07 | 0 | 0 | 0 |
| 2026-08-08 | 0 | 0 | 0 |
| 2026-08-09 | 0 | 0 | 0 |
| 2026-08-10 | 0 | 0 | 0 |
| 2026-08-11 | 0 | 0 | 0 |
| 2026-08-12 | 0 | 0 | 0 |
| 2026-08-13 | 0 | 0 | 0 |
| 2026-08-14 | 0 | 0 | 0 |
| 2026-08-15 | 0 | 0 | 0 |
| 2026-08-16 | 0 | 0 | 0 |
| 2026-08-17 | 0 | 0 | 0 |
| 2026-08-18 | 0 | 0 | 0 |
| 2026-08-19 | 0 | 0 | 0 |
| 2026-08-20 | 0 | 0 | 0 |
| 2026-08-21 | 0 | 1 | 0 |
| 2026-08-22 | 0 | 1 | 0 |
| 2026-08-23 | 0 | 1 | 0 |
| 2026-08-24 | 6 | 0 | 3 |
| 2026-08-25 | 0 | 0 | 4 |
| 2026-08-26 | 1 | 0 | 7 |
| 2026-08-27 | 0 | 0 | 9 |
| 2026-08-28 | 0 | 7 | 35 |
| 2026-08-29 | 0 | 0 | 16 |
| 2026-08-30 | 1 | 11 | 7 |
| 2026-08-31 | 0 | 9 | 4 |
| Label | Release events |
|---|---|
| 2026-08-07 | 1 |
| 2026-08-06 | 1 |
| 2026-08-05 | 1 |
| 2026-08-04 | 1 |
| 2026-08-03 | 1 |
| 2026-08-02 | 1 |
| 2026-08-01 | 1 |
| 2026-08-31 | 1 |
| 2026-08-28 | 1 |
| 2026-08-24 | 1 |
| 2026-08-21 | 1 |
| 2026-08-19 | 1 |
| 2026-08-15 | 1 |
Release details remain on the canonical /changelogs surface.
Human and automated contributions with current contributors.
| Label | Human | Automation |
|---|---|---|
| Report period | 258 | 283 |
Celebrating our top community builders across the Project Bluefin factory
@castrojo109 PRscommonbluefinbluefin-lts+6Top Hero#02
@ahmedadan35 PRscommonbluefindakotaHigh Velocity#03
@hanthor24 PRscommonbluefinbluefin-lts+6High Velocity#04
@Danathar20 PRsbluefindakotatestsuiteHigh Velocity#05
@mrbobbytables13 PRsbluefindakotatestsuiteHigh Velocity#06
@bketelsen11 PRsbluefinbluefin-ltstestsuite+1High Velocity#07
@Siddhj22065 PRsactionsfinpilotHigh Velocity#08
@joshyorko4 PRscommonbluefintestsuite+1Cross-Fleet#09
@HuntedRaven73 PRscommonbluefin-ltsutahCross-Fleet#10
@rapenne-s2 PRsdakota#11
@Giklab1 PRcommon#12
@kylerankin1 PRtestsuite#13
@onlydole1 PRtestsuite#14
@theMimolet1 PRcommon#15
@tunix1 PRfinpilotPublic ecosystem measures labelled with their native source windows.
| Label | Active systems |
|---|---|
| week-1 | 3561 |
| week-2 | 3672 |
| week-3 | 3606 |
| week-4 | 3712 |
| week-5 | 3780 |
| week-6 | 3667 |
| week-7 | 3584 |
| week-8 | 3678 |
| week-9 | 4195 |
| week-10 | 3920 |
| Label | Additions |
|---|---|
| Production tap | 2 |
| Experimental tap | 12 |
Release details remain on the canonical /changelogs surface.
github-activity: available (2026-08-01 to 2026-08-31): sourcegithub-lanes: available (2026-08-01 to 2026-08-31): sourcegithub-releases: available (2026-08-01 to 2026-08-31): sourcegithub-releases: available (2026-08-01 to 2026-08-31): sourcegithub-releases: available (2026-08-01 to 2026-08-31): sourcegithub-releases: available (2026-08-01 to 2026-08-31): sourcegithub-releases: available (2026-08-01 to 2026-08-31): sourcecountme: available (2026-08-01 to 2026-08-31): sourcehomebrew: available (2026-08-01 to 2026-08-31): sourceflathub: unavailable — Flathub statistics could not be read. (2026-08-01 to 2026-08-31): source