{"id":"7gh6o019ydavasf","title":"When Frameworks Are Worth It: My Decision Framework","slug":"when-frameworks-are-worth-it","summary":"Frameworks are leverage or tax depending on problem shape. I score interaction density, team skill, and lifecycle before recommending React or static HTML.","imageUrl":"https://briancrabtree.me/images/journal-when-frameworks-are-worth-it.webp","category":"Engineering","date":"2026-05-18T18:00:00.000Z","featured":false,"likes":15,"author":"Brian Crabtree","content":"<h2>Problems that justify a framework</h2>\n\n<p>Rich client state, realtime collaboration, complex forms with cross-field validation, and component libraries reused across dozens of screens earn React, Vue, or Svelte. Hiring pool and testing tooling matter for product companies shipping weekly.</p>\n\n<p>Time-to-interaction on admin apps beats time-to-first-byte. Different optimization function than marketing.</p>\n\n<p>Regulated industries may mandate frameworks with audit trails and LTS versions. That constraint shrinks choice set before hype enters. Consultants selling rewrites frame every site as SPA. Second opinion from perf audit saves money.</p>\n\n<pre><code>// Ship criteria\n// - Team knows the framework\n// - Problem needs components/state/routing at scale\n// - Bundle cost &lt; value of velocity</code></pre>\n\n<h2>Problems that do not</h2>\n\n<p>Brochure sites, blogs, documentation, and campaign landers with annual copy changes are often static HTML, Astro, or Eleventy. Paying hydration cost for a hero and footer is poor trade.</p>\n\n<p>SEO-critical content that must exist in first byte without JavaScript execution favors static generation or SSR with minimal client bundle.</p>\n\n<p>Internal tools with 200 forms benefit from React Hook Form plus server validation mirror. Brochure with one form does not. Maintenance contract should state framework major version upgrade policy upfront.</p>\n\n<h2>Scoring sheet I use with clients</h2>\n\n<p>Interaction density 1-5, content change frequency, team prior framework, hosting constraints, accessibility requirements, and perf SLAs. Score above threshold suggests framework. Below suggests static or islands.</p>\n\n<p>Politics counts: forcing Svelte on a React shop costs calendar. Technology choice includes people.</p>\n\n<p>Startup runway: framework speed may matter more than perf for six months. I document refactor trigger metrics upfront. Government RFPs sometimes mandate specific stack; score sheet still helps optional modules.</p>\n\n<h2>Hybrid architectures</h2>\n\n<p>Marketing static plus app subdomain is valid. Monorepo with shared tokens.css and separate deploy pipelines. Not every URL needs the same stack.</p>\n\n<p>WordPress or Spring CMS plus headless front is framework on back, static or React on front. Pick per surface.</p>\n\n<p>Acquisitions merge codebases; aligning on one framework is political. Technology scorecard helps execs decide. Student projects can use any framework; production payroll needs ops match.</p>\n\n<h2>Cost of switching later</h2>\n\n<p>Starting React for three pages locks dependencies for years. Starting static makes adding islands easier than stripping a SPA. I bias conservative on marketing roots, aggressive on product cores.</p>\n\n<p>Accessibility requirements for complex widgets push toward mature component libraries with tested patterns.</p>\n\n<p>Design system maturity reduces framework switch benefit because tokens port.</p>\n\n<h2>Anti-patterns I push back on</h2>\n\n<p>We need Next for SEO on four pages with no dynamic data. We need micro-frontends because two teams cannot agree on a repo. Framework because the bootcamp taught only React. I document no and why.</p>\n\n<p>Offline-first PWA with sync may need client framework; read-only marketing site does not.</p>\n\n<p>AI codegen accelerates boilerplate in any framework; choice still matters for runtime.</p>\n\n<h2>Conversation</h2>\n\n<p>Describe users, update cadence, and perf budget. I will return a one-page recommendation: stack, deploy target, and what not to buy. Frameworks are tools; the product is the point.</p>\n\n<p>I write the decision in ADR with revisit date. Calendar reminder beats memory when team churns.</p>\n\n<p>End-of-life framework versions are security debt with calendar deadline, not suggestion. For a related angle I keep coming back to, see <a href=\"/journal/vite-vs-next-content-heavy-sites/\">Vite vs Next for Content-Heavy Sites</a>.</p>","tags":["frameworks","react","architecture"],"views":66}