A Rant about Front-end Development

Semantic HTML, Accessibility, and Content

  • Many agree with the rant that “div soup” and misused tags (e.g., <ul> + manual numbers vs <ol>) are symptomatic of poor front-end practice.
  • Pro‑semantics camp: correct elements convey meaning (ordered vs unordered lists, tables for tabular data, regions, ARIA roles), help assistive tech, and enable machine legibility and future re‑presentation of content.
  • Skeptical camp: for many apps, users just need legible UI; caring about <section>, <header>, etc. is “life’s too short” minutiae if ARIA roles and visual behavior are fine.
  • Disagreement over how much search engines actually use semantic HTML; some argue crawlers largely ignore it because the web is invalid in practice.

CSS, Styling Approaches, and Tooling

  • Some strongly defend plain CSS: it’s powerful, specs are thoughtful, problems come from misuse (global soup, single huge stylesheet, only using <div>).
  • Others argue CSS is fundamentally ill‑suited for app‑like UIs and is the true pain point in modern FE.
  • Tailwind gets both praise (great shared design vocabulary, zero custom CSS, good for non‑devs) and criticism (utility soup, dependency bloat).
  • Classless CSS, BEM/CUBE, and simple component‑scoped styles are proposed as saner alternatives; CSS nesting and scoping in new specs are noted.

SPAs, React, and Framework Debate

  • Strong split:
    • Pro‑React/Next/etc.: unified language across client/server, components, type safety, routing, code‑splitting; easier onboarding because devs already know it; avoids reinventing a bespoke “organic” framework.
    • Anti‑React: over‑engineered, brittle, churn-heavy ecosystem, encourages junior‑friendly but long‑term‑fragile patterns, huge dependency trees, unnecessary for many sites.
  • Some see React’s rise as driven by bootcamps, hiring, and ability to coordinate large teams of average devs, not purely technical merit.
  • Others insist most problems blamed on React are organizational or misuse, not inherent to the library.

Server-Side Rendering vs Client-Side

  • Many advocate SSR or “95% SSR + 5% JS” using templates, htmx, Alpine, Turbo, etc., claiming better performance, maintainability, and simpler deployments.
  • Others prefer heavy client‑side rendering for interactive, stateful apps, arguing it simplifies state management and separates “backend = data” from “frontend = rendering”.
  • Static site generators and pre‑rendering are popular middle grounds.

Developer Skills, Culture, and Complexity

  • Recurrent theme: front-end is flooded with juniors and “framework cargo‑culting,” leading to bloated, inaccessible apps.
  • Counterpoint: back‑end developers also lean heavily on frameworks; it’s unfair to single out JS devs.
  • Several note front‑end now spans everything from simple blogs to “Photoshop in the browser,” so one “right” stack doesn’t exist.
  • Some see the rant as cathartic but solutions‑light; others say it accurately captures a real decline in craft and overuse of SPAs for simple content.