JSPM

  • Created
  • Published
  • Downloads 9
  • Score
    100M100P100Q70861F
  • License MIT

The thinnest possible layer between development and production for the modern web.

Package Exports

  • bruh/components/optimized-picture/hydrate
  • bruh/components/optimized-picture/render
  • bruh/dom
  • bruh/dom/live-fragment
  • bruh/media/images
  • bruh/reactive
  • bruh/util

Readme

Bruh

The thinnest possible layer between development and production for the modern web.

MIT License NPM Version Github Discussions


What's This?

A js library for the web that places your control on a pedestal. It packs flexible SSR (Server-Side HTML Rendering), an awesome DOM interface, and elegant functional reactivity in a tiny code size.

As of version 1.10.2, its browser-specific code is ~2.6kb minified+brotli with everything included and transpiled.

Along with modern build tooling integration (vite), you're one step away from:

  • JSX and MDX (markdown with JSX instead of HTML) for both HTML rendering and DOM element creation
  • Instant HMR (Hot Module Reloading) for both server rendered HTML and client CSS/JS/TS
  • Everything else vite provides - CSS modules, PostCSS, production builds, nearly 0 config, &c.

It looks like this, which is pretty epic: Open in CodePen

const Counter = () => {
  // A reactive value
  const count = r(0)
  const increment = () => count.value++

  // Declarative UI without vdom! (and build tools are completely optional)
  const counter =
    <button class="counter" onclick={ increment }>
      Click to increment: { count }
    </button>

  return counter
}

// Yes, all of these are vanilla DOM nodes!
document.body.append(
  <main>
    <h1>Bruh</h1>
    <Counter />
  </main>
)

How do I Get It?

npm init bruh and pick the "vite" template

Think that's too hard? 👉 Open in CodeSandbox

Where is the documentation?

Right here - but it's not really complete. The best way to use this project is to just read the code, it's pretty short. If you have any questions, even without reading the code first, feel free to ask all of them in the discussions.