In a previous version, I was using HTML, but it was written as strings. This allowed interaction with Go, but debugging was challenging since the Go compiler does not check the content inside strings, and no editor provides syntax highlighting for HTML embedded in a Go string.
With the current approach, the compiler can validate the written code, making it easier to use other Go code and enabling auto-completion in editors since everything is defined in Go.
Additionally, it eliminates the need to parse HTML, as every node state is represented in a Go-based virtual DOM, with only updates being pushed directly to the actual HTML nodes.
The key point here is that the UI can integrate background mechanisms written in Go, making them easy to use within the interface.
Hey, I’m the creator of go-app. What a surprise to come across this post on HN! I’m really happy to see you folks built something that fits your needs with it. Wishing you continued success with your product!
I find that font very beautiful and pleasant to look at.
That said, the licensing seems completely out of touch from reality to me. Today we are living in the cloud area, where data and and workspace are replicated across devices. When I read that you need multiple licences to have it on more than 2 personal devices, that sounds too much of a hassle to consider buying it.
Some people work their ass to make a living and even if ads are annoying, for a lot it is what's keep them moving forward.
Maybe Google makes money by selling other people content but they provide all the infrastructure to allow content creators to have their business first.
Bypassing the ads is hurting mainly content creators, not Google...
Hey folks, just find this post, I’m go-app’s creator. Looks like a bunch of the discussion is about the wasm size. When its gzip it is not that big. People are talking about 15MB, none of my projects reached that size, and they are usually pretty liked by my users.
For the syntax, it is a matter of tastes but things that people like about it is that its full Go and everything is discoverable from your editor with auto completion.
At the end what’s matter is that it’s good enough to build beautiful UI only by using Go and it’s ecosystem.
A couple of years ago, I went to work in SF area and I switched my dev environment for MacOS.
On my free time I love to do some apps and when I started to learn Swift and Cocoa, I got tired of dealing with same things with platform specific complicated stuff.
I decided to build by own GUI tool, written with the Go programming language.
A couple of iteration later (years), it became a WebAssembly library for building progressive web apps.
It is named go-app and you can see how it look like with this dogfooded documentation website: https://go-app.dev
If you like lofi music when working, or you are a fan of World of Warcraft game, there is those 2 others ones built with this package:
https://lofimusic.app and https://murlok.io
With the current approach, the compiler can validate the written code, making it easier to use other Go code and enabling auto-completion in editors since everything is defined in Go.
Additionally, it eliminates the need to parse HTML, as every node state is represented in a Go-based virtual DOM, with only updates being pushed directly to the actual HTML nodes.
The key point here is that the UI can integrate background mechanisms written in Go, making them easy to use within the interface.