Native apps written in TypeScript and CSS
51 points by arbayi 3 hours ago | 12 comments

bertili 3 hours ago
Not apparent at first, but this is a TypeScript to c++ compiler at the core (https://github.com/geastack/compiler), with bindings for various platforms.
reply
zerr 3 hours ago
What do they use for graphics and audio?
reply
zero_shift 30 minutes ago
It's not clear at first glance, but given (1) the apps are written in JavaScript (2) the project has repos for different OS native bindings, my bet is some kind of embedded JavaScript engine that just calls through to OS native widets
reply
dashersw 2 hours ago
Each platform has its native bindings. For graphics, you write CSS and HTML canvas API as well as JSX, it renders to native components and their alignments, the canvas API is converted to native surfaces, whatever the platform uses.
reply
zerr 2 hours ago
I mean, is it OpenGL, Vulkan, Metal? etc...
reply
dashersw 2 minutes ago
It defers to platform defaults, Android compositor, UIKit/AppKit native views or CoreGraphics for the canvas on Apple platforms, GDI/GDI+ on Windows, whatever SDL2 chooses on Linux. If you have a Three.js app, it uses Metal on iOS and macOS, Direct3D 11 (open) and 12 (commercial license) on Windows and XBox.
reply
sublinear 3 hours ago
Ah this is for embedded apps. Pretty neat!
reply
dashersw 2 hours ago
It also supports iOS, macOS, Android, Windows, Linux, XBox for Three.js games, as well as (some) Node.js apps.
reply
jr3592 2 hours ago
could you throw a react project (WEB) at it and get a native macos project out of it?
reply
dashersw 9 minutes ago
It supports Gea frontends (https://geajs.com). Technically it could compile React with a plugin, but that is left to the community as an exercise :)
reply
nuk3 54 minutes ago
[dead]
reply
tarcon 2 hours ago
"The earlier implementation could not be driven to zero of them, because boxing was load-bearing in its emitter"

In the docs of the repo of their TS to C++ compiler. https://github.com/geastack/compiler

reply