gpui-starter v0.3.0 · auto-updater with signed manifests and ed25519 verification→
gpui-starter

About

Copy it. Ship it. Make it yours.

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.

Why it exists.

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

Four rules the repo keeps.

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.

Everything ships

working on first run

Themes, i18n, forms, launcher, tray icon. All working the first time you run cargo run.

Battle-tested structure

from production apps

State tiers, render purity, backpressure handling. Patterns used in production GPUI apps, not ones that looked good in a blog post.

Open source

MIT licensed

Fork it, change it, ship it. No attribution required, no strings attached.

Mechanics

How it works.

  1. 01

    AppRoot owns the layout

    A resizable sidebar next to a content area. Pages are enum variants; the active one gets rendered.

  2. 02

    Sidebar drives navigation

    Click a nav item to switch pages. The content area re-renders with the new view. No router, just an enum match.

  3. 03

    Cmd+K launcher

    A floating popup with fuzzy search. Selections write back through a global, so any part of the app can respond.

  4. 04

    Themes reload from disk

    ThemeRegistry watches the themes/ directory. Edit a JSON file, save it, and the running app picks up the change immediately.

  5. 05

    gpui-query handles async data

    Fetch from APIs, cache results, refetch on a timer. The same pattern as TanStack Query, built for GPUI entities.

  6. 06

    The updater checks for new versions

    ed25519-signed manifests from GitHub Releases. The app prompts the user, downloads in the background, and applies on next launch.

At a glance

v0.3.0
current version
24
built-in themes
6
pages wired
MIT
license
2024
rust edition

hmziqrs

Rust developer. I build desktop tools and maintain a few open source projects when the compiler lets me.

Clone it and start deleting.