Announcing Topcoat: a framework for building full-stack reactive web apps with Rust
July 22, 2026
Topcoat is a modular, batteries-included Rust framework for building full-stack, reactive web apps. It prioritizes simplicity and productivity. Topcoat is entirely server-rendered. Reactivity is added by rendering HTML snippets in the server and adding “reactive instructions” as metadata (similar in idea to HTMX).
Motivation
Carl Lerche argues AI has reshaped the calculus for using Rust for web apps: coding AI tools erase learning barriers and productivity gaps, so organizations already on Rust for performance/reliability have reason to stay in-language for higher-level apps. Topcoat follows Toasty (Rust ORM, ready since April 2026) as the next step in a productivity-focused Rust web stack. Julien Scholz built the framework with Lerche.
Reactivity without WebAssembly
Unlike Leptos/Dioxus (WASM in-browser), Topcoat renders all markup on the server so components can be async, access the database, or verify permissions safely. A subset of type-checked Rust expressions is cross-compiled to JavaScript via macros for client-side signals without WASM. Topcoat can also re-render UI shards on the server when client state changes (e.g., search-as-you-type). Early reactivity system has limitations; HTMX and Alpine.js integrations are available.
Toolset
- Asset pipeline via
asset!macro with content hashes - Fontsource fonts and Iconify icons
- Tailwind-based shadcn/ui-inspired component library copied into source
- Request-level memoization (
#[memoize]) - Locality of behavior: components fetch their own data; auth can live next to protected components
- Axum remains recommended for lower-level HTTP APIs; Topcoat is higher-level fullstack
Status
First release; roadmap includes tighter Toasty integration, validations, email, and more. Available now; discussion on Tokio Discord #topcoat. GitHub: https://github.com/tokio-rs/topcoat