cd /news/ai-tools/i-just-created-the-best-web-fullstac… · home topics ai-tools article
[ARTICLE · art-15829] src=dev.to pub= topic=ai-tools verified=true sentiment=↑ positive

I just created the best web FullStack framework in Rust language: the Rullst! I did with the help of AI, but my tokens are over, can you help me?

A developer has created Rullst, a full-stack web framework for Rust designed to lower the barrier to entry for web programming. The framework integrates an Active Record ORM, compile-time HTML rendering, and AI-powered tooling into a cohesive developer experience. Rullst is currently in active development, with the creator seeking community contributions to continue building out its features.

read6 min publishedMay 27, 2026

I would love to continue this...

Read this in Português (Brasil).

📖

[See all the changes in our Changelog!]

📚[Read the Official Documentation!]

📦[View on Crates.io!][!WARNING]

Pardon our dust! 🚧

Rullst is underconstant development and rapid improvement. As we stabilize the framework and update core dependencies, you might occasionally encounter bugs or breaking changes. We sincerely apologize for any crashes! Please consider becoming acontributorto help us build the best web framework on the internet. 🦀❤️

Rullst (Rust + Fullstack) is an opinionated, developer-first full-stack web framework for Rust, obsessively designed for Emotional Productivity.

It was created to solve the biggest problem in the Rust web ecosystem: the high barrier of entry that turns web programming into a PhD research on compiler design. We believe you should spend your energy building your business, not fighting borrow checkers and manual routing setups.

"Most Rust frameworks treat the web developer like a compiler engineer. Rullst treats the developer like someone who wants to build awesome products at lightning speed."

In the current ecosystem, to write a simple CRUD, you are forced to glue dozens of crates together, manually map nested routing trees, write verbose ORMs requiring multiple structs, and continuously clone variables inside dynamic HTML templates just to satisfy the borrow checker.

Rullst redefines this experience. We offer an integrated, cohesive developer experience that brings the sweetness and iteration speed of Laravel and Next.js together with the Formula 1 performance and military-grade safety of Rust, Axum, and Hyper:

rust-eloquent

), and your HTML rendering.html!

macro processes pure elements on the server (SSR). It generates optimized string-builders directly at compile time. It's blazing fast, safe, and SEO-friendly by default.rust-eloquent

user.save()

..ai-rules

scaffolding, and structured schemas prevent AI agent hallucinations and allow instant compiler self-correction.Rullst ships with 7 completed milestones covering every layer of modern web development:

Category Features
🛠️ CLI & DX
cargo rullst new wizard, make:controller , make:model -m , make:middleware , make:worker , generate:openapi , cargo rullst upgrade (self-healing)
🗄️ Database
Active Record ORM, Migrations (db:migrate , db:rollback , db:status ), Seeders & Factories, HasMany / BelongsTo / BelongsToMany, Eager
🔒 Auth & Security
Argon2 hashing, JWT & Cookie sessions, CSRF protection, Social OAuth (Google, GitHub, Facebook, Twitter via rust-socialite ), cargo rullst auth scaffolding
⚡ Frontend
HTMX first-class support, TailwindCSS auto-integration, partial template rendering, Rullst Live (Phoenix LiveView-inspired server-driven UI), Wasm Islands (#[client_component] )
📦 Production
Queue (SQLite/Redis), Cache (Memory/Redis), Task Scheduler (Cron), Docker multi-stage builds, Rullst Horizon dashboard
🏢 Enterprise
Declarative Validation, Mailer (SMTP/Resend/SendGrid), Storage (Local/S3/R2), WebSockets, Multi-Tenancy, Feature Flags, E2E Testing
🚀 Unfair Advantage
AI Core (rullst::ai — OpenAI/Gemini/Anthropic/Ollama + RAG), Rullst Studio (visual DB GUI), Self-Healing Error Console (AI auto-fix), Hot Re via
dylib

This is a complete, fully operational web server with type-safe routing, compile-time HTML rendering, and automatic XSS escaping. It is exactly 20 lines of code:

use rullst::{html, routes, Server, Router, response::{Html, IntoResponse}};

async fn hello() -> impl IntoResponse {
    Html(html! {
        <main style="display: grid; place-items: center; height: 100vh; background: #090d16; color: #fff; font-family: system-ui;">
            <div style="text-align: center;">
                <h1 style="font-size: 4rem; margin: 0; background: linear-gradient(135deg, #00f2fe, #4facfe); -webkit-background-clip: text; -webkit-text-fill-color: transparent;">
                    "Hello, World!"
                </h1>
                <p style="color: #64748b; font-size: 1.25rem; margin-top: 1rem;">
                    "Written in Rust. Rendered in microseconds. Safe by default."
                </p>
            </div>
        </main>
    })
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    Server::new(routes![get("/" => hello)])
        .run(3000)
        .await?;
    Ok(())
}

Scaffold a fully operational application with our interactive CLI wizard!

cargo rullst new


cd my-app

cargo run

HOT_RELOAD=1 cargo run

When your application grows, Rullst scales with you using Active Record:

use rullst::{html, routes, Server, Router, response::{Html, IntoResponse}};
use rust_eloquent::{Eloquent, EloquentModel, sqlx::{self, FromRow}};

#[derive(Debug, Clone, FromRow, rust_eloquent::Eloquent)]
#[eloquent(table = "users")]
pub struct User {
    pub id: i32,
    pub name: String,
}

async fn home() -> impl IntoResponse {
    // Elegant, type-safe data fetching
    let users = User::all().await.unwrap();

    Html(html! {
        <div style="background: #0f172a; color: #fff; padding: 5rem; text-align: center; font-family: sans-serif;">
            <h1>"Total Active Users: " {users.len()}</h1>
        </div>
    })
}

// 1. Declare the artisan macro here to intercept CLI arguments for migrations
rullst::artisan!();

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 2. The artisan! macro automatically intercepts `db:*` commands and exits early.
    // If it's a normal run, it continues server execution here.

    let router = routes![
        get("/" => home),
    ];

    Server::new(router)
        .run(3000)
        .await?;

    Ok(())
}

Rullst includes an embedded, high-performance migration runner. You don't need external binaries. The framework ships with a CLI tool that parses pure Rust closures to construct your schema safely.

cargo rullst make:migration create_users_table

cargo rullst db:migrate

cargo rullst db:rollback

Under the hood, these commands are intercepted by the rullst::artisan!()

macro, guaranteeing the server never starts when you only want to migrate your database.

Afraid of breaking changes when upgrading the framework? Don't be. Rullst was built with a "Self-Healing Upgrades" philosophy.

When a new version of Rullst introduces API changes, we never break your code immediately. Instead, we use #[deprecated]

warnings. You can update your entire application automatically using our CLI:

cargo rullst upgrade

This command will safely update the Rullst dependency and use Rust's powerful cargo fix

refactoring tools to automatically rewrite your code to match the new API signatures. Stress-free upgrades, forever.

Rullst supports Hot Re via Dynamic Linking — change your routes, handlers, and templates, and see the changes reflected instantly without restarting the server or losing connections:

HOT_RELOAD=1 cargo run

Under the hood, Rullst compiles your routes as a dynamic library (cdylib

), loads it via lib

, and uses a notify

file-watcher to detect changes and trigger background rebuilds. The router is swapped atomically via Arc<RwLock<Router>>

— the HTTP server never restarts and TCP connections are never dropped.

Rullst is structured as a modular monorepo Cargo Workspace to optimize compile times:

rullst

(Core Crate):rullst::ai

), Rullst Live (server-driven UI), Wasm Islands, and Hot Re via dynamic linking.rullst-macros

(Compiler-Engine):cargo-rullst

(CLI Scaffold):For detailed technical conventions, directory structures, and framework APIs, refer to our Official Specification (SST).

Distributed under the MIT License. See LICENSE

for more details.

── more in #ai-tools 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-just-created-the-b…] indexed:0 read:6min 2026-05-27 ·