Real Rust code
the version that has to compile
Proper error handling, entity lifecycle management, render purity. The kind of code you write when the app has to work.
About
gpui-starter is a working multi-page desktop app you can clone and build on. Every feature actually runs. The patterns come from shipping real GPUI software, not from imagining what might work.
GPUI is Zed's GPU-accelerated UI framework for Rust. The API is solid and fast, but there is almost nothing written about how to structure a real app with it.
gpui-starter started as a personal reference: a working desktop application with navigation, themes, i18n, forms, and system integration wired up end to end. Other people found it useful, so I cleaned it up and released it.
Design principles
the version that has to compile
Proper error handling, entity lifecycle management, render purity. The kind of code you write when the app has to work.
working on first run
Themes, i18n, forms, launcher, tray icon. All working the first time you run cargo run.
from production apps
State tiers, render purity, backpressure handling. Patterns used in production GPUI apps, not ones that looked good in a blog post.
MIT licensed
Fork it, change it, ship it. No attribution required, no strings attached.
Mechanics
A resizable sidebar next to a content area. Pages are enum variants; the active one gets rendered.
Click a nav item to switch pages. The content area re-renders with the new view. No router, just an enum match.
A floating popup with fuzzy search. Selections write back through a global, so any part of the app can respond.
ThemeRegistry watches the themes/ directory. Edit a JSON file, save it, and the running app picks up the change immediately.
Fetch from APIs, cache results, refetch on a timer. The same pattern as TanStack Query, built for GPUI entities.
ed25519-signed manifests from GitHub Releases. The app prompts the user, downloads in the background, and applies on next launch.
At a glance