Installation
rahti-ui is not a crate you depend on. The installer is published on crates.io; the components it fetches are written into your project as source you own, read, and change.
One crates.io install. Cargo turns the binary into a subcommand, so cargo rahti-ui works from any project.
Names, or --all for the whole catalog. Each component arrives with everything it imports: sibling components, helpers, and its icons.
The Rahti build already scans src/components/, so a file that landed a second ago is in scope on the next build.
No Rahti application yet? Scaffold one first — components install into a project, not into an empty directory.
add hands the icon names to cargo-rahti-icons and installs that tool if it has to. The runtime those files call into is added once.
Updating, removing, the theme, and the rest of the commands are on the full installation page.
Live by default
Every page arrives fully rendered from the server. Where you need state, you write plain JavaScript in a <script> next to your markup and PulsePoint wires it up — the counter on the right is exactly that, running on this page right now.
const [demo, setDemo] = pp.state(0);
Pages are Rust functions returning typed HTML. No hydration waterfall, no client bundle to wait for.
PulsePoint mounts reactivity right in your markup — plain JavaScript beside the elements it drives.
The same design tokens as shadcn/ui. Swap a palette in globals.css and every component follows.
Components live in your src/components as readable Rust — typed props, Tailwind classes, no black box.
61 components across 6 categories, each with a live demo page that doubles as its test bench.