Syntax - Tasty Web Development Treats
Hosted by Scott Tolinski and Wes Bos
Written by a model from the transcript; not yet reviewed.
This episode explores GPUI, a high-performance, GPU-accelerated UI framework written in Rust and created by the team behind Zed. The host discusses why web-view-based alternatives like Electron and Tauri fall short for desktop applications, particularly due to heavy resource consumption and inconsistent native web views like WKWebView. Through building personal utility apps such as window managers and file automation tools, the host demonstrates how GPUI offers a declarative, React-like development experience using Rust structs, methods, and a component library called GPUI Kit.
The discussion covers the trade-offs of adopting GPUI, including the complete lack of a browser DOM, the requirement to style everything from scratch using chained layout methods resembling Tailwind CSS on steroids, and the current fragmentation around community forks like GPUI-CE. Despite these early-stage limitations and a lack of CSS Grid support, the guest and host explain why building lightweight, fast desktop utilities without a bundled Chromium instance makes GPUI an appealing choice for developers looking to move away from bloated web-tech desktop wrappers.
Wes and Scott introduce the episode, set the stage for discussing GPUI and its relevance to web developers.
Scott demonstrates how GPUI’s component model mirrors React, using inline style methods that resemble Tailwind, and discusses state updates via notify.
The episode concludes with a recap of GPUI’s strengths, its experimental mobile support, and a call for listener feedback.
They review GPUI’s implementation of CSS features, noting strong support for flexbox and gaps, but limited grid and custom styling options.
Scott introduces GPUI Kit, a collection of pre-built components that simplify UI development and reduce boilerplate.
The discussion turns to community forks of GPUI, the GPUIC-E feature set, and the stance of the GPUI Kit maintainers.
Scott showcases several personal projects—Gendo, Battle Mode, File Bro, and a window utility—built using GPUI to illustrate its practical use.
They weigh the benefits of lightweight, fast desktop apps against downsides like lack of native UI elements and limited web/mobile deployment.
Electron vs Native Web Viewsinsight
The host explains why Electron apps can get chunky by shipping an instance of Chromium, while native web views like WKWebView lack sufficient feature richness for desktop applications.
Open Source Tools and Sponsorshipsstory
The host clarifies that they do not accept money to talk about open-source libraries or tools like Meta's StyleX or Zed's GPUI, maintaining editorial integrity.
Tailwind-Like Method Chainingstrategy
GPUI uses declarative styling via chained methods on divs, resembling Tailwind CSS shorthand like text color and flex utilities.
Eliminating the RPC Layerinsight
Because GPUI logic runs directly inside Rust code rather than communicating across an IPC bridge like in Electron, separate RPC layers are unnecessary.
Shrinking App Size dramaticallydata
The guest highlights that native utilities built efficiently can be as small as eight megabytes, contrasting sharply with bloated multi-hundred-megabyte Electron apps.
Non-Native UI Trade-Offsinsight
A major downside of GPUI is that it does not use native UI elements out of the box, requiring developers to implement styling and effects manually across platforms.
Scott and Wes ditch Electron and Tauri for GPUI, the GPU accelerated Rust UI framework from the Zed team. They get into its React-like API, styling that feels a lot like Tailwind, GPUI Kit components, the community fork drama, and the tiny desktop apps Scott has built with it. Show Notes 00:00 Welcome to Syntax! GPUI 01:24 Electron, Tauri, and the Trouble With Web Views 04:05 Enter GPUI: Why We Don’t Take Money to Talk About Tools 05:32 Brought to you by Sentry.io 05:59 What GPUI Is: GPU Accelerated, Cross Platform, Native All the Way Down 06:50 A React Like API in Rust: Divs, Flex, and Chained Methods 09:35 Components, Props, and State in GPUI Scott’s GPUI Demo Gist 11:21 How Much of CSS Does GPUI Actually Reimplement? 12:52 Flexbox Everywhere, But Where Is CSS Grid? 14:17 Where Does Your App Logic Live? No RPC Layer Needed 15:53 Render vs RenderOnce: Stateful and Static Components 16:57 GPUI Kit: The shadcn of GPUI 18:46 GPUI CE: The Community Fork and Ecosystem Tension 21:29 Apps Scott Built With GPUI: Gendo, File Bro, and Mr. Space 22:48 Why Tiny Utility Apps Should Stay Tiny 24:25 File Bro: File Automations a la Hazel 25:27 Mr. Space: Building a macOS Window Manager 27:05 The Downsides: No Native UI Elements and No Browser DOM Scott’s Rust Best Practices Skill 29:56 Testing GPUI Apps With Jev and the Accessibility Tree gpui-agent 30:39 GPUI Mobile: Experimental, But It Works GPUI Kit Mobile Docs gpui-mobile 31:52 Final Verdict: GPUI for Personal Desktop Software Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads
5,953 words · 2 speakers
Speaker names marked are inferred from speaking time and the show’s known hosts — they are not voice-verified.
Page updated · transcript and summary are machine-generated