Umbral
Blog

Notes from the framework floor.

Release notes, implementation essays, and plugin field reports from the Umbral codebase. Less launch theater, more useful detail.

Release Aug 3, 2026 7 min read

From GraphQL to Private Media - What Shipped in Umbral Since v0.0.6 - v0.0.11

Five releases in three weeks. A full GraphQL API derived from your models, a generated TypeScript client, admin dashboards, a security-hardening sweep, and media that's finally private by default. A tour of what landed after July 9.

Read the latest
PluginSpotlight Jul 9, 2026 8 min read

Twenty-one plugins, one contract: a tour of the Umbral toolbox

Auth, admin, REST, background jobs, realtime, storage, multi-tenancy — in Umbral they're all plugins, structurally identical to one you'd write yourself. Here's the whole toolbox, and why 'it's just a plugin' is the most important sentence in the framework.

Tutorial Jul 9, 2026 9 min read

Ship a SaaS this weekend, in Rust, without the boilerplate

You have an idea and two free days. Here's how a batteries-included Rust framework takes you from an empty repo to a real multi-tenant app — auth, an admin, a REST API, background jobs — before Sunday night. No DTOs, no glue code, no yak-shaving.

DesignNote Jul 9, 2026 8 min read

The week we tried to break our own framework

A batteries-included framework makes a quiet promise: the easy path is the safe path. So we spent a week attacking our own defaults — and shipped a stack of fixes. Here's what 'secure by default' actually costs, and why it's the feature you never see.

Tutorial Jul 9, 2026 7 min read

Forms, admin, and REST without the boilerplate

One model declaration drives the form, the admin CRUD, and the REST resource. Here's how the same struct powers server-rendered forms with validation, an auto admin, and a JSON API — each an opt-in plugin.

DesignNote Jul 9, 2026 8 min read

The plugin contract: batteries as real plugins

Dependencies point inward toward the core; control flows outward through a trait. That single rule is what lets you keep the official auth, swap it for your SSO, or build a project-specific plugin — all behind the same boundary.

Tutorial Jul 9, 2026 9 min read

Managed migrations: the loop that is the product

Autodetection diffs your models against the last snapshot and emits ordered, reversible operations. inspectdb ports an existing database in. Here's how the declare → migrate → change → migrate loop actually works.

Community Jul 9, 2026 8 min read

Building the Umbral website with Umbral

The best proof that a framework can build a real, content-heavy site is to build one. This site — directory, reviews, discussions, admin, forms — is an Umbral project using the same apps, migrations, and plugins it documents.

DesignNote Jul 9, 2026 7 min read

Why Umbral exists

Rust has fast routers and solid ORMs. What it didn't have was the batteries-included feeling: declare your data and get migrations, an admin, forms, and a REST API almost for free. Umbral is that feeling, rebuilt on Rust's guarantees.