gpui-starter
What is gpui-starter
Section titled “What is gpui-starter”gpui-starter is a Rust boilerplate for GPUI, the GPU-accelerated UI framework that powers the Zed editor. It ships with the things you would end up building anyway: multi-page navigation, 21 themes with hot-reload, i18n in English and Chinese, form validation, a Cmd+K command launcher, macOS system tray, SQLite persistence, secure storage via the OS keyring, auto-updater with Ed25519 signing, crash reporting, and accessibility through AccessKit.
You get a working app in cargo run, not a “hello world” label.
Quick start
Section titled “Quick start”git clone https://github.com/hmziqrs/gpui-boilerplate.git gpui-appcd gpui-appcargo runThe app window opens with six pages: Home, Form, Settings, About, Diagnostics, and Notifications. Edit any page in src/ and save to see changes reflected on rebuild. See the getting started guide for prerequisites and project structure.
Feature overview
Section titled “Feature overview”Navigation and routing
Section titled “Navigation and routing”Multi-page sidebar navigation with type-safe route definitions. Each route maps to a render function, and the sidebar highlights the active page automatically. See routing for the route registry pattern.
Themes
Section titled “Themes”21 built-in themes loaded from JSON files in themes/. Hot-reload watches the directory and applies changes without restarting. Catppuccin Mocha, Ayu Dark, One Dark, and 18 others ship by default. Read the themes guide for adding custom themes.
Internationalization
Section titled “Internationalization”English and Chinese (zh-CN) translations managed by es-fluent. Translation files live in i18n/ and compile into typed constants, so a missing key is a compile error, not a runtime surprise. See i18n configuration for the setup.
Form validation
Section titled “Form validation”Built on gpui-form and koruma. Define validation rules as Rust structs and get inline error messages, field-level dirty tracking, and submit handling. The forms documentation covers the full API.
Command launcher
Section titled “Command launcher”Press Cmd+K to open a Spotlight-style search overlay. It fuzzy-matches across all registered actions and dispatches the selected one. You can register custom commands through the action registry. See the command launcher docs for registration and customization.
Data persistence
Section titled “Data persistence”SQLite via rusqlite, embedded in-process. Migrations run on startup. The storage layer handles CRUD for settings, notification history, and app state. For sensitive data like tokens and credentials, the secure storage module uses the OS keyring (macOS Keychain, Linux Secret Service, Windows Credential Manager).
Auto-updater and crash reporting
Section titled “Auto-updater and crash reporting”The updater checks a remote endpoint for new versions, verifies the manifest with Ed25519 signatures, and prompts the user to install. Crash reports capture panic backtraces and write them to a local directory for diagnostics. See the architecture overview for how both subsystems are wired.
Notifications
Section titled “Notifications”Desktop notifications with inline history, dismiss/retry actions, and persistence across restarts. Covered in the notifications guide.
Accessibility and testing
Section titled “Accessibility and testing”AccessKit provides screen reader support and semantic tree generation. The testing guide covers unit tests for views and integration patterns.
Documentation pages
Section titled “Documentation pages”| Page | What it covers |
|---|---|
| Getting Started | Prerequisites, quick start, project structure |
| Architecture | GPUI API patterns, entity management, globals, subscriptions |
| Routing | Route registry, sidebar, active page tracking |
| Themes | Built-in themes, hot-reload, custom theme format |
| i18n | es-fluent setup, adding languages, compile-time checks |
| Forms | Validation rules, error display, submit handling |
| Command Launcher | Cmd+K overlay, fuzzy search, action registry |
| Secure Storage | OS keyring integration, credential management |
| Notifications | Desktop notifications, history, persistence |
| Testing | Unit and integration test patterns for GPUI views |
| Performance | Profiling, render optimization, frame-time debugging |
Learn more from the blog
Section titled “Learn more from the blog”- Hello World GPUI Tutorial if you are new to GPUI concepts
- Scaling a GPUI Prototype to Production for architectural decisions at scale
- Theme System Deep Dive for how the theme engine works internally
- Building a Command Launcher in GPUI for the full Cmd+K implementation walkthrough