Building GNOME Apps with Rust, Bonus: The Stack Underneath

Building GNOME Apps with Rust, Bonus: The Stack Underneath

This is a bonus post in the series taking a GNOME app from an empty directory to GNOME Circle. It sits between Part 3 and Part 4 — read it if you want context, skip it if you want code. By the end of Part 3 you had a running GTK 4 + libadwaita app with five trait implementations, a mod imp block, an adw::Application parent class, a meson.build next to your Cargo.toml, and a Flatpak manifest pinning a runtime version. None of those decisions arrived in 2026 fully formed. Each is a fossil of a specific argument that took years to settle. ...

May 5, 2026 · 8 min · Justin
Building GNOME Apps with Rust, Part 3: Your First App

Building GNOME Apps with Rust, Part 3: Your First App

This is Part 3 of a series that takes a GNOME application from an empty directory to acceptance into GNOME Circle. Part 2 covered GObject’s type system — properties, signals, and the inner/outer type pattern. Now we’ll use everything we learned to build a real application. From theory to a running window In Part 2 we built a GObject subclass by hand — a Feed model with properties and signals, no GTK in sight. That was deliberate. Understanding GObject’s inner/outer type split, the ObjectSubclass trait, and the mod imp pattern is the foundation that everything else rests on. ...

May 3, 2026 · 16 min · Justin
Building GNOME Apps with Rust, Part 2: GObject in Rust

Building GNOME Apps with Rust, Part 2: GObject in Rust — The Type System Explained

This is Part 2 of a series taking a GNOME app from an empty directory to GNOME Circle. Part 1 covered the why and the dev environment. The app we’re building Throughout this series, we’ll be building Gazette — an RSS reader. I picked it because it naturally exercises every pattern a non-trivial GNOME app needs: networking, data persistence, list/detail UI, adaptive layouts, settings, and state management. You don’t need to build an RSS reader to follow along — the patterns are universal. ...

April 12, 2026 · 7 min · Justin
Building GNOME Apps with Rust, Part 1: Getting Started

Building GNOME Apps with Rust, Part 1: Getting Started

This is Part 1 of a series that takes a GNOME application from an empty directory to acceptance into GNOME Circle. Each post is self-contained, but the series follows a single arc — and a real app — through every stage of the journey. Why GNOME If you’re building a desktop Linux application in 2026, you’ve got choices. KDE Plasma has Kirigami. Elementary has Granite. You can reach for Electron, Tauri, or a dozen other cross-platform toolkits and call it a day. ...

April 6, 2026 · 9 min · Justin