Topcoat is a batteries-included framework for building full-stack web applications in Rust.
Topcoat addresses the complexity of traditional full-stack development by eliminating the boilerplate of separate API layers and client-server communication. It renders all markup on the server where components can be async and query databases directly. For interactivity, Topcoat uses a `$(...)` expression syntax that is ordinary type-checked Rust evaluated on the server for initial render and automatically translated to JavaScript for instant browser re-execution, requiring no WebAssembly bundle or client build step. When updates require server involvement, marking a component as a `#[shard]` causes Topcoat to re-render it whenever its arguments change and swap the new HTML in place.
Topcoat suits developers building full-stack applications who want to reduce boilerplate and stay within Rust for both server and client logic. The framework includes a component library called Topcoat UI based on Tailwind, with components copied into your project via CLI so you can freely modify them. It offers module-based routing that can infer your route tree from your app's module structure without a build step, built-in Tailwind support via a feature flag, and asset bundling that scans your compiled binary for asset references and serves them with aggressive caching. The `view!` macro for templates stays true to HTML and Rust syntax, allowing familiar control flow within templates, and the `topcoat fmt` CLI command automatically formats macro snippets across your codebase.
The project is in early-stage and experimental with breaking changes expected. Development activity shows consistent engagement with the codebase through regular updates and refinements to core features. The maintainers are actively shaping the framework's direction as evidenced by ongoing work on the roadmap and feature development.