Golid is a simple, solid, Go-native frontend framework for WebAssembly applications.
It focuses on clarity, modularity, and reactivity — without the complexity of heavy Virtual DOM systems.
A minimal, Go-native frontend framework with signals, components, and WebAssembly — no Node.js, no npm, no JSX, no bundlers.
Golid (short for Go + Solid) is a lightweight frontend framework written entirely in Go, compiled to WebAssembly. It’s inspired by frameworks like Solid.js, but built for Go developers who want simplicity, control, and zero JS toolchain pain.
With Golid, you can build reactive web apps using:
- ✅ Pure Go
- ✅ Signals and components
- ✅ Tiny
.wasmbundles (TinyGo optional) - ✅ No Node.js, no npm, no React, no JSX, no bundlers
- Command line ""golid-dev" (plus auto-compile and hot-reload (client-side))
- Self-sufficient (no external tools needed (no external server, no bash, no Make))
-
Clone the repo:
git clone https://github.com/serge-hulne/Golid.git cd Golid -
Build the CLI:
cd cmd/devserver go build mv golid-dev ../.. -
Run the CLI (development server) :
./golid-dev
-
Watch the app in a browser:
http://localhost:8090
func CounterComponent() Node {
// Observable (represents the state of the app)
count := golid.NewSignal(0)
return Div(
Style("border: 1px solid orange; padding: 10px; margin: 10px;"),
// Bind text Element to the reactive count signal (observable)
golid.Bind(func() Node {
return Div(Text(fmt.Sprintf("Count = %d", count.Get())))
}),
// [+] Button element
Button(
Style("margin: 3px;"),
Text("+"),
golid.OnClick(func() {
count.Set(count.Get() + 1)
}),
),
// [-] Button element
Button(
Style("margin: 3px;"),
Text("-"),
golid.OnClick(func() {
count.Set(count.Get() - 1)
}),
),
)
}
-
No Node.js
-
No npm or yarn
-
No Parcel, Webpack, Vite, or other bundlers
-
No React, Vue, Svelte, Solid.js, or JSX
-
No go:generate or code generation
-
Just: ✅ Go
- [] Add routing system
- [] Add built-in UI components (e.g., Toggle, Input, Form)
- [] Provide example apps and templates
- [] Optional CSS helper system
Golid is open source under the GNU General Public License v3.