Show HN: Base-GPUI: A GPUI port of Base UI headless components

Posted by autodidacc 4 days ago

Counter10Comment10OpenOriginal

Comments

Comment by yencabulator 2 days ago

This is interesting, but isn't it kinda scary to write a lot of code on top of GPUI that's effectively only serving Zed?

https://news.ycombinator.com/item?id=47003569

Comment by autodidacc 2 days ago

you're not wrong, but honestly this didn't come in mind when I chose to make this. I just really liked the API surface of gpui, base-ui, and wanted to make something that I could use for myself, and that other people might find helpful

there is also a small growing circle of people interested in maintaining and extending gpui from what I see, which is nice!

Comment by yencabulator 2 days ago

Don't get me wrong, I love the idea of having this, in Rust, in a form where the hierarchy of nesting is type-enforced instead of `Node` or `Element` everywhere.

I really do wish GPUI grew to a level where it had more users than just Zed, and an independent existence, but the Zed people sort of explicitly warned everyone to not rely on that to work out well, and that only Zed-relevant features would get merged.

Comment by autodidacc 2 days ago

Yeah i get ya...

In any case, I will continue spreading the good word of gpui, hopefully more people try it out

Comment by jauntywundrkind 4 days ago

Wait, what?! These examples run in the browser? This rust library is atop GPUI which is already well used for native apps, but outputs primarily / only (I'd guess only?) web apps? And they are real web apps, with html, unlike the Flutter abomination?

This is sick. This is so rad, heck yes.

Comment by autodidacc 4 days ago

Yep! GPUI added WASM compilation targets in Feb!

https://github.com/zed-industries/zed/pull/50228

Someone also seems to have added mobile support too

https://github.com/itsbalamurali/gpui-mobile

Comment by tracker1 4 days ago

You might also find Yew, Leptos an Dioxus interresting... they're web UI frameworks for browser applications written in rust... with some options for native(-like) application targets.

Comment by jauntywundrkind 4 days ago

Oh definitely!

It's remarkable to me that this web toolkit is atop GPUI, which is a native app rust toolkit! We don't have a ton of cross native/web libraries, afaik! https://gpui.rs/

Flutter does both, but Flutter does it by being a giant canvas with its own drawing engine. It's awesome-sauce to see such a more harmonious path.

Different topic but I'd done a little playing around with trying to write a HTML front end that could drop in to opencode 's opentui library. The cross-modal UI is a fun idea to me!

Comment by autodidacc 4 days ago

as for compiling to HTML, it unfortunately renders in a HTML <canvas>, which was how Flutter rendered in the web :( but I can only hope it compiles to that in the future!

Comment by jauntywundrkind 4 days ago

Ahhhh shucks. The Base UI base made me think "oh they are basing this off of well known web componentry stuff, CSS systems, nice!".

Thanks, & mea culpa, my bad for jumping to conclusions.