WE BUILD STORES - NEWSLETTER ================================================== The Pretty Frontend and The Ugly Backend: Why Boring Technology Wins (Especially With AI) Week 45, 2025 Tuesday 4 November 2025 Where 26 years of Experience Delivers in One Hour What Twenty Six Hours of Not Knowing Cannot IN THIS ISSUE: • Why Django's 20 years of training data beats cutting-edge frameworks • The Secret Weapon: Boring Technology + AI velocity advantage • Real examples of AI-assisted development at 40-80x speed • Why 'legacy' means 'extensively documented in AI training' • Building features in hours instead of days with predictable stacks ----------------------------------------------- _Everyone wants to talk about the sexy frontend._ The React ecosystem with its 47 state management libraries. The TypeScript config that requires a PhD to understand. The build pipeline that needs a dedicated DevOps engineer. _Nobody wants to talk about Django and SQLite._ Because they're boring. They've been around forever. They don't spark debates on Twitter. They don't require conference talks to explain. _But they work._ And when you're running an actual business, "works" beats "exciting" every single time. The Frontend Stack: Astro + Tailwind ================================================== Let me tell you why I chose Astro for client websites: _It's embarrassingly simple._ Write components. Build static HTML. Ship to Netlify. Done. No hydration strategies. No "use client" directives. No wrestling with SSR vs SSG vs ISR. _The performance is automatic._ 95+ PageSpeed scores without trying. Because shipping HTML is fast. Shocking, I know. _Tailwind means no CSS surprises._ `bg-blue-500` does exactly what it says. No mysterious cascade issues. No "why is this div 3px off?" debugging sessions. Just utility classes that work. _Is it the most powerful frontend framework?_ No. _Does it let me build and deploy professional websites in hours instead of weeks?_ Yes. _That's why it wins._ The Backend Stack: Django + SQLite ================================================== Now let me tell you about the unsexy part nobody wants to discuss. _Django is old._ First release: 2005. Nearly 20 years old. Ancient by JavaScript framework standards, where six months is "legacy". _SQLite is older._ First release: 2000. Older than many developers reading this newsletter. _But here's what they do:_ Django gives me: • An admin interface that actually works (not some half-baked CRUD generator) • ORM that handles 95% of queries without raw SQL • Built-in authentication, sessions, middleware • Management commands for automation • 20 years of battle-tested stability SQLite gives me: • A single file database (no server to maintain) • ACID compliance (actual data integrity) • Transactions that work correctly • Enough performance for 99% of business applications • Zero configuration _The result?_ I run a complete business intelligence platform on a single VPS. No Kubernetes. No microservices. No "distributed systems" complexity. Just Python and SQL doing unglamorous work. Why Boring Technology Actually Wins ================================================== Here's what nobody tells you about "modern" frameworks: _The JavaScript ecosystem changes every 6 months._ The framework you learn today is "legacy" next year. The build tools you master become deprecated. The patterns you adopt get replaced. _Django and SQLite change every 5 years._ And when they do change, it's backwards-compatible. Code I wrote in 2023 still runs in 2025. Without modifications. _That's the competitive advantage._ While everyone else is rewriting their stack to keep up with ecosystem churn, I'm building features. While they're debugging hydration mismatches, I'm shipping to customers. Boring technology means: • Less time upgrading dependencies • Less time fixing breaking changes • Less time reading migration guides • More time building actual business value _That compounds over years._ The Secret Weapon: Boring Technology + AI ================================================== Here's what nobody's connecting yet: _AI models were trained on 20 years of Django code._ Every Stack Overflow question. Every Django Girls tutorial. Every open-source project. AI knows Django patterns deeply. _AI models understand SQLite perfectly._ Simple schemas. Standard SQL. No exotic database features to explain. Just tables, columns, and relationships. _AI can generate Astro components effortlessly._ The component model is straightforward. Props go in, HTML comes out. No complex lifecycle hooks to reason about. _AI composes Tailwind utilities naturally._ `flex items-center justify-between` is readable to both humans and AI. No mysterious CSS classes to interpret. _The result?_ I work with Claude Code to build features at 40-80x typical development velocity. Not because I'm exceptional. Because the stack is predictable enough that AI can reason about it correctly. _Modern frameworks move too fast for AI training data._ The cutting-edge framework from six months ago isn't in the training set. The patterns that work today weren't documented when the model was trained. _Boring technology is extensively documented in training data._ Django's 20-year history means AI has seen every pattern, every edge case, every solution. That's the competitive advantage nobody sees coming: _Boring technology + AI = velocity that compounds._ The Actual Stack in Production ================================================== Here's what runs We Build Stores business operations: _Frontend (Astro + Tailwind):_ • Marketing website: Astro static site on Netlify • Client websites: Astro templates configured with YAML • Blog content: Markdown files in Git • Total complexity: Minimal _Backend (Django + SQLite):_ • SEO intelligence platform • Client management system • Financial tracking • Email automation • Task scheduling with Celery • Total servers: One VPS _Does this scale to millions of users?_ No. _Does it run a profitable consultancy with 8 clients?_ Yes. _Does it require a DevOps team?_ No. _Does it let me work from anywhere with just a laptop?_ Yes. What This Actually Looks Like ================================================== _When I need a new feature (with AI):_ • Describe the feature to Claude Code • AI generates Django model + admin + views (2 minutes) • Review, run migrations (30 seconds) • Feature is live _When I need a new page (with AI):_ • "Build a pricing page with three tiers" • AI generates Astro component + Tailwind styling (3 minutes) • Review, adjust, deploy • Page is live _When I need automation (with AI):_ • "Create a weekly report that emails client metrics" • AI writes management command + Celery schedule (5 minutes) • Review logic, test once • Automation runs daily _Total time: Hours instead of days._ The AI isn't writing perfect code. It's writing Django code that follows 20-year-old patterns. Astro components that match documented examples. Tailwind utilities that work predictably. No Docker containers. No CI/CD pipeline. No infrastructure-as-code. Just code that runs, generated in minutes because the stack is learnable. The Competitive Moat Nobody Sees ================================================== While everyone's focused on technology choices, here's what actually matters: _They're asking:_ "Should we use React or Vue?" _I'm asking:_ "What business problem are we solving?" _They're debating:_ "Client-side or server-side rendering?" _I'm building:_ Features customers will pay for (with AI assistance). _They're optimising:_ Bundle sizes and lighthouse scores. _I'm optimising:_ Time from idea to deployed feature (leveraging 20 years of Django training data). _The tech stack isn't the competitive advantage. The velocity is._ Django + SQLite + Astro + Tailwind + AI lets me: • Build features in hours, not sprints (AI knows these stacks deeply) • Deploy with confidence (boring = fewer edge cases) • Maintain with minimal effort (stable patterns, well-documented) • Scale appropriately (30 clients, not 30 million users) _This is why boring technology wins in the AI era._ When everyone adopts AI coding assistants, who has the advantage? _The developers using frameworks with 20 years of training data._ Not the ones using last week's framework that AI has never seen. The Truth Nobody Wants to Hear ================================================== You don't need: • GraphQL • Microservices • Kubernetes • Server-side rendering • Edge functions • Real-time sync • Distributed caching _For 99% of business applications._ You need: • A database that doesn't lose data • A backend that handles HTTP requests • A frontend that loads quickly • Code you can understand in 6 months Django and SQLite give you that. Astro and Tailwind give you that. _Without the complexity tax._ Try This Instead ================================================== Next time you start a project, ask: _"Does this need to be cutting-edge?"_ Or can you just: • Write Python/Django for the backend (AI knows it deeply) • Use SQLite until you actually need Postgres (AI understands simple schemas) • Build with Astro for static content (AI generates clean components) • Style with Tailwind utilities (AI composes utilities naturally) • Work with AI coding assistants (trained on your stack) • Deploy to one server • Ship the feature _You'll know it worked when AI is generating correct code on the first attempt._ Because boring technology is predictable enough that AI can reason about it correctly. That's not boring. That's strategic. -------------------------------------------------- The pretty Astro frontend gets finished quickly (with AI assistance). The ugly Django backend runs reliably for years (following patterns AI knows deeply). Together, they let me run an actual business instead of maintaining a technology demonstration. _I'll take the boring stack that works—especially when AI knows it better than any cutting-edge framework._ -------------------------------------------------- P.S. The next time someone tells you Django is "legacy," remind them: legacy means "extensively documented in AI training data." P.P.S. Next week: Why SQLite is probably enough for your business (and when it isn't). -------------------------------------------------- _Tony Cooper_ We Build Stores - Where Boring Technology Builds Real Businesses tony.cooper@webuildstores.co.uk 07963 242210 CONTINUE READING THIS WEEK'S NEWSLETTER Get the full insights, client examples, and strategic frameworks that could transform your business approach. Read online: https://webuildstores.co.uk/newsletter/2025/week-45 ================================================== Tony Cooper Founder We Build Stores tony.cooper@webuildstores.co.uk 01952 407599 You're receiving this because you've engaged with We Build Stores content or requested our insights. Website: https://webuildstores.co.uk We Build Stores Ltd, Registered in England & Wales