Native apps written in TypeScript and CSS
Posted by arbayi 7 hours ago
Comments
Comment by bertili 7 hours ago
Comment by cryptolobster 3 hours ago
Comment by jeswin 1 hour ago
One of the biggest complaints I get is about missing documentation on what TypeScript is not supported.
For example, the following is obviously impossible:
const a = eval("...something....");
or even: a: unknown, or a: any.
The rest of it is largely doable. But people want to see what's not supported. Otherwise it's not clear to them what to avoid.Comment by dashersw 1 hour ago
We also have limited support for `new Function("...")` via a small evaluator written in C++ that parses and runs the generated body. We mainly built this for Fastify's generated routing functions so it doesn't support classes, asynchronous, destructuring, etc, but conditionals, loops, variable declarations etc work.
There is no "eval" yet, but the same support shape could be added for it too, as the mechanism is already there.
The approaches and the limitations are documented here:
https://github.com/geastack/compiler/blob/main/docs/EVAL.md https://github.com/geastack/compiler/blob/main/docs/DYNAMIC-...
Comment by jeswin 1 hour ago
> so it doesn't support classes, asynchronous, destructuring
For users, this general category of problems (not knowing these edges) is the hardest. It's amplified if you pull libs from npm. One of the best ways to test compatibility is to test with non-trivial projects, or existing codebases. For example, one which has helped me a lot is trying to compile Microsoft's typescript-go compiler, after translating it from golang to TypeScript via a separately written tool. Large projects surface a ton of issues.
Comment by dashersw 47 minutes ago
And just to clarify, of course, this limitation is only for "eval", not regular TypeScript :)
Most libs from npm compile fine, including Hono, and we are now working on Fastify and MongoDB native driver.
We had an earlier prototype with a full-stack Gea-compiled app with dynamic fallbacks, but I believe we can do better.
And yes, of course, we tried compiling TypeScript compiler to C++ via Gea Stack, but had to deprioritize to get the release out the door.
Comment by jeswin 55 minutes ago
Comment by dashersw 40 minutes ago
Regular arrays are dense, but we keep a presence bit for every element so we can identify sparse arrays and differentiate holes from undefined's. And finally, there's no Error.stack support right now.
Comment by realysy 2 hours ago
Comment by dashersw 1 hour ago
Comment by hombre_fatal 1 hour ago
Comment by zerr 7 hours ago
Comment by trelliscoded 5 hours ago
Comment by dashersw 7 hours ago
Comment by zerr 6 hours ago
Comment by dashersw 5 hours ago
Comment by zero_shift 5 hours ago
Comment by dashersw 4 hours ago
Comment by sublinear 7 hours ago
Comment by dashersw 6 hours ago
Comment by jr3592 6 hours ago
Comment by letrix 6 hours ago
Comment by dashersw 5 hours ago
Comment by elendilm 4 hours ago
I will keep an eye on this for future use.
Comment by slopinthebag 5 hours ago
Comment by dashersw 4 hours ago
The code is on GitHub, for example for the first video that renders a 3D cube with CSS the code is at https://github.com/geastack/examples/tree/main/apps/css-3d-c.... It takes only a couple of CLI commands to get it running. For reference, I'm using a WaveShare ESP32-S3 AMOLED Touch 2.06" device here, but the same code renders on every target Gea compiles for.
Comment by dspillett 3 hours ago
[refusing to reword the "it is not X, it is Y" - I'm not an LLM but I don't care that much if you think I am!]
Comment by dashersw 2 hours ago
There's a broader philosophy of "firmware freedom" that we want to bring to the world. Practically, you should buy hardware for what it is, and run your own firmware on it. E-book readers and unlocked bootloaders in the Android world is doing a pretty good job at this, so we want to contribute to this movement by making the development of such solutions dead simple, both for humans and AI. Incidentally, TypeScript, JSX, and CSS happen to be the languages AI knows best.
So, it's an ambitious project with a real team behind it, with commercialization on the horizon.
Comment by slopinthebag 3 hours ago
how does it compile js to c++? js is so dynamic it makes me think it either compiles to some kind of bytecode or its a heavily restricted subset of the language.
Comment by dashersw 1 hour ago
So there's no byte code, and while not every single dynamic language feature has a corresponding static compilation, the base is pretty broad. So much so that Hono, the web framework, with all its dependencies, compile just fine.
Comment by nuk3 6 hours ago
Comment by tarcon 7 hours ago
In the docs of the repo of their TS to C++ compiler. https://github.com/geastack/compiler
Comment by odicjejcjej 4 hours ago
Comment by not_a_bot_4sho 51 minutes ago
The whole thing is like this
But to be fair, it's late 2026 so it's to be expected now that the vast majority of code and surrounding artifacts are AI generated. It's just a fact of life.
Comment by dashersw 37 minutes ago