Skip to content

GeaCompiler-First Reactive UI

Write ordinary JavaScript. Gea compiles the framework out of the hot path. No virtual DOM, no hooks, no signals — just your code, wired at build time.

Gea

Gea Can Compile To Almost Nothing

In a fresh Vite production hello-world build, Gea ships 121 B of brotli JavaScript. The equivalent Solid build ships 3.6 kb, Svelte ships 8.5 kb, Vue ships 20.7 kb, and React ships 50.8 kb.

FrameworkVersionRaw minified JSBrotli JSBrotli vs Gea
Gea1.3.0214 B121 B1.0x
Solid1.9.1210,196 B3,601 B29.8x
Svelte5.55.523,461 B8,537 B70.6x
Vue3.5.3358,174 B20,711 B171.2x
React19.2.5 / React DOM 19.2.5189,717 B50,816 B420.0x

Measured from fresh Vite 8.0.10 production apps, summing JavaScript assets only. Gea used the compiled component output; React, Vue, and Svelte used equivalent minimal hello-world components.

Stays Lean When The App Does Work

Hello world proves the compiler can disappear. Todo proves the runtime stays lean when the app actually does something.

In an equivalent interactive todo app with reactive state, input handling, filtering, item updates, and identical CSS, Gea ships 4.9 kb of brotli JavaScript. Solid ships 5.7 kb, Svelte ships 13.7 kb, Vue ships 22.6 kb, and React ships 51.5 kb.

FrameworkVersionMinified JS rawMinified JS brotliTotal raw JS+CSSTotal brotli JS+CSS
Gea1.3.015,364 B4,896 B18,075 B5,664 B
Solid1.9.1216,181 B5,721 B18,892 B6,485 B
Svelte5.55.538,812 B13,661 B41,523 B14,429 B
Vue3.5.3363,676 B22,585 B66,387 B23,411 B
React19.2.5 / React DOM 19.2.5192,330 B51,460 B195,041 B52,287 B

Measured from fresh Vite production builds in /tmp/gea-todo-framework-size-compare. CSS was identical across all builds: 2,711 B raw, 746 B brotli.

Released under the MIT License.