Skip to content
STACK IT FAST

Building Web Apps in Rust in 2026: DHH, AI Agents and What Open-Source Rust Actually Uses

Published October 2, 2026 From verified production architectures

13 of 18
Key statistic

open-source Rust apps in the directory that depend on a web framework use Axum (4 use Actix Web, 1 uses Rocket)

At Rails World 2026, the creator of Ruby on Rails said two things that sent developers searching. The first was that hand-written code is no longer the normal way 37signals ships software. The second was that HEY’s backend is being rewritten in Rust, by AI agents. This report covers what was claimed, why Rust and coding agents fit together, where the argument breaks, and what 32 open-source Rust apps in the STACK IT FAST directory actually use when they write Rust.

1. What DHH announced

According to keynote recaps, DHH said 37signals now treats agents as the default producers of implementation code and hand-writing as the exception. HEY is being rebuilt as six native apps with a Rust mail backend. He claimed about 99% less CPU and 95% less memory than the Ruby version, a fleet shrinking from 100+ hosts to about 10 kept for redundancy, and joked that peak traffic might fit on a Raspberry Pi. These numbers come from the keynote; no benchmark has been published.

His summary of the language was the line that travelled: Rust is amazing “if you never, ever have to look at it yourself.” The interesting part is not that Rust is fast; that was never in doubt. It is the claim that the cost of Rust, the part that falls on humans, disappears when an agent writes it.

2. Why Rust and coding agents fit

An agent writes plausible code quickly and then needs something to tell it what is wrong. In dynamic languages that signal arrives at runtime, if a test happens to cover the path. In Rust most of it arrives from the compiler:

  • Types as specification. Result, Option and newtypes make missing cases a compile error, and match must be exhaustive.
  • The borrow checker. Data races and use-after-free become error messages with a line number and a suggested fix, which is exactly the input an agent loop needs.
  • Compile-time SQL. sqlx::query! checks queries against the real schema during cargo build, so a renamed column fails the build instead of a request.
  • Clippy. cargo clippy -- -D warnings flags unused Results, needless clones and suspicious logic.

That turns the agent workflow into a loop: edit, cargo check, read the error, fix, repeat, then cargo clippy and cargo test. Every Rust rule on STACK IT FAST now ships that loop in its AGENTS.md.

3. The case against Rust for web apps

The counter-arguments are real, and they are the reason “nobody builds web apps in Rust” keeps coming up (Hacker News, “Farewell, Rust for web”):

  • No Rails. There is no framework with Rails’ depth of conventions, gems and answered questions. You assemble Axum, an ORM or query layer, sessions, auth and templating yourself.
  • Compile times. Agents feel this too: every loop iteration waits on the compiler. Workspaces, cargo check instead of full builds and a fast linker help.
  • Dependency trees. A typical web service pulls in hundreds of crates.
  • Most CRUD apps are not CPU-bound. If your bottleneck is the database, Rust’s speed buys you lower hosting bills, not faster pages.

A rewrite also carries the usual risk: as Bit Zesty points out, 37signals knows its own system completely and can keep the old one running. Most teams cannot.

4. What 32 open-source Rust apps actually use

We took every directory project whose GitHub language breakdown includes Rust, leaving out the five web frameworks themselves (Axum, Actix Web, Leptos, Loco, Dioxus). That gives 32 repos, 15 of them Rust-first. We parsed every Cargo.toml on their default branches, 822 manifests, for the crates they depend on. Development-only dependencies were excluded.

CrateReposWhat it does
serde29Serialization
tracing27Structured logs and spans
reqwest27HTTP client
tokio26Async runtime
thiserror23Typed errors
anyhow21Application errors
hyper15HTTP primitives
rustls15TLS without OpenSSL
axum13Web framework
tower13Middleware
jsonwebtoken12JWT auth
opentelemetry12Traces and metrics
tonic10gRPC

Axum won the web framework question. Of the 18 repos that depend on a Rust web framework, 13 use Axum: OpenObserve, SurrealDB, RustFS, Vector, SeaweedFS, authentik, Hoppscotch, Langfuse, Magnitude, vLLM, crates.io, Atuin and Kanidm. Four use Actix Web (Meilisearch, Qdrant, Lemmy, Hyperswitch), and Vaultwarden uses Rocket. The two frameworks are compared in Axum vs Actix Web.

The database layer is still open. sqlx appears in 6 repos (including Atuin, OpenObserve and authentik) and Diesel in 5 (crates.io, Lemmy, Hyperswitch, Vaultwarden, AppFlowy). rusqlite appears in 4 and SeaORM in 1. Many Rust-first projects are themselves databases or storage engines and bring their own storage (RocksDB, LMDB through heed).

Server-side HTML is rare, but it exists. Kanidm renders its whole self-service UI with Axum, Askama and htmx (axum-htmx, askama_web), and authentik’s Rust server also uses Askama. Elsewhere, MiniJinja appears in 3 repos, Tera in 2, and Handlebars and Maud in 1 each. Nobody in the sample ships a Leptos or Dioxus UI yet. Rust in open source is overwhelmingly the backend behind a TypeScript or native frontend, or a Tauri shell (Hoppscotch).

And little of it is agent-written yet. Before this report added ten new Rust projects, the directory had 31 approved projects with Rust in their stack: 22 classic (hand-written), 7 hybrid and 2 agent-heavy. All 10 of its Rust-first repos were classic. A few newer repos are clearly preparing for agents: Loco grades agents on framework tasks in CI, and Atuin, crates.io, Dioxus and Kanidm ship an AGENTS.md. If DHH is right, the classic share is the number that moves.

5. Four ways to build a web app in Rust

Each stack below has a free AGENTS.md, CLAUDE.md, Cursor rule and Agent Skill (SKILL.md) you can drop into a repo.

You wantStackRule
Server-rendered pages, minimal JavaScript, the closest thing to Rails + HotwireAxum + Askama + htmx + sqlxRust + Axum + htmx + Askama
One language end to end, reactive UI, server functionsLeptos (SSR + hydration) on AxumLeptos full-stack
Conventions, generators, workers and mailers out of the boxLoco + SeaORMLoco SaaS
A desktop app with a web UI and a Rust coreTauri 2 + ReactTauri + React desktop
A JSON API or backend serviceAxum + sqlx + PostgreSQLRust + Axum + PostgreSQL

If you are unsure, start with Axum + htmx: it has the fewest moving parts and compiles fastest, and Kanidm runs its production UI on exactly that stack. Compare the full-stack options in Leptos vs Dioxus and the conventions question in Loco vs Axum. Move to Leptos when the UI needs real client-side state.

6. Takeaways

  1. Rust’s tax was always paid by humans. Agents change who pays it, which is why the language suddenly looks attractive for ordinary web apps.
  2. The default stack is settled: Tokio, Axum, Tower, serde, tracing, thiserror. Pick a data layer (sqlx for SQL-first, SeaORM or Diesel for an ORM) and a rendering model.
  3. Give the agent the loop, not just the language. cargo check, cargo clippy -- -D warnings and cargo test after every change, no unwrap() in handlers, compile-time SQL.
  4. Do not rewrite because of a keynote. The HEY numbers are claims from a team that owns its system end to end. New services and hot paths are a safer place to start.

Methodology. Repos are the 32 directory projects whose GitHub language breakdown includes Rust, excluding the Axum, Actix Web, Leptos, Loco and Dioxus framework repositories. Crate usage comes from every Cargo.toml on each repo’s default branch on 2 October 2026 (vendored, test, bench, fuzz and example manifests excluded; [dependencies], [build-dependencies] and [workspace.dependencies] counted). Delivery modes (classic, hybrid, agent) are the directory’s own classification. Browse all Rust projects on the Rust stack page.

Based on 32 verified production architectures in the directory. Explore the directory

One email a month: new deep dives and stack trends

New source-audited architectures, head-to-head comparisons and the monthly stack report. No spam, unsubscribe anytime.

Methodology and questions

Is Rust good for web development in 2026?

For the server side, yes: Axum on Tokio is the de facto standard and 13 of the 18 directory apps that depend on a Rust web framework use it. What Rust still lacks is a Rails-sized ecosystem, so most teams pair a Rust backend with server-rendered templates (Askama + htmx), a Rust UI framework (Leptos) or a conventions-first framework (Loco).

Why is DHH rewriting HEY in Rust?

At Rails World 2026 DHH said 37signals now treats AI agents as the default producers of code, and that HEY is being rebuilt as native apps with a Rust backend. He claimed roughly 99% less CPU and 95% less memory than the Ruby version, and called Rust amazing as long as humans never have to read it.

Should I use Axum or Actix-web?

Pick Axum by default. It is built on Tokio, Hyper and Tower, has the larger ecosystem and is what 13 of the 18 audited apps with a Rust web framework use, including OpenObserve, SurrealDB, crates.io and Kanidm. Actix Web is still a solid, fast choice and powers Meilisearch, Qdrant, Lemmy and Hyperswitch in the directory.

Can AI coding agents write Rust well?

Yes, and the compiler is the reason: types, exhaustive matches and the borrow checker turn most agent mistakes into compile errors that the agent can read and fix before anything runs. The practical rule is a tight loop of cargo check, cargo clippy -- -D warnings and cargo test after every change.

Is there a Rails for Rust?

Loco is the closest: it is inspired by Rails and ships generators, SeaORM models and migrations, controllers, mailers, background workers and an htmx scaffold on top of Axum. It is younger and much smaller than Rails, so expect to read framework source more often.

Do open-source Rust projects use AI coding agents?

Mostly not yet. Before October 2026, the directory had 31 approved projects with Rust in their stack: 22 classic (hand-written), 7 hybrid and 2 agent-heavy, with all 10 Rust-first repos classic. Some newer repos are preparing: Loco runs agent evals in CI, and Atuin, crates.io, Dioxus and Kanidm ship an AGENTS.md.

More benchmarks and trend reports

insights/jev-system-one-model-developers-2026.mdJev for Developers: What 648 Open-Source Repos Built in Two Weeks (2026)Jev, TypeSafe's System One model, returns typed decisions instead of text. What 648 open-source Jev repos use, where it fails, and three app architectures. 648 stacks insights/2026-09-stack-trends.mdSeptember 2026 Production Stack Trends: TypeScript Runs 76% of 115 Open-Source ArchitecturesSeptember 2026 stack trends from 115 verified open-source architectures: TypeScript in 76%, PostgreSQL in 57%, Rust in 26%, and 46% AI-assisted delivery. 115 stacks insights/agents-md-vs-claude-md-vs-cursorrules.mdAGENTS.md vs CLAUDE.md vs .cursorrules: Which File Each AI Coding Tool Reads (2026)Which instruction file do Cursor, Claude Code, Codex and Copilot read? Plus what 113 audited open-source repos actually ship: AGENTS.md, CLAUDE.md, .cursor/rules. 113 stacks insights/vibe-coding-statistics-2026.mdVibe Coding Statistics 2026: AI Coding Agent Adoption Across 105 Production Open-Source StacksVibe coding statistics 2026: 43.8% of 105 production open-source stacks use AI-assisted or agent-heavy delivery. Data by language, team size, category. 105 stacks insights/top-10-production-tech-stacks.mdTop 10 Production Tech Stacks in 2026: Architecture Breakdown of 105 Open-Source LeadersTop 10 production tech stacks in 2026: In-depth architecture breakdown across 105 verified open-source leaders like Next.js, Supabase, FastAPI, and MinIO. 105 stacks insights/2026-08-stack-trends.mdAugust 2026 Production Stack Trends: PostgreSQL Powers 71% of Open-Source ArchitecturesAugust 2026 stack trends: PostgreSQL powers 71% of open-source architectures. Real data on databases, frameworks, and AI-agent development modes. 48 stacks insights/most-popular-open-source-tech-stacks.mdMost Popular Tech Stacks in Modern Open-Source Software (2026 Breakdown)Most popular tech stacks powering iconic open-source projects like Cal.com, Supabase, Dub, Sentry, and PostHog. Verified 2026 architecture benchmarks. 48 stacks