Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. A Machine Beat Me at Chess. I'm Still Rooting for AI(thenextmove.org)
    discuss
  2. Loment: A self-hosted systems language with multi-syntax front ends(github.com/fujojtop)
    1comments
  3. Porting Bhyve to Rust(github.com/tritondatacenter)
    1comments
  4. Snorkel AI triples valuation to $3.5B as demand for AI training data booms(techcrunch.com)
    1comments
  5. Anatomy of a (Postgres) Search Engine(planetscale.com)
    discuss
  6. Specs cut defects in AI-generated code from 148 to 23 across five models(arxiv.org)
    discuss
  7. President Lula Dataset(huggingface.co)
    discuss
  8. RGPU – Use a remote Nvidia GPU from PyTorch on a machine that has none(rgpu.dev)
    discuss
  9. Americans Are About to Lose Access to Prescriptions from Canada(wsj.com)
    discuss
  10. Critical Period in Brain Development(simplypsychology.org)
    discuss
  11. HarmBlock+ Safest Smartphone: Please Rotate Responsibly(paul.reviews)
    discuss
  12. Sadness and Suicidal Behavior Among Teenagers Is Declining, CDC Finds(nytimes.com)
    discuss
  13. Agent-browser equivalent for desktop and mobile apps(agent-device.dev)
    discuss
  14. Emergent Collusion in Long-Horizon LLM Agent Interaction(arxiv.org)
    discuss
  15. Show HN: SubRead: line up an audiobook with its eBook, in the browser(subread.space)
    discuss
  16. Ask HN: Is anyone charging extra their customers for credit card payments?
    2comments
  17. Show HN: Sbm: plain-text bookmarks synced across terminal, browser, Android(sbmsync.com)
    discuss
  18. Transit rewards (Waymo pays you to take the train)(waymo.com)
    discuss
  19. AgeKey – Privacy First Age Verification(agekey.org)
    discuss
  20. How to Create Your Own Personal AI Benchmark(every.to/also-true-for-humans)
    discuss
  21. Real-time dubbing of whatever your iPhone is playing(testflight.apple.com)
    3comments
  22. Measuring behavioral signals of LLM through psychometric profiling(arxiv.org)
    discuss
  23. Ella Langley's Choosin' Texas now longest-running number one in US chart history(bbc.com)
    discuss
  24. Joyas Voladoras (2012)(theamericanscholar.org)
    discuss
  25. Don't Trust. Verify. Offline, Sub-Millisecond Agent Verification with ANS(godaddy.com)
    discuss
  26. In 2025, 49 percent of adults under age 30 lived with a parent [pdf](federalreserve.gov)
    2comments
  27. Show HN: Making agent decisions better and traceable
    discuss
  28. The Business of Building God(strangeloopcanon.com)
    discuss
  29. US criticises Australia's proposed algorithm opt-out laws as 'censorship'(bbc.com)
    34comments
  30. Created a local AI to save data(github.com/just-not-google)
    discuss

Native apps written in TypeScript and CSS

92 pointsby 8h agogithub.com
34 comments
7h agoHN ↗

Ah this is for embedded apps. Pretty neat!

7h agoHN ↗

It also supports iOS, macOS, Android, Windows, Linux, XBox for Three.js games, as well as (some) Node.js apps.

6h agoHN ↗

could you throw a react project (WEB) at it and get a native macos project out of it?

5h agoHN ↗

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 :)

7h agoHN ↗

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.

5h agoHN ↗

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.

5h agoHN ↗

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

4h agoHN ↗

It compiles TypeScript statically to C++, there's no JS engine or VM running.

5h agoHN ↗

I see what you’re getting at, but let’s not pretend like “load-bearing” is something that AIs made up. It was a turn of phrase long before AIs became mainstream and people are still allowed to use it.

1h agoHN ↗

"geatsc: the GeaStack TypeScript-to-C++ compiler. A clean-room rewrite built on one rule — a statically typed value that reaches a dynamic carrier is a defect, not a fallback."

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.

47m agoHN ↗

Heh, we spent 6 months writing and rewriting the compiler a couple of times and were just too excited about the final architecture. Thank you, simplified.

5h agoHN ↗

the amount of ai used in this makes me think its pure vaporware. has anyone actually confirmed any of this is real or works?

3h agoHN ↗

The concern with a lot of projects that look largely AI made isn't that the current state works, but that this current state might be all that ever happens so people who try to use it end up relying on a dead project unless they maintain it themselves.

[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!]

2h agoHN ↗

I understand and appreciate the concern. We've been working on Gea Stack for about a year now. Started with https://geajs.com, then decided to enlarge the capabilities. The current capabilities have been under development for the past 6 months. We are in the process of forming a new company around Gea, and already collaborating with multiple embedded device vendors, development partners and customers who are interested in the technology.

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.

3h agoHN ↗

with a lot of ai projects it's often that the only thing that does work is the demo. and im not saying this to be rude, its an ambitious project and im afk so i cant test it myself.

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.

2h agoHN ↗

It took us 6 months to build the compiler. We analyze literally the hell out of the call graph. We started with strictly typed TS, which is trivial to compile. Then we added a dynamic fallback for projects that have "unknown"s and "any"s, then we had several architectural changes which allowed us to inspect those "claim"s. If you think about it, marking a variable "any" is a lazy claim. If it's ever used in one place and in one shape (akin to duck typing), you can create a static struct out of it...

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.

5h agoHN ↗

Nice.

I will keep an eye on this for future use.

2h agoHN ↗

How many memory does it cost for a simple hello world window? VS Qt, Tauri

1h agoHN ↗

As much as it would cost a native app. Say, on Mac, a plain AppKit app consumes 16-17 MB, gea consumes 18-20 MB, Qt consumes 25-35 (depending on whether you use QML or not) and Tauri consumes 58-60 MB. Tauri suffers a lot from all the WebKit dependencies, as its UI is not native but rather HTML rendered by WebKit.

1h agoHN ↗

Another data point: hello.c in GTK4 used over 100MB last I checked.

1h agoHN ↗

Author of tsonic.org here (which is very similar, but for Rust, C# and Mojo - WIP).

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.

1h agoHN ↗

Ah, amazing project! Congratulations. I was just writing under another thread that we support any and unknowns in two different ways. First, most any and unknowns are lazy programming—if you trace the call graph you can prove they have concrete types, or used only in one shape. If we can't prove a type narrows properly, we lower it to a boxed dynamic value carrier so it doesn't block compilation. Like JSON.parse—for this we have a special syntax, you can do JSON.parse(x) as T, to define the type, and if you don't it becomes a dynamic value whose price you pay only for that site / variable.

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-...

1h agoHN ↗

I've been working on this full-time since late 2025. Happy to share what I've learned - feel free to email me as well if you wish to.

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.

57m agoHN ↗

Thank you, would love to grab some time later next week!

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.

1h agoHN ↗

Also curious - how do you handle "number"? i32, i64, doubles, floats, i16 etc have very different performance characteristics. Also, things like sparse arrays, Error.stack etc. I haven't documented them in my project yet, but it's quite high up in the list of things people actually care about.

50m agoHN ↗

A plain number is a double, and then the compiler can prove it can be a 64-bit integer if the size is appropriate. The goal is to keep behavior parity with Node here. Loop counters etc stay double. But we also support custom types we introduced such as i32, which is crucial for embedded performance. And then of course we have proper typed arrays.

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.