π Introduction
SeraJS is a lightweight, signal-based reactive JavaScript library for
building dynamic user interfaces.
At just 1.25KB gzipped and only 135 lines of code, it's a remarkably lightweight reactive UI library β offering powerful reactivity with minimal overhead.
β‘οΈ SeraJS focuses on minimalism and performance without sacrificing
developer experience.
Bundle Size Comparison (Minified + Gzipped)
Library | Size (gzipped) | Build Step Required | Main Purpose | Key Features |
---|---|---|---|---|
SeraJS | 1.25kb | Optional π | Reactive UI | 135 lines of code, extremely lightweight |
React | ~40kb | Yes | UI components | Virtual DOM, component-based architecture, JSX |
Vue | ~33kb | Optional | Progressive framework | Reactive data binding, component system, single-file components |
Solid.js | ~7kb | Yes | Reactive UI | No virtual DOM, compiled templates, fine-grained reactivity |
Alpine.js | ~7.1kb | No | Lightweight framework | Minimal DOM manipulation, declarative syntax, works with existing HTML |
Preact | ~4kb | Yes | React alternative | API compatible with React, smaller size, faster performance |
htmx | ~14kb | No | AJAX enhancements | HTML attributes for AJAX, minimal JavaScript, server-side rendering friendly |
βοΈ Core Concepts
π Signal-Based Reactivity
SeraJS uses a signal-based reactive system, a modern approach to state
management that enables efficient updates:
π§ Signals
Self-contained reactive values that notify subscribers when they change.π Effects
Functions that automatically re-execute when their dependencies (signals)
change.π§ Memo
A memoization helper similar to React'suseMemo
, used to cache the result
of a computation based on reactive dependencies to avoid unnecessary
recalculations.π¬ Fine-Grained Updates
Only the specific DOM elements affected by state changes are updated,
resulting in minimal re-rendering and high performance.
π‘ SeraJS is designed to be intuitive, fast, and easy to integrate into any
project β making it a perfect choice for modern frontend development.
Why SeraJS?
SeraJS brings together the best parts of libraries like React, Solid, and Lit β blending familiar patterns with a fresh, minimal approach.
At just 1.25KB gzipped and only 135 lines of code, this reactive UI library stays ultra-light while still delivering powerful reactivity.
Whether you want a build system or prefer a no-build workflow, SeraJS has you covered. Itβs flexible enough to fit your dev style β use it how you want.
π± Sera.js Basic Example
A minimal example showing a Hello World message using Sera.js.
π App.jsx
import { h } from "serajs"; export default function App() { return ( <h1>Hello world</h1> ); }
No Build, No Dependencies
<!DOCTYPE html> <html> <head> <title>Sera js π</title> </head> <body> <script type="module"> import { h, setSignal, setEffect } from "//unpkg.com/serajs"; function Hello() { const [count, setCount] = setSignal(0); setEffect(() => { console.log(count()); }); return h( "div", null, h("h1", null, "Hello World!"), h("p", { style: { color: "red" } }, "Do you Like Serajs?"), h("h1", null, () => `Count: ${count()}`), h( "button", { onclick: () => setCount(count() + 1) }, "Increase Count" ) ); } const root = document.body; root.appendChild(Hello()); </script> </body> </html>
Top comments (1)
Why can't html be used instead of jsx? Why another react inspired library?