cross-platform is overstatement.
can I run it on Android? iOS?
no? then 99.999999% of real world users cannot access it. and if it is desktop oly, what is the point? it is no better than web.
I will admit that I don't like vibecoded things, but perhaps I must stomach that AI will be writing a lot in this brave new era.
However, when the commit history has stuff like
v0.5.0: native backends, software renderer, text input, IME
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Composer <composer@cursor.com>
Co-authored-by: Cursor Grok 4.5 <noreply@cursor.com>
377 files changed
Lines changed: 62423 additions & 2871 deletions
it's very hard. These “change the entire world” commits make for a history that is impractical to follow for a human, and therefore of little interest to me.I think a challenge for a vibe coded library to gain adoption is if there is a lack of human time investment in its creation, how do we know there will be investment in its maintenance?
This is a publish-only mirror repo.
The commit history is the publish history, not the work history.
Where's the actual repo then?
> Experience has shown us that an immediate mode API is the only sane way to program GUI applications
I wonder how long till they pivot away from this belief. I feel like everyone in UI goes through this phase as some point, but in the end it doesn't scale to truly complicated UI
Yeah. Based on my personal experience I think some kind of hybrid of old-school imperative retained and declarative retained, both with granular reactivity is probably the correct balance for "serious" high-utility desktop applications. Declarative approaches are great for smaller components but become a nightmare for anything much more complex than a relatively simple mobile app while imperative requires a lot of extra legwork at the component level, and as I understand (which may be incorrect) immediate mode makes certain types of optimization more difficult.
It's the only thing that can scale to complicated UI
What does "scale"even mean in UI context? 10 or 100 controls in app makes difference how exactly? Retained apps redraw when needed, they are idle most of the times. How redrawing every frame helps to scale?
How it compares to Fyne?
I understand the core is the layout engine and a component library? Does the rendering somehow benefit from GPU?
I recently had a good experience creating custom UI based on ebitengine — also a cross-platform Go engine. As it is a game engine, it has this built in game drawing loop, GPU-accelerated, with some cross-platform kb/mouse input handling. And this feels like a good platform to build the layout engine and components on top of. Have you ever considered this? Or how does your approach compare to that of ebitengine? Did you try (and do you position) your library to build custom UI for some underpowered computers such as Raspberry Pi?
Wails is another cross-platform GUI framework in Go: https://wails.io/