(defcomp ()
  (~docs/page :title "Why S-Expressions Over HTML Attributes"  (~docs/section :title "The problem with HTML attributes" :id "problem"    (p (~tw :tokens "text-stone-600")      "HTML attributes are strings. You can put anything in a string. htmx puts DSLs in strings — trigger modifiers, swap strategies, CSS selectors. This works but it means you're parsing a language within a language within a language.")    (p (~tw :tokens "text-stone-600")      "S-expressions are already structured. Keywords are keywords. Lists are lists. Nested expressions nest naturally. There's no need to invent a trigger modifier syntax because the expression language already handles composition."))  (~docs/section :title "Components without a build step" :id "components"    (p (~tw :tokens "text-stone-600")      "React showed that components are the right abstraction for UI. The price: a build step, a bundler, JSX transpilation. With s-expressions, defcomp is just another form in the language. No transpiler needed. The same source runs on server and client."))  (~docs/section :title "When attributes are better" :id "better"    (p (~tw :tokens "text-stone-600")      "HTML attributes work in any HTML document. S-expressions need a runtime. If you want progressive enhancement that works with JS disabled, htmx is better. If you want to write HTML by hand in static files, htmx is better. sx only makes sense when you're already rendering server-side and want components."))))
