<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>gpui-starter Blog</title><description>A production-ready Rust boilerplate for GPUI desktop apps. Build notes, tutorials, and deep dives.</description><link>https://gpui-starter.hmziq.xyz/</link><language>en-us</language><item><title>Building a desktop chat application with Rust and GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-chat-app-rust-desktop/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-chat-app-rust-desktop/</guid><description>Architecture for a desktop chat app in Rust: WebSocket connections, message persistence with SQLite, and real-time UI updates using GPUI entities and context.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>chat</category><category>desktop</category></item><item><title>Building creative applications with Rust and GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-creative-app-rust/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-creative-app-rust/</guid><description>Using Rust and GPUI for creative desktop applications: design tools, image editors, and music production software.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>creative</category><category>GPUI</category></item><item><title>Building data analysis tools with Rust and GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-data-analysis-tool-rust/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-data-analysis-tool-rust/</guid><description>How to build performant data analysis desktop tools with Rust: large datasets, real-time visualization, and GPU rendering.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>data-analysis</category><category>GPUI</category></item><item><title>Building developer tools with Rust and GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-developer-tools-rust-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-developer-tools-rust-gpui/</guid><description>How to build developer tools like debuggers, profilers, and dashboards as desktop apps using Rust and GPUI.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>developer-tools</category><category>GPUI</category></item><item><title>Building a file manager in Rust with GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-file-manager-rust-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-file-manager-rust-gpui/</guid><description>Architecture for a file manager built with Rust and GPUI: async file operations, tree views, and drag-and-drop.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>file-manager</category><category>GPUI</category></item><item><title>Building internal tools as Rust desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/building-internal-tools-rust-desktop/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-internal-tools-rust-desktop/</guid><description>Why Rust desktop apps are a good fit for internal company tools: performance, security, single-binary distribution, and lower long-term maintenance costs.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>internal-tools</category><category>desktop</category></item><item><title>Building a note-taking app in Rust with GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-note-taking-app-rust/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-note-taking-app-rust/</guid><description>How to build a fast offline-first note-taking app with Rust and GPUI. SQLite storage, markdown rendering, and full-text search.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>notes</category><category>desktop</category></item><item><title>Building a text editor in Rust with GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-text-editor-rust-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-text-editor-rust-gpui/</guid><description>Architecture and implementation patterns for building a text editor in Rust using GPUI: rope-based buffers, GPU rendering, syntax highlighting, and performance.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>text-editor</category><category>GPUI</category></item><item><title>Building a command palette in Rust with GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/command-palette-rust-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/command-palette-rust-tutorial/</guid><description>Step-by-step tutorial to build a VS Code-style command palette (Cmd+K) with fuzzy search in a Rust desktop app.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>launcher</category><category>tutorial</category></item><item><title>Electron alternatives in 2026: lighter ways to build desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/electron-alternatives-2026/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/electron-alternatives-2026/</guid><description>A practical survey of Electron alternatives in 2026 including Tauri, GPUI, Flutter, Wails, and others. Real performance numbers and honest tradeoffs.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Electron</category><category>alternatives</category><category>comparison</category></item><item><title>Electron vs Tauri vs GPUI: which to pick for your desktop app</title><link>https://gpui-starter.hmziq.xyz/blog/electron-vs-tauri-vs-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/electron-vs-tauri-vs-gpui/</guid><description>Electron, Tauri, and GPUI compared head to head for desktop app development. Architecture, performance, resource usage, and when to pick each one.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Electron</category><category>Tauri</category><category>GPUI</category></item><item><title>Form validation in Rust desktop apps: a practical tutorial</title><link>https://gpui-starter.hmziq.xyz/blog/form-validation-rust-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/form-validation-rust-tutorial/</guid><description>How to add form validation to a Rust GUI app using gpui-form and koruma. Email, phone, URL validators with localized errors.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>forms</category><category>tutorial</category></item><item><title>Getting started with Rust desktop development in 2026</title><link>https://gpui-starter.hmziq.xyz/blog/getting-started-rust-desktop-2026/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/getting-started-rust-desktop-2026/</guid><description>A beginner guide to building desktop applications with Rust in 2026: tooling, frameworks, and building your first app.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>desktop</category><category>beginner</category></item><item><title>The GPUI entity system explained: state and reactivity</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-entity-system-explained/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-entity-system-explained/</guid><description>How GPUIs entity system works: Model, View, Entity, Context. State management, observers, and thread safety explained with real Rust code.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>entities</category><category>deep-dive</category></item><item><title>How GPUI renders: inside the GPU-accelerated pipeline</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-rendering-pipeline-deep-dive/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-rendering-pipeline-deep-dive/</guid><description>A technical deep dive into GPUI&apos;s rendering pipeline: Metal shaders, primitive batching, texture atlas, subpixel text, and GPU optimization techniques.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>rendering</category><category>deep-dive</category></item><item><title>GPUI vs egui: retained vs immediate mode GUI in Rust</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-vs-egui-rust-gui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-vs-egui-rust-gui/</guid><description>A technical comparison of GPUI (retained mode) and egui (immediate mode) for building Rust desktop applications, with code examples and real tradeoffs.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>egui</category><category>comparison</category></item><item><title>GPUI vs Electron: Rust vs JavaScript for desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-vs-electron-rust-desktop/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-vs-electron-rust-desktop/</guid><description>An honest comparison of GPUI and Electron for desktop app development: binary size, memory, startup time, and rendering performance.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Electron</category><category>comparison</category></item><item><title>GPUI vs Flutter for Desktop: Rust vs Dart Compared</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-vs-flutter-desktop/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-vs-flutter-desktop/</guid><description>Comparing GPUI and Flutter for desktop app development: language ergonomics, rendering performance, and ecosystem maturity in 2026.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Flutter</category><category>comparison</category></item><item><title>GPUI vs iced: reactive vs Elm architecture in Rust GUI</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-vs-iced-elm-architecture/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-vs-iced-elm-architecture/</guid><description>Comparing GPUIs reactive entity model with iceds Elm architecture for building Rust desktop GUIs, with code examples and tradeoffs.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>iced</category><category>comparison</category></item><item><title>GPUI vs Slint: two approaches to Rust GUI development</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-vs-slint-rust-gui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-vs-slint-rust-gui/</guid><description>A practical comparison of GPUI and Slint for building Rust desktop apps: design philosophy, rendering architecture, and when each framework makes sense.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Slint</category><category>comparison</category></item><item><title>GPUI vs Tauri: which Rust framework for your desktop app?</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-vs-tauri-framework/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-vs-tauri-framework/</guid><description>Comparing GPUI and Tauri for Rust desktop development: architecture, performance, ecosystem, and when to pick each framework.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Tauri</category><category>comparison</category></item><item><title>Hello World in GPUI: your first Rust desktop app</title><link>https://gpui-starter.hmziq.xyz/blog/hello-world-gpui-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/hello-world-gpui-tutorial/</guid><description>A step-by-step tutorial to build a Hello World desktop app with GPUI. From cargo init to a working window with interactive UI.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>tutorial</category><category>beginner</category></item><item><title>Adding internationalization to a Rust desktop app with Fluent</title><link>https://gpui-starter.hmziq.xyz/blog/i18n-rust-desktop-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/i18n-rust-desktop-tutorial/</guid><description>Tutorial on adding multi-language support to a Rust desktop app using Mozilla Fluent message format. Covers .ftl files, plural selectors, and runtime switching with English and Chinese examples.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>i18n</category><category>tutorial</category></item><item><title>Making Rust desktop apps accessible with AccessKit</title><link>https://gpui-starter.hmziq.xyz/blog/integrating-accesskit-rust-accessibility/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/integrating-accesskit-rust-accessibility/</guid><description>Integrating AccessKit for accessibility in Rust GUI apps: screen readers, keyboard navigation, and ARIA roles.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>accessibility</category><category>AccessKit</category></item><item><title>Fluent i18n in Rust: internationalization for desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/integrating-fluent-rust-i18n/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/integrating-fluent-rust-i18n/</guid><description>Using Mozilla Fluent for internationalization in Rust desktop apps: message format, plural rules, and locale handling with the es-fluent crate.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>i18n</category><category>Fluent</category></item><item><title>Cross-platform credential storage in Rust with keyring</title><link>https://gpui-starter.hmziq.xyz/blog/integrating-keyring-rust-credentials/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/integrating-keyring-rust-credentials/</guid><description>Learn how to use the Rust keyring crate for secure, cross-platform credential storage in macOS Keychain, Windows Credential Manager, and Linux Secret Service.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>keyring</category><category>security</category></item><item><title>File watching in Rust desktop apps with notify</title><link>https://gpui-starter.hmziq.xyz/blog/integrating-notify-rust-file-watching/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/integrating-notify-rust-file-watching/</guid><description>How to watch files for changes in Rust desktop apps using the notify crate: hot-reload, live configuration updates, and cross-platform event handling.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>file-watching</category><category>notify</category></item><item><title>HTTP requests in Rust desktop apps with reqwest</title><link>https://gpui-starter.hmziq.xyz/blog/integrating-reqwest-rust-http/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/integrating-reqwest-rust-http/</guid><description>How to use reqwest for HTTP requests in Rust desktop applications: async patterns, error handling, and response parsing with real code examples.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>HTTP</category><category>reqwest</category></item><item><title>Data serialization in Rust desktop apps with serde</title><link>https://gpui-starter.hmziq.xyz/blog/integrating-serde-rust-serialization/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/integrating-serde-rust-serialization/</guid><description>Using serde for data serialization in Rust desktop applications: JSON, TOML, and custom serialization patterns for config, persistence, and IPC.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>serde</category><category>serialization</category></item><item><title>Structured logging in Rust desktop apps with tracing</title><link>https://gpui-starter.hmziq.xyz/blog/integrating-tracing-rust-logging/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/integrating-tracing-rust-logging/</guid><description>Setting up structured logging in Rust desktop apps with the tracing crate: file output, filtering, and async-aware logging.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>logging</category><category>tracing</category></item><item><title>Migrating from Electron to Rust: lessons learned</title><link>https://gpui-starter.hmziq.xyz/blog/migrating-electron-to-rust/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/migrating-electron-to-rust/</guid><description>Practical lessons from migrating a desktop application from Electron and JavaScript to Rust with GPUI. What breaks, what improves, and what surprises you.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Electron</category><category>Rust</category><category>migration</category></item><item><title>Desktop notifications in Rust: native backends and toast fallbacks</title><link>https://gpui-starter.hmziq.xyz/blog/notifications-rust-desktop-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/notifications-rust-desktop-tutorial/</guid><description>How to implement notifications in a Rust desktop app using native OS backends on macOS with in-app toast fallback when permissions are denied.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>notifications</category><category>tutorial</category></item><item><title>Building accessible Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-accessibility-guide/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-accessibility-guide/</guid><description>A practical guide to accessibility in Rust desktop apps: keyboard navigation, screen reader support, color contrast, and ARIA roles with AccessKit.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>accessibility</category><category>guide</category></item><item><title>Distributing Rust desktop applications: codesigning and packaging</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-app-distribution/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-app-distribution/</guid><description>How to package and distribute Rust desktop apps: codesigning, notarization, DMG creation, and auto-updates.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>distribution</category><category>guide</category></item><item><title>Async patterns for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-async-patterns/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-async-patterns/</guid><description>Handling async operations in Rust GUI apps: spawning tasks, updating state, backpressure, and cancellation.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>async</category><category>patterns</category></item><item><title>CI/CD for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-ci-cd-guide/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-ci-cd-guide/</guid><description>Setting up continuous integration and deployment for Rust desktop apps: GitHub Actions, testing, and release automation.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>CI/CD</category><category>guide</category></item><item><title>Configuration patterns for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-configuration-patterns/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-configuration-patterns/</guid><description>How to handle configuration in Rust desktop apps: file formats, defaults, migrations, and user preferences with serde, TOML, and layered config.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>configuration</category><category>patterns</category></item><item><title>Crash reporting for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-crash-reporting/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-crash-reporting/</guid><description>Setting up crash report generation in Rust desktop apps: panic hooks, minidumps, error reporting, and diagnostics for post-mortem debugging.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>crash</category><category>debugging</category></item><item><title>Debugging techniques for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-debugging-techniques/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-debugging-techniques/</guid><description>Practical debugging strategies for Rust desktop apps: logging with tracing, panic hooks, remote diagnostics, frame-time profiling, and the tools that actually help.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>debugging</category><category>techniques</category></item><item><title>Error handling and boundaries in Rust GUI apps</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-error-boundaries/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-error-boundaries/</guid><description>Designing error boundaries for Rust GUI applications: crash recovery, user-facing messages, and graceful degradation patterns that keep your app alive.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>errors</category><category>patterns</category></item><item><title>App lifecycle management in Rust: startup to shutdown</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-lifecycle-management/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-lifecycle-management/</guid><description>Managing the lifecycle of a Rust desktop application: startup sequences, state machines, shutdown handling, and crash recovery.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>lifecycle</category><category>architecture</category></item><item><title>Memory management patterns for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-memory-management/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-memory-management/</guid><description>Memory management strategies for Rust desktop apps: entity lifetimes, buffer pools, memory budgets, and leak prevention with real Rust code examples.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>memory</category><category>deep-dive</category></item><item><title>Performance optimization for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-performance-guide/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-performance-guide/</guid><description>Optimizing performance in Rust desktop apps: render batching, lazy loading, memory budgets, and profiling techniques.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>performance</category><category>guide</category></item><item><title>Performance profiling for Rust desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-performance-profiling/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-performance-profiling/</guid><description>How to profile Rust desktop applications with frame time analysis, memory tracking, and bottleneck identification in GPUI and native GUI frameworks.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>performance</category><category>profiling</category></item><item><title>Structuring a Rust desktop application project</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-project-structure/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-project-structure/</guid><description>How to organize a Rust desktop app project: modules, crates, file layout, and separation of concerns for maintainable long-term codebases.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>architecture</category><category>guide</category></item><item><title>Security best practices for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-security-guide/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-security-guide/</guid><description>Securing Rust desktop apps: credential storage, update signing, input validation, and dependency auditing.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>security</category><category>guide</category></item><item><title>State management patterns for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-state-management/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-state-management/</guid><description>How to manage state in Rust desktop apps: entity pattern, global state, context system, and reactive updates with GPUI.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>state</category><category>patterns</category></item><item><title>Privacy-first telemetry for Rust desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-telemetry-privacy/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-telemetry-privacy/</guid><description>Build telemetry into Rust desktop apps with user consent gates, local-only mode, and privacy-first defaults. Real code from a production GPUI application.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>telemetry</category><category>privacy</category></item><item><title>Testing strategies for Rust desktop applications</title><link>https://gpui-starter.hmziq.xyz/blog/rust-desktop-testing-strategies/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-desktop-testing-strategies/</guid><description>How to test Rust desktop apps: unit tests, integration tests, UI tests, and snapshot testing strategies that work.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>testing</category><category>strategies</category></item><item><title>Rust GUI development best practices in 2026</title><link>https://gpui-starter.hmziq.xyz/blog/rust-gui-best-practices-2026/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-gui-best-practices-2026/</guid><description>Best practices for building GUI applications in Rust: architecture, state management, testing, and performance optimization for production desktop apps.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>GUI</category><category>best-practices</category></item><item><title>Rust GUI frameworks in 2026: the complete comparison guide</title><link>https://gpui-starter.hmziq.xyz/blog/rust-gui-frameworks-comparison-2026/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-gui-frameworks-comparison-2026/</guid><description>Every Rust GUI framework compared: GPUI, Tauri, egui, iced, Slint, Dioxus, Xilem, Vizia. Features, maturity, and best use cases.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>GUI</category><category>comparison</category></item><item><title>Rust vs C++ for GUI development: safety meets performance</title><link>https://gpui-starter.hmziq.xyz/blog/rust-vs-cpp-gui-development/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-vs-cpp-gui-development/</guid><description>Choosing between Rust and C++ for desktop GUI development: memory safety tradeoffs, Qt vs GPUI, ecosystem maturity, and real-world performance comparisons.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>C++</category><category>GUI</category></item><item><title>Rust vs Swift for desktop development: a practical comparison</title><link>https://gpui-starter.hmziq.xyz/blog/rust-vs-swift-desktop-development/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/rust-vs-swift-desktop-development/</guid><description>Practical comparison of Rust and Swift for desktop app development: performance, memory safety, UI frameworks, cross-platform support, and when each wins.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>Swift</category><category>comparison</category></item><item><title>Secure credential storage in Rust with OS keyring</title><link>https://gpui-starter.hmziq.xyz/blog/secure-storage-rust-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/secure-storage-rust-tutorial/</guid><description>Store secrets securely in a Rust desktop app using macOS Keychain, Windows Credential Manager, and Linux Secret Service with the keyring crate.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>security</category><category>tutorial</category></item><item><title>Building sidebar navigation in GPUI: a complete tutorial</title><link>https://gpui-starter.hmziq.xyz/blog/sidebar-navigation-gpui-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/sidebar-navigation-gpui-tutorial/</guid><description>How to implement a resizable sidebar with page routing in a GPUI desktop app. Covers Page enums, resizable panels, deep links, and keyboard shortcuts.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>navigation</category><category>tutorial</category></item><item><title>Using SQLite in a Rust desktop app: a practical guide</title><link>https://gpui-starter.hmziq.xyz/blog/sqlite-rust-desktop-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/sqlite-rust-desktop-tutorial/</guid><description>How to integrate SQLite into a Rust desktop app with rusqlite. Schema design, WAL mode, migrations, and query patterns for local-first apps.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>SQLite</category><category>tutorial</category></item><item><title>Adding a macOS system tray icon to your Rust app</title><link>https://gpui-starter.hmziq.xyz/blog/system-tray-rust-macos-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/system-tray-rust-macos-tutorial/</guid><description>Step-by-step guide to adding a system tray icon and menu to a Rust desktop application on macOS, using the tray-icon crate.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Rust</category><category>macOS</category><category>tutorial</category></item><item><title>Tauri vs Electron: performance and developer experience compared</title><link>https://gpui-starter.hmziq.xyz/blog/tauri-vs-electron-performance/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/tauri-vs-electron-performance/</guid><description>A detailed performance comparison of Tauri and Electron covering binary size, memory usage, startup time, and CPU efficiency with real benchmarks.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Tauri</category><category>Electron</category><category>performance</category></item><item><title>Creating a theme system in GPUI with hot-reload</title><link>https://gpui-starter.hmziq.xyz/blog/theme-system-gpui-tutorial/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/theme-system-gpui-tutorial/</guid><description>Tutorial: build a theme system for GPUI that reloads from JSON files at runtime without restarting the application.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>themes</category><category>tutorial</category></item><item><title>From prototype to production: scaling a GPUI app</title><link>https://gpui-starter.hmziq.xyz/blog/scaling-gpui-prototype-to-production/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/scaling-gpui-prototype-to-production/</guid><description>The architectural decisions that turn a working GPUI prototype into a production desktop app: state tiers, memory budgets, cancellation, and persistence.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Rust</category><category>architecture</category></item><item><title>GPUI vs egui vs iced: Rust GUI frameworks compared</title><link>https://gpui-starter.hmziq.xyz/blog/gpui-vs-egui-vs-iced/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/gpui-vs-egui-vs-iced/</guid><description>A practical comparison of egui, iced, and GPUI for Rust desktop apps. Covers rendering, performance, learning curve, and when each framework is the right pick.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>GPUI</category><category>comparison</category></item><item><title>Building a command launcher (Cmd+K) in GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/building-command-launcher-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-command-launcher-gpui/</guid><description>Walk through how gpui-starter implements a VS Code-style command palette as a floating popup in GPUI with search filtering and cross-window events.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Rust</category><category>desktop</category></item><item><title>Desktop notifications in Rust: a fallback strategy</title><link>https://gpui-starter.hmziq.xyz/blog/desktop-notifications-rust/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/desktop-notifications-rust/</guid><description>How gpui-starter handles desktop notifications in Rust with automatic backend selection and graceful fallback when OS notifications fail.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>desktop</category><category>notifications</category></item><item><title>Single-instance apps in Rust: preventing duplicate windows</title><link>https://gpui-starter.hmziq.xyz/blog/single-instance-rust-app/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/single-instance-rust-app/</guid><description>Prevent duplicate Rust desktop app instances with file locks and IPC forwarding. Covers cross-platform deep link handling and queue file fallbacks.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>desktop</category><category>architecture</category></item><item><title>Form validation in Rust with koruma and gpui-form</title><link>https://gpui-starter.hmziq.xyz/blog/form-validation-koruma-rust/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/form-validation-koruma-rust/</guid><description>Learn how to build validated forms in GPUI apps using koruma derive macros and composable rules. Covers localised errors, the touched pattern, and custom validators.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>GPUI</category><category>forms</category></item><item><title>Storing secrets in desktop apps: the keyring approach</title><link>https://gpui-starter.hmziq.xyz/blog/secure-credential-storage/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/secure-credential-storage/</guid><description>Why storing API keys in config files is a security hole, and how to use the OS keyring from Rust to keep credentials encrypted at rest.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>security</category><category>desktop</category></item><item><title>State management in GPUI: entities, globals, and context</title><link>https://gpui-starter.hmziq.xyz/blog/state-management-gpui-entities/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/state-management-gpui-entities/</guid><description>GPUI has three state primitives: Entity for window-scoped state, Global for app-wide singletons, and Context for side effects. How to use each one and when.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Rust</category><category>architecture</category></item><item><title>Undo and redo in Rust desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/undo-redo-rust-desktop-apps/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/undo-redo-rust-desktop-apps/</guid><description>Build an undo/redo stack for GPUI apps using the command pattern, type-safe state snapshots, and bounded history. Includes working Rust code.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>GPUI</category><category>desktop</category></item><item><title>Building a custom title bar in GPUI</title><link>https://gpui-starter.hmziq.xyz/blog/custom-titlebar-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/custom-titlebar-gpui/</guid><description>Replace the native macOS, Windows, or Linux title bar with a custom one in GPUI. Covers drag regions, traffic light buttons, and platform quirks.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Rust</category><category>design</category></item><item><title>Testing GPUI applications</title><link>https://gpui-starter.hmziq.xyz/blog/testing-gpui-applications/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/testing-gpui-applications/</guid><description>Practical strategies for testing Rust desktop apps built with GPUI, from plain unit tests and the gpui test harness to hand-written fakes and VisualTestContext.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>GPUI</category><category>testing</category></item><item><title>Getting started with GPUI: a new paradigm for Rust desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/getting-started-with-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/getting-started-with-gpui/</guid><description>Build your first Rust desktop app with GPUI, Zed&apos;s GPU-accelerated UI framework. Covers setup, components, async state, and navigation in one walkthrough.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Rust</category><category>desktop</category></item><item><title>Sidebar navigation in GPUI: routing without a router</title><link>https://gpui-starter.hmziq.xyz/blog/sidebar-navigation-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/sidebar-navigation-gpui/</guid><description>How gpui-starter builds multi-page navigation with Rust enums and pattern matching instead of a web-style router, plus deep link parsing and testing.</description><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>Rust</category><category>desktop</category></item><item><title>Why Rust + GPUI for desktop apps</title><link>https://gpui-starter.hmziq.xyz/blog/building-desktop-apps-rust-gpui/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/building-desktop-apps-rust-gpui/</guid><description>Why Rust and GPUI beat Electron for desktop apps: lower memory, faster rendering, compile-time safety, and no bundled browser. A practical comparison.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><category>Rust</category><category>desktop</category><category>architecture</category></item><item><title>Deep dive: the 21-theme system</title><link>https://gpui-starter.hmziq.xyz/blog/theme-system-deep-dive/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/theme-system-deep-dive/</guid><description>How gpui-starter&apos;s theme system works internally, from 10 semantic color tokens to runtime hot-reloading across 21 built-in themes.</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>themes</category><category>design</category></item><item><title>Internationalization in GPUI apps with es-fluent</title><link>https://gpui-starter.hmziq.xyz/blog/internationalization-gpui-apps/</link><guid isPermaLink="true">https://gpui-starter.hmziq.xyz/blog/internationalization-gpui-apps/</guid><description>Add multi-language support to GPUI desktop apps using Mozillas Fluent system and es-fluent, with compile-time checks, plural rules, and runtime switching.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate><category>GPUI</category><category>i18n</category><category>Rust</category></item></channel></rss>