About this project

Topcoat is a modular, batteries-included Rust framework for building full-stack web applications. It prioritizes simplicity and productivity, offering a unique approach that combines server-side rendering with client-side reactivity without the need for a separate API layer or client build step. Key features include: - **Server-side rendering with async components**: Components can be async and query the database directly, eliminating traditional API boilerplate. - **Client reactivity without boilerplate**: The `$(...)` expression is type-checked Rust that runs on the server for initial render and translates to JavaScript for instant browser re-execution, with no wasm bundle or client build step. - **Powerful HTML templates**: The `view!` macro supports familiar Rust control flow, conditional attributes, and a CLI formatter (`topcoat fmt`). - **Module-based routing**: Optionally infer the route tree from the app's module structure without a build step. - **Premade components**: Topcoat UI is a component library based on Tailwind, inspired by shadcn/ui, with components copied into the project for easy customization. - **Asset bundling**: The bundler scans the binary for `asset!` calls, copies or downloads files, and serves them with aggressive caching. Includes utilities for web fonts and icons. - **Built-in Tailwind support**: Optional feature to integrate Tailwind CSS without Node. - **Third-party integrations**: htmx, Alpine AJAX, Datastar, and more. Topcoat is early-stage and experimental, with breaking changes expected. The roadmap includes features like static export, client-side navigation, authentication, and more. For more information, see the [Getting started guide](https://github.com/tokio-rs/topcoat/blob/main/crates/topcoat/docs/getting_started.md) and the [documentation](https://docs.rs/topcoat/latest/topcoat).