RawJS is a better way to call document.createElement()

A new frontend library called RawJS claims to be a lightweight, more ergonomic way to call `document.createElement()` and build UIs without React or a virtual DOM. Commenters largely criticize its marketing-heavy homepage, lack of clear code examples, awkward ergonomics, and reliance on TypeScript and unconventional project structure, arguing that it doesn’t scale well for complex apps or teams compared to established frameworks. Some appreciate the goal of minimizing dependencies and sticking closer to the DOM, but most see RawJS as a niche or experimental tool rather than a practical replacement for modern frameworks like React, Vue, or Svelte.

Landing Page, Demo, and Docs

  • Many commenters found the marketing page vague: mostly claims, few code examples, and unclear positioning.
  • The live demo drew criticism for UX issues: back-button history spam, awkward modals (no clear close button, backdrop issues), huge typography, and generally “unpolished” feel.
  • Typos and a confusing link from “Check out Squares” to a sample repo (not the main site) reduced trust.
  • Several people asked for a simple, canonical example (e.g., TODO app) and side‑by‑side comparisons with React/jQuery/vanilla, à la “youmightnotneedjquery”.

API Design and Ergonomics

  • Shared code snippets were widely viewed as verbose, imperative, and harder to read than both jQuery and framework templates.
  • The parameter overloading style (mixing strings, functions, event helpers, attrs, arrays) was seen as “magic” and error‑prone, contradicting “no magic” marketing.
  • Writing HTML and CSS via JS function calls turned off many who prefer templates or plain HTML+CSS enhanced by JS.

Positioning vs Frameworks and Vanilla JS

  • Supporters appreciated the intention: minimal dependencies, direct DOM use, no virtual DOM, and “DOM as state”.
  • Critics argued that DOM construction is not the hard part; state management and scalable updates are, where React/Vue/Svelte/Solid shine.
  • Several felt RawJS resembles “componentized jQuery” and would not scale well to large apps or teams.
  • Others pointed out that JSX + React already serve as a de facto standard, and that simpler tools like htmx, Hotwire, ArrowJS, or plain Vue might be preferable.

Build, Dependencies, and Modules

  • The sample repo’s “no bundler/build” vs “TypeScript builds your app” messaging confused some; later clarified as “no webpack/rollup, just tsc”.
  • The recommendation to only use jsdelivr‑hosted deps and the quip about “npm install programmers” drew pushback, especially given the project’s own npm‑style deps.
  • The library’s dislike of ES modules and import lists sparked debate; others defended ESM and explicit imports as standard practice.

Claims, Performance, and Scale

  • Claims like “no learning curve”, “no weird magic”, “no performance overhead”, “no known bugs”, and TypeScript while calling it “RawJS” were seen as overconfident or misleading.
  • Overall sentiment skewed skeptical: interesting goals, but weak examples, rough UX, unclear benefits over existing libraries, and doubts about viability on large, real‑world frontends.