Our review
Server-rendered UI framework for Go that generates all HTML, business logic, and state management on the server, with interactivity through server actions and WebSocket patches.
Strengths
- Fully server-side rendering simplifies deployment and SEO
- Components are Go functions returning HTML strings, keeping the stack simple
- Real-time updates via WebSocket without client-side JavaScript frameworks
- Built-in support for forms, data tables, and Excel export
Limitations
- Requires Go expertise and may feel unfamiliar to frontend developers
- Smaller ecosystem compared to JavaScript-based UI frameworks
- Server load can increase with frequent real-time updates
When building Go web applications that benefit from server-rendered UI with real-time interactivity and minimal client-side complexity.
If your application demands rich client-side interactivity or if you have a dedicated frontend team using JavaScript frameworks.
Security analysis
SafeThe skill describes a legitimate Go UI framework with no destructive or exfiltrating instructions. It uses allowed tools like Bash for development commands (go test, deploy), but only in a standard development context.
No concerns found
Examples
Create a new g-sui page at the route '/about' that displays a simple about section with a title and description, using the ui.Div and ui.HTML helpers.In a g-sui app, implement a form with a text input and a submit button. When submitted, the server action should return a thank-you message using ui.Alert.Using g-sui, set up a page that displays a live counter updated via WebSocket. The server should broadcast the current count every second.name: g-sui description: Server-rendered Go UI framework. Use when building g-sui applications, creating UI components, handling forms with server actions, using data tables, setting up routes, or implementing WebSocket patches. Triggered by "g-sui", "server-rendered UI", "Go UI framework", form handling, or data collation. allowed-tools: Read, Grep, Glob, Bash, Edit, Write
g-sui Framework
Server-rendered UI framework for Go. All HTML generation, business logic, and state management occur on the server. Interactivity achieved through server actions and WebSocket patches.
Quick Start
package main
import "github.com/michalCapo/g-sui/ui"
func main() {
app := ui.MakeApp("en")
app.Page("/", func(ctx *ui.Context) string {
return app.HTML("Home", "bg-gray-100",
ui.Div("p-8")(
ui.Div("text-2xl font-bold")("Hello World"),
),
)
})
app.Listen(":8080")
}
Documentation Index
| Topic | File | Description | |-------|------|-------------| | Core Concepts | CORE.md | Architecture, Context, Actions, Targets, server rendering | | UI Components | COMPONENTS.md | Buttons, inputs, forms, tables, alerts, cards, tabs, etc. | | Data Management | DATA.md | Data collation, search, sort, filter, pagination, Excel export | | Server Setup | SERVER.md | App initialization, routes, WebSocket, PWA, assets | | Best Practices | PATTERNS.md | Testing, validation, security, state management |
Core Philosophy
- Server-Centric Rendering - All HTML generated server-side as strings
- String-Based Components - Components are Go functions returning HTML strings
- Action-Based Interactivity - User interactions trigger server handlers returning HTML
- WebSocket-Enhanced - Real-time updates via
/__wsendpoint
Key Types
type Callable = func(*ui.Context) string // All handlers return HTML
type Attr struct { ID, Class, Value, OnClick, OnSubmit, ... } // HTML attributes
Common Imports
import "github.com/michalCapo/g-sui/ui"
Development Commands
go run examples/main.go # Run example app
go test ./... # Run all tests
go test ./ui/... # Test UI package
go build # Build project
./deploy # Create and push new version tag
Releases
To create a new version release:
./deploy
The deploy script automatically:
- Starts at version
v0.100if no tags exist - Increments the minor version by 1 (e.g.,
v0.100→v0.101→v0.102) - Ensures working tree is clean before tagging
- Creates an annotated git tag and pushes to remote
Version numbering: v0.XXX format, auto-incremented from v0.100.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.