XSLT – Native, zero-config build system for the Web

Reactions to the article and “grug” style

  • Several readers liked the goal (simple, zero-build web stack) but bounced off the caveman‑style prose, finding it distracting or hard to read.
  • A few found the tone fun or endearing; others said they stopped reading purely because of the style.

Browser support, versions, and deprecation risk

  • Multiple comments note that browsers only support XSLT 1.0, with no movement toward 2.0/3.0.
  • There is concern that browser vendors have discussed deprecating XSLT; some already prefer running transforms server‑side to avoid future breakage.
  • Practical notes: XSLT often doesn’t work when opening XML from file://; serving via HTTP is more reliable. Firefox and Chrome use different engines with different quirks and limited debugging.

Real‑world uses and success stories

  • Many war stories from early 2000s: mobile portals, WAP sites, interbank messaging, reporting systems, Google Search Appliance, Cocoon, XSLT‑based CMSs.
  • Modern uses include: styling Atom/RSS feeds, blogs built directly from XML+XSLT, game config/modding (e.g. one popular game), API documentation, interop pipelines, EXI‑compressed XML, CI pipelines and schema‑driven data generation.
  • Some praise XSLT for configuration‑driven transformations where non‑“full‑stack” staff can safely adapt outputs.

Developer ergonomics and DX

  • Common complaints: difficult to learn and re‑learn, poor mnemonics, multiple sublanguages (XSLT + XPath), verbose XML syntax, lack of good debuggers, hard to printf‑debug, confusing template priorities.
  • Namespaces and XPath are a recurring pain point; workarounds are seen as ugly.
  • Some compare XSLT unfavorably to Jinja/Mustache, React, jq, or general‑purpose languages with JSON libraries.
  • Others report it was mind‑expanding and a first exposure to functional programming, idempotency, and declarative transforms.

Performance and complexity

  • XSLT can be very fast for the right workloads, especially with good engines (e.g. Saxon) and keyed lookups.
  • But several users describe production incidents where naïve stylesheets had hidden O(n²) or worse behavior that only surfaced on larger documents; diagnosing and fixing these was painful.
  • Consensus: fine for simple sites and pipelines; complex, data‑heavy trees require careful design and sometimes better tools.

XML vs JSON/YAML and “what we lost”

  • Many miss XML’s schemas, namespaces, comments, mixed content, XPath/XSLT ecosystem, and standards maturity.
  • Others argue XML was over‑sold in the 2000s, misused as a universal solution, and became associated with bloated enterprise stacks and hardware XML appliances.
  • Debate around bandwidth and “bloat”: some say XML is heavier; others point out compression and EXI largely mitigate this.

Static sites and no‑build workflows

  • Several people are attracted to the article’s core idea: no JS, no build tools, just XML+XSLT served as static files that browsers transform.
  • XSLT is suggested as a way to get includes (navigation menus, templates) for small static sites without server‑side logic or generators.
  • Counterpoints: limited browser support and tooling, risk of future removal, and the fact that simple PHP/SSI or modern static generators are often easier to work with and host.