NHacker Next
- new
- past
- show
- ask
- show
- jobs
- submit
login
▲Show HN: Gova – The declarative GUI framework for Go (github.com)self.__VINEXT_RSC_CHUNKS__=self.__VINEXT_RSC_CHUNKS__||[];self.__VINEXT_RSC_CHUNKS__.push("2:I[\"aadde9aaef29\",[],\"default\",1]\n3:I[\"6e873226e03b\",[],\"Children\",1]\n5:I[\"bc2946a341c8\",[],\"LayoutSegmentProvider\",1]\n6:I[\"6e873226e03b\",[],\"Slot\",1]\n7:I[\"3506b3d116f7\",[],\"ErrorBoundary\",1]\n8:I[\"a9bbde40cf2d\",[],\"default\",1]\n9:I[\"3506b3d116f7\",[],\"NotFoundBoundary\",1]\na:\"$Sreact.suspense\"\n:HL[\"/assets/index-BLEkI_5r.css\",\"style\"]\n")n>
Rendered at 09:37:40 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
Apparently a major dependency is "Fyne", which does show some screenshots on their page:
https://fyne.io/
but yeah i went thru the repo and the site and saw like one screenshot of like one component. i really dont think a guy who really actually cared about delivering something like this would kneecap its own success with a lack of screenshots for a GUI solution. that's beyond funny.
as for fyne.io, actually awesome to work with. but holy god it's so ugly, and they've worked themselves into a corner with how they wrote it. theres pr's and discussion ideas to give some users control over something like padding but it'll be a very painful bandaid to pull off and redo. hardcoded vals everywhere.
ive been kind of sitting back and waiting to see if AI was going to help someone who has more inspiration/drive/smarts than me launch something into the spotlight for go gui, but so far the biggest go gui successes still land in the web-technologies stack (wails). i look over at rust and see something like dioxus and i get sad. as far as desktop gui world goes, theres a glaring hole: i actually think aggrid (web tables) is my personal like bare minimum of what im expecting out of a table component. i havent really seen anything that matches it on the native app component front.
If you make anything with a UI, even a GUI stack, always include screenshots. If you make a programming language or programming framework / library, always include code samples!
Really show us nerds the bits we want to see right away, screenshots / code or even a video (fully optional, unless its some type of terminal shell or something where a video would illuminate things!) would sell it better. Many of us are working and don't yet have time to pull down everything to run it locally.
Honestly, even if its not open source, if you're selling a product, SHOW THE PRODUCT not just descriptions of the product.
The second approach may have side effects.
Looking forward to a Golang declarative framework.
My advice to the author: invest in rich multi-window support early on. It's easy not to, but you always need it in the end, and it's painful to retrofit.
I feel like there's a great cross-platform UI story to be told with Go, since cross compiling is so easy.
I guess they changed the API and didn't update the code or picture.
https://github.com/mappu/miqt
With the compiler flags I tried, binary size was close to that of Gova:
https://github.com/mappu/miqt/issues/147#issuecomment-280033...
Qt bindings for Zig, using the same approach as MIQT:
https://github.com/rcalixte/libqt6zig
I think the right mental model is that Gova is to Fyne like DaisyUI is to TailwindCSS??
I took a look at your recommendation, "gova"; it seems to be just getting started—keep up the good work!
m.div([m.h1("title"), m.p(["click", m.a({href:"..."}, "me")])])
you can do (taken from the page)
g.VStack(g.Text(...), g.HStack(...).Spacing(g.SpaceMD))
some people will like this style, others not.