gea-framework
Gea Framework
Gea is a lightweight, reactive JavaScript UI framework built on the principle that JS code should be simple and understandable. It compiles JSX into efficient DOM operations at build time via a Vite plugin, uses proxy-based stores for state management, and employs event delegation for all user interactions. There is no virtual DOM — the Vite plugin analyzes your JSX templates and generates surgical DOM patches that update only the elements that depend on changed state.
Gea introduces no new programming concepts. There are no signals, no hooks, no dependency arrays, and no framework-specific primitives. Stores are classes with state and methods. Components are classes with a template() method or plain functions. Computed values are getters. The compile-time Vite plugin is the only "magic" — it analyzes ordinary JavaScript and wires up reactivity invisibly, so you write regular OOP/functional code that is fully reactive under the hood.
Read reference.md in this skill directory for the full API surface and detailed examples.
Core Concepts
Stores
A Store holds shared application state. Extend the Store class, declare reactive properties as class fields, and add methods that mutate them. The store instance is wrapped in a deep Proxy that tracks every property change and batches notifications via queueMicrotask.
import { Store } from '@geajs/core'
class CounterStore extends Store {
count = 0
More from dashersw/gea
gea-ui-components
Guide for using @geajs/ui — a Tailwind-styled, Zag.js-powered component library for the Gea framework. Use when building UIs with @geajs/ui components like Button, Select, Dialog, Tabs, Toast, or any pre-built component from the library.
55react-to-gea-migration
Step-by-step guide for migrating React applications to Gea — covering project setup, component conversion, state management, routing, styling, and known pitfalls. Use when converting an existing React codebase to Gea or when advising on migration strategy.
23playground-browser-bundles
Rebuild the website playground browser bundles after changing @geajs/core or @geajs/vite-plugin source. Use when building browser bundles, syncing the playground, or committing changes that affect the playground preview.
18js-framework-benchmark-report
Rebuild the local js-framework-benchmark HTML report using the curated framework set for this repo, and avoid polluting the report with every framework in webdriver-ts/results. Use when the user asks to update the benchmark report, refresh webdriver-ts-results, regenerate the HTML results page, or compare Gea against vanilla, solid, vue, and react.
3