Now with Tailwind CSS v4

Build web appswith joy

A simple and delightful Rust web framework. File-based routing, type-safe templates, and islands.

Simplicity

Elegant by design

Write clean, expressive code. Every file in your routes directory becomes a page.

src/routes/index.rs
use rejoice::{Req, Res, html};

pub async fn page(req: Req, res: Res) -> Res {
    res.html(html! {
        h1 { "Hello, world!" }
        p { "Welcome to Rejoice." }
    })
}
src/routes/layout.rs
use rejoice::{Children, Req, Res, html, DOCTYPE};

pub async fn layout(req: Req, res: Res, children: Children) -> Res {
    res.html(html! {
        (DOCTYPE)
        html {
            head { title { "My App" } }
            body { (children) }
        }
    })
}

Features

Everything you need

A complete toolkit for building modern web applications.

File-based Routing

Drop a file in src/routes/ and it becomes a route. Nested layouts and dynamic parameters included.

Type-safe Templates

Compile-time HTML with Maud. Catch errors before runtime, enjoy fearless refactoring.

SolidJS Islands

Add interactivity where you need it. Server-render everything else for blazing speed.

Tailwind CSS v4

Utility-first CSS that scans your Rust and TSX files automatically.

SQLite Ready

Optional database support with connection pooling. Just add a flag.

Live Reload

Instant feedback. Changes to Rust, TSX, or CSS reflect immediately.

Quick Start

Begin in seconds

Three commands to your first app.

# Install the CLI
cargo install rejoice

# Create a new project
rejoice init my-app && cd my-app

# Start developing
rejoice dev

Your app is running at localhost:8080