Framework g-sui pour Go

VérifiéSûr

Framework UI côté serveur pour Go avec rendu HTML serveur, gestion d'état et interactivité via actions serveur et WebSocket. Idéal pour construire des applications web interactives avec logique métier centralisée.

Spar Skills Guide Bot
DeveloppementIntermédiaire
2002/06/2026
Claude Code
#go#server-rendered-ui#web-framework#server-actions

Recommandé pour

Notre avis

Framework Go pour UI rendu côté serveur avec actions et WebSocket.

Points forts

  • Génération HTML côté serveur simplifiée
  • Interaction via actions serveur et WebSocket
  • Composants réutilisables en Go

Limites

  • Nécessite une connaissance de Go et du rendu serveur
  • Écosystème moins vaste que les frameworks JS
  • Documentation partiellement référencée dans d'autres fichiers
Quand l'utiliser

Utilisez g-sui pour des applications Go nécessitant une UI dynamique sans lourdeur JavaScript.

Quand l'éviter

Préférez une SPA classique si vous avez besoin d'interactions très riches côté client.

Analyse de sécurité

Sûr
Score qualité80/100

The skill documents a Go UI framework with standard development commands (go run, go test, go build, a deploy script). No destructive, exfiltrating, or obfuscated actions are instructed.

Aucun point d'attention détecté

Exemples

Create a basic g-sui page
Create a g-sui page with a hello world component using the MakeApp and Page functions.
Implement a form with server action
Show me how to add a form in g-sui with a server action that handles submission.
Set up WebSocket real-time updates
How do I implement WebSocket patches in g-sui for real-time data updates?

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

  1. Server-Centric Rendering - All HTML generated server-side as strings
  2. String-Based Components - Components are Go functions returning HTML strings
  3. Action-Based Interactivity - User interactions trigger server handlers returning HTML
  4. WebSocket-Enhanced - Real-time updates via /__ws endpoint

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.100 if no tags exist
  • Increments the minor version by 1 (e.g., v0.100v0.101v0.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.

Skills similaires