One TypeScript codebase, compiled to native binaries — from microcontrollers to macOS
GEA compiles one codebase — TypeScript, JSX and real CSS — ahead of time to native code for each target: MCU, embedded Linux, macOS and iOS. No invented language, no interpreter on the device, no per-platform rewrite.
A connected product gets built two or three times over
A product that spans an MCU, a Linux device and a phone is, in practice, three products — three toolchains, two or three languages, and a UI that rarely behaves the same across them.
The web settled the interface years ago: components, state, reactivity. That model stops at the browser. Cross into native code and the work starts over.
One model, compiled native on every surface
GEA takes that model — the components and stores the web made familiar — and compiles it to native code on each target, from a microcontroller to a Mac. No DSL in between, no interpreter on the device. One codebase reaches every surface without giving up the native binary.
Code in, native binaries out
geatsc is a compiler, not a bundler. Components, stores and host calls are lowered to native code per target — C++ on the MCU, native bindings on Apple, object code on embedded Linux.
App.ts compiles through geatsc to a native binary for each platform.The UI is real CSS — flexbox, keyframes, 3D transforms and more — rendered natively on the device, never in a browser.
No interpreter on the device. The binary is the app.
The principles GEA holds itself to
Six commitments that guide every design decision. Each is checkable: a feature that violates one does not ship.
GEA, next to the usual suspects
How GEA compares to the incumbents — the honest trade-offs, and the path off them.
- GEA vs Slint — the closest peer: MCU to mobile, but you write a
.slintDSL on a Rust host. - GEA vs Qt — broad and genuinely native, but it's C++/QML and the licensing weighs on you.
- GEA vs LVGL — the embedded-display standard, but it's C and it stops at the MCU.
- Full comparison & Why GEA — every incumbent, the honest trade-offs, and the path off them.
The stack, in three parts
The compiler, the layout engine and the canvas API each get a full write-up — how they work, and what they cost.