Back

Show HN: Shirei, cross-platform GUI framework in native Go

26 points1 hourgithub.com
570165240031 seconds ago

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.

TazeTSchnitzel55 minutes ago

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.
rowanseymour3 minutes ago

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?

hsn91554 minutes ago

This is a publish-only mirror repo.

The commit history is the publish history, not the work history.

weare13818 minutes ago

Where's the actual repo then?

swiftcoder59 minutes ago

> 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

cosmic_cheese34 minutes ago

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.

hsn91555 minutes ago

It's the only thing that can scale to complicated UI

gen2brain12 minutes ago

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?

ahriad4 minutes ago

How it compares to Fyne?

iafan53 minutes ago

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?

roncesvalles32 minutes ago

Wails is another cross-platform GUI framework in Go: https://wails.io/