Rustango: Bringing Django's Batteries to Rust
A batteries-included web framework that ports Django's developer experience - the typed ORM, migrations, admin, auth, and management commands - to async Rust, without giving up compile-time guarantees.
Thoughts, tutorials and notes on software development.
A batteries-included web framework that ports Django's developer experience - the typed ORM, migrations, admin, auth, and management commands - to async Rust, without giving up compile-time guarantees.
A content management system built on Rustango that ports Wagtail's page tree, StreamField, snippets, and image renditions to Rust - multi-tenant, type-safe, and fast.
How we architected a multi-tenant fundraising event platform that handles thousands of concurrent donation streams, per-organisation theming, and sub-second live updates - with Django, Wagtail CMS, a Rust SSE microservice, and zero WebSocket complexity.
What happens when you take Django's class-based views to their logical extreme? You get five URL patterns that handle full CRUD for every model in your application - no REST framework, no serializers, no client-side router. Just HTMX, convention over configuration, and a philosophical rejection of accidental complexity.
Oracle Cloud's Always Free tier gives you a VM with 1 GB RAM, 50 GB storage, and a public IP - permanently, no credit card tricks. Here is exactly how I set it up, the gotchas that will waste your afternoon if you do not know about them, and why it beats the cheapest AWS EC2 instance.
What if every form in your Django application - create, edit, bulk update, modal, inline - was defined as a Python dictionary instead of a class? Two production systems taught me that forms are data, not code, and the difference is transformative.
Django admin renders full CRUD interfaces from model definitions alone. Most frameworks cannot even dream of this. Here is why it changed how I think about UI, how it inspired a production schema-driven form engine, and why the industry sleeps on the best idea in web development.
A blueprint system that turns Python dictionaries into complete admin pages - tables, filters, forms, actions, permissions, and menus - with zero HTML templates. How a decorator, a TypedDict, and a JSON contract eliminated an entire class of repetitive frontend work.
After shipping my fifth Wagtail multisite app and copy-pasting yet another tangle of brand colour overrides, I finally extracted the theming layer into its own package. This is the story of why every Wagtail project ends up reinventing theming - and the small, opinionated library that stopped me from doing it a sixth time.