- Updated: March 22, 2026
- 4 min read
Gea UI Framework: A New Era of Compile‑Time Web Development
Philosophy Code Performance Features Benchmarks DOCS GITHUB Write JavaScript.Get reactivity for free. A compile-time UI framework that turns ordinary classes and functions into surgical DOM updates. No virtual DOM. No hooks. No signals. Just your code — made reactive at build time. The fastest compiled UI framework — ahead of Solid, Svelte, Vue, and React. GET STARTED VIEW ON GITHUB ~13 kb Gzipped (with router) 0 Runtime Deps 1.03 Benchmark Score Philosophy JavaScript is enough No new primitives to learn. Stores are classes. Components are classes or functions. Computed values are getters. The compiler does the rest. 🌱 Zero Concepts No signals, hooks, dependency arrays, or compiler directives. You already know the entire API — it’s just JavaScript classes and functions.⚡ Compile-Time Reactivity The Vite plugin analyzes your JSX at build time, figures out which DOM nodes depend on which state, and wires up surgical patches — invisibly. 🎯 No Virtual DOM Updates go straight to the elements that changed. No diffing, no reconciliation, no overhead. Just direct DOM mutations, generated at compile time. 🧬 Proxy-Based Stores State lives in ordinary classes wrapped by a deep Proxy. Mutate properties directly — array methods, nested objects, everything just works.📦 Batteries Included State management and routing are built in — ~13 kb gzipped with the router, ~10 kb without. Zero runtime dependencies. No extra packages to choose between. 🛠️ Full Toolkit Built-in client-side router, 35+ accessible UI components, mobile primitives, VS Code extension, and a project scaffolder. Everything you need, nothing you don’t. Code This is all you write Stores are classes with state and methods. Components return JSX. The compiler makes it reactive. store.ts Counter.tsx app.tsx import { Store } from ‘@geajs/core’ class CounterStore extends Store { count = 0 increment() { this.count++ } decrement() { this.count– } } export default new CounterStore() import { Component } from ‘@geajs/core’ import store from ‘./store’ export default class Counter extends Component { template() { return (
) } } import Counter from ‘./Counter’ const app = new Counter() app.render(document.getElementById(‘app’)) Performance The fastest compiled UI framework Faster than Solid. Faster than Svelte. Benchmarked with js-framework-benchmark — the standard stress test for UI frameworks. vanillajs 1.02 Gea 1.0 1.03 Solid 1.9 1.12 Svelte 5 1.14 Vue 3.6 1.26 React 19.2 1.50 Lower is better (1.00 = fastest). Weighted geometric mean from js-framework-benchmark.Features Everything you need, nothing you don’t A complete toolkit for building modern web applications, from single components to full SPAs. Class Components Extend Component, add local reactive state, implement template(). OOP the way it was meant to be. Function Components Export a function that returns JSX. Converted to a class component at build time — zero overhead. Client-Side Router Built-in RouterView, Link, route params, wildcards, and programmatic navigation. No extra packages.Event Delegation All event handlers compile to a single delegated listener per event type. Efficient by default. Fine-Grained Arrays Array methods like push, splice, sort produce granular change events — append, reorder, swap — not full rerenders. Gea UI 35+ accessible components built on Zag.js — dialogs, menus, selects, tabs, tooltips, accordions, comboboxes, and more. Ready to style.Gea Mobile ViewManager, sidebar, tab views, pull-to-refresh, infinite scroll, swipe gestures — all iOS-style smooth. HMR Support The Vite plugin provides hot module replacement. Edit a store or component and see it update instantly. VS Code Extension SOON Component completion, prop inference, event attribute hints, hover details, and unknown component warnings. Two-Way Props Props follow JavaScript semantics. Objects and arrays are passed by reference — the child mutates them, both sides update. No emit, no v-model, no callback wiring. It’s just how the language works. Computed Getters Derived state is a standard get accessor on your store. No useMemo, no computed() wrapper. The compiler detects dependencies and subscribes automatically. AI-Ready Ships with agent skills that teach Cursor, Codex, and other AI assistants the full Gea API. Scaffold and iterate on Gea apps with complete AI assistance out of the box.Quick Start Up and running in seconds One command scaffolds a Vite project with TypeScript, stores, components, and the plugin pre-configured. $npm create gea@latest my-app Click to copy Join the next generation The fastest compiled UI framework is MIT licensed and open source. Jump in and build something extraordinary. STAR ON GITHUB VIEW ON NPM