Tris Oaten's 2026 Rust Development Toolkit
No Boilerplate's Tris Oaten maps his 2026 Rust toolkit—from devenv and nightly Rust to Leptos and SQLx—with smart config defaults for every project.
Written by AI. Dev Kapoor

Photo: AI. Mika Sørensen
There's a particular kind of developer video that isn't really a tutorial. It's closer to a map—someone drawing the territory they've already walked, for people who are about to. Tris Oaten's My 2026 Rust Toolkit on the No Boilerplate channel falls squarely into that category: a brisk, opinionated walkthrough of roughly a dozen tools and crates that Oaten reaches for in every Rust project, bundled with the config defaults that make them actually useful.
It's worth reading as a document not just of what to install, but of how an experienced Rust developer has come to think about their environment.
The Environment Question
Oaten opens with devenv—a tool built on top of Nix that offers per-project environment isolation without the overhead of containers. The pitch is a single config file, checked into your repo, that specifies your Rust version (nightly, in his case), your system packages, your pre-commit hooks, and even auto-run scripts. Your colleagues clone the repo, run devenv, and get an identical environment. No "works on my machine." No Docker daemon eating RAM.
His framing here is candid: "Not everyone is powerful enough to use Nix. I know I wasn't for many years, but there is a gateway drug available in devenv." He's acknowledging that the Nix ecosystem, for all its reproducibility guarantees, has a steepness to it that has deterred a lot of developers who might otherwise benefit. Devenv tries to smooth that onramp.
The interesting tension here is one Oaten identifies himself: devenv isn't Nix. You can do everything devenv does with pure Nix—and then some—but you can't do it as simply. That's not a knock on devenv; it's a legitimate design tradeoff. Whether you want the full Nix surface area or just reproducible dev environments probably depends on how much of your infrastructure is already in that world.
For developers who want none of that complexity, Oaten doesn't linger: the rest of the video is agnostic about whether you're using devenv or just a vanilla rustup install.
Nightly Rust: Still a Conversation
The recommendation to run Rust nightly, not stable, is the call most likely to raise eyebrows in some circles—and Oaten leans into the history of that skepticism. His response is essentially: the nightlies are, in practice, very stable, and the upside is real.
He offers a concrete example: the new trait solver that landed in nightly can make certain crates—he cites Apache DataFusion—compile more than eight times faster. That's not a rounding error. Compile time is one of Rust's most persistent friction points, and improvements to it land in nightly long before they graduate to stable. For projects where the developer controls the toolchain, the calculus may genuinely favor nightly.
That said, the recommendation isn't universal on its face. There are production contexts—embedded systems, safety-critical applications, regulated environments—where "nightly has been stable for me" is not the kind of assurance that passes muster. Oaten's advice is aimed at the developer who can absorb the occasional rollback, not the team shipping firmware for medical devices.
Cargo's Hidden Depth
One section of the video that deserves attention from newer Rust developers is the Cargo segment—not because the commands are obscure, but because many developers don't realize how much is already there before they install anything.
cargo search, cargo add with feature flags, cargo info—these are built-in, and they keep you in the terminal. cargo-seek wraps them in a TUI for people who want that experience, but the underlying capabilities are native. The point Oaten makes, implicitly, is that the Rust ecosystem invested heavily in tooling ergonomics from the start, and most of it lives in Cargo.
Clippy is the starkest example. Out of the box it's a linter. With the pedantic and nursery lint groups enabled, it becomes something closer to a code reviewer that never gets tired and never takes a long lunch. Oaten's config also adds lints that prevent panicking code outside of test contexts—enforcing at the lint level what Rust's type system alone can't fully guarantee.
Bacon completes this picture: it runs Clippy continuously in a terminal pane as you edit, so you're reading compiler output in real time rather than after the fact. The combination of Bacon + configured Clippy + Rust Analyzer in your editor is, essentially, a feedback loop that most languages require paid tooling to approximate.
The "Personal Standard Library"
The framing Oaten uses for his crate choices is worth noting: he divides them into a "standard library" of crates he uses in every project and a set of "go-to" crates he reaches for in nearly every project. That hierarchy isn't arbitrary—it reflects how mature and settled certain parts of the Rust crate ecosystem have become.
serde for serialization is the clearest example. As Oaten puts it: "If you're not using it directly, your dependencies certainly are." It's not really a choice anymore; it's infrastructure. Same with clap for argument parsing—Rust's built-in argument handling works, but clap's derive macro lets you define your CLI as a struct and get parsing and documentation for free.
For error handling, the community has largely converged on anyhow (or its forks, like eyre and color-eyre) to avoid the boilerplate of specifying every error type a function might return. Rayon gets a brief but notable mention: Oaten recommends trying it before reaching for async frameworks when you need parallelism, on the grounds that if your logic is already built around iterators, switching .iter() to .par_iter() may be all you need.
The more opinionated choices cluster around web: Leptos for frontend, SQLx for compile-time-verified database queries, and Utopia (yes, spelled differently than you'd expect—a pattern in the Rust crate ecosystem that Oaten ribs gently) for generating self-documenting REST APIs. These reflect a specific stack, not universal consensus. The Rust web ecosystem is still somewhat fragmented between Axum, Actix, Rocket, and others, and Oaten's choices here represent one coherent path through that fragmentation, not the only one.
What Kind of Argument Is This?
There's a genre question worth asking about videos like this one. A toolkit video is, structurally, an argument: these choices are better than alternatives. But "better" is always better for something, and Oaten is reasonably transparent about his context. He's building applications—CLIs, web services, frontends—not embedded systems, not libraries for others to consume, not anything where API stability constraints or dependency footprint are overriding concerns.
That context shapes the nightly recommendation, the async skepticism, the Leptos choice. A library author probably has different answers to most of these questions. A developer targeting embedded targets with no_std has a different list entirely.
What makes the video useful isn't that it's universally applicable. It's that it represents a coherent set of choices made by someone who has thought carefully about tradeoffs over several years of Rust production use. "I have been using nightly since 2020," Oaten notes—that's five years of lived experience with the stability question, not a first-week opinion.
The honest reading of any toolkit video is: here's what worked for this person, in this context, with these priorities. The interesting question for any reader is how much of that context overlaps with their own—and which of these crates hold up if it doesn't.
More Like This
Intel's Plus CPUs Make Budget Gaming Builds Make Sense Again
Level1Techs' Wendell builds two systems around Intel's Core Ultra 5 and 7 Plus chips—and the gaming performance gap is shockingly small.
Framework 13 vs MacBook: 3-Month Linux Reality Check
DevOps engineer Mischa van den Burg ditched his MacBook for a Framework 13 running Fedora. Three months in, he's not looking back—but there are tradeoffs.
The Missing Middle of Note-Taking: What Happens Next?
Tris Oaten's Obsidian system solves note-taking's biggest problem: what to do after you've captured everything. A look at the processing layer.
5 Free Open Source Tools Worth a Developer's Time
OrcDev spotlights five free open-source tools—from offline speech-to-text to React Native Tailwind—that genuinely earn their place in a developer's workflow.
Cutting Rust Compile Times Nearly in Half
Three Cargo and compiler optimizations can slash Rust build times by nearly 50%. Here's what each one costs you, and what you get in return.
10 Programming Books Worth Reading
The Coding Gopher's list of 10 brain-reshaping programming books—from SICP to Refactoring—examined for what they actually teach and who they're really for.
Dijkstra's Algorithm: A History and How It Works
How a 1956 coffee break in Amsterdam produced one of computing's most enduring algorithms—and what Dijkstra's method actually does under the hood.
How YC's Head of Design Works With AI Agents
Eve Bouffard, YC's head of design, shares her AI-first workflow—voice input, soul.md files, disposable prototypes—and what it means for design as a practice.