Building a robust frontend using progressive enhancement

Overall sentiment toward progressive enhancement

  • Many commenters strongly endorse the guidance and wish more of the web followed it.
  • Several report personal frustration that sites fail completely without JavaScript for content that could be plain HTML.
  • Gov.uk is praised for clear writing, consistent design, and for prioritizing accessibility and simplicity.

SPAs vs server-rendered / multi-page apps

  • Common view: most apps that are basically “forms and tables” should be HTML + CSS with minimal JS; SPAs often add huge complexity for marginal UX gain.
  • Others argue SPAs are not inherently inaccessible or broken; careful implementations can preserve history, focus, back/forward, and assistive tech.
  • Several say SPAs make sense when the app is offline-capable or “desktop-like” (e.g., Google Docs, graphics tools).

Accessibility, performance, and reliability

  • Progressive enhancement and plain HTML “get a lot for free”: navigation, back button, refresh, error recovery, assistive tech.
  • SPAs must reimplement these behaviors, and many do it poorly, leading to broken keyboard navigation, links, and form behavior.
  • JS bloat, heavy dependencies, and client-side frameworks are blamed for slow load times, high CPU use, and poor experience on low-end devices.

Developer experience, complexity, and incentives

  • Recurrent theme: modern frontend stacks are vastly more complex than necessary; teams spend time on tooling, builds, and dependencies rather than user needs.
  • Some see frontend as a “jobs program” or CV-padding: complex stacks are chosen to stay trendy, appear “serious,” and help promotions.
  • Others counter that large, evolving UIs have inherent complexity; component frameworks help with modularity, styling, testing, and state.

Government context vs private sector

  • Government services must work for nearly everyone, including old devices, JS-disabled setups, and assistive technologies.
  • Businesses often accept partial accessibility and chase flashy SPAs, especially for demos and internal optics.

Frameworks and alternatives

  • Mixed views on React: seen as powerful but over-complex with hooks.
  • Some prefer Svelte, HTMX, Alpine, Livewire, Mithril, or classic SSR (Rails, Django) as simpler, more standards-aligned approaches.
  • Desire expressed for “component frameworks without SPA routing/state” and for HTMX-like capabilities baked into browsers.

Critiques of the guidance

  • Some say the article overstates SPA drawbacks or feels stuck in early-2000s thinking, noting modern SSR/hydration and accessible SPAs.
  • Others think the language (“should consider”) is softer than the intent, especially in a governmental context.