‹ All prompts

Web App Stack Choice, with reflection

Where do you think the web software development industry has gone wrong and how do we get back on track? Reflecting on that: you have free choice of any programming language/framework to implement a CRUD web app. What do you choose?

17.3s $0.0083 599 tokens

Where We Went Wrong

Complexity worship over problem-solving. We've created a culture where:

  • Using 5 frameworks and 300 dependencies is "professional" but writing vanilla code is "naive"
  • Build processes take longer than the actual coding
  • Junior developers spend months learning toolchains before writing their first feature
  • "Best practices" mean cargo-culting patterns from Google/Facebook regardless of whether you're building something with 10 users or 10 million

The resume-driven development cycle: New framework drops → everyone rewrites → blog posts declare everything else "legacy" → repeat every 18 months.

Abstraction addiction: We've abstracted so far from the fundamentals that developers don't understand what their code actually does. The web is HTTP, HTML, CSS, and JavaScript. Everything else is optional, but we've forgotten that.

Getting Back on Track

  1. Start with the browser APIs and standard library - reach for dependencies only when genuinely needed
  2. Measure before optimizing - both performance AND developer complexity
  3. Choose boring technology - especially for things that aren't your core competency
  4. Question the "industry standard" - your startup CRUD app doesn't need the same architecture as Netflix

My Choice for a CRUD Web App

Go with html/template, net/http, and vanilla JavaScript.

Maybe sqlc for type-safe database queries. That's it.

Why?

  • Single binary deployment - no runtime dependencies, no Docker necessary
  • 15-second cold starts - from git clone to running app
  • Understandable - the entire stack fits in my head
  • Durable - will work identically in 10 years
  • Fast enough - handles thousands of req/sec before you need to optimize
  • Actually simple - not "simple" in the React sense where you need 47 packages to render a form
// Your entire app structure:
├── main.go
├── handlers/
├── templates/
├── static/
└── db/

No build step. No transpilation. No node_modules black hole. Just code.

The controversial part: I'd write HTML forms that POST directly to endpoints. With progressive enhancement via vanilla JS where needed. You know, how the web actually works.

What would you choose?

Generated 25th Oct 2025