Framework g-sui - UI côté serveur en Go

VérifiéPrudence

Framework Go pour créer des interfaces utilisateur rendues côté serveur. Gère la génération HTML, la logique métier et l'état sur le serveur avec interactivité via actions serveur et patchs WebSocket.

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

Recommandé pour

Notre avis

Framework Go pour interfaces utilisateur rendues côté serveur, générant du HTML côté serveur et utilisant WebSocket pour les mises à jour en temps réel.

Points forts

  • Rendu côté serveur simplifiant la gestion d'état
  • Composants basés sur des chaînes de caractères facilitant la composition
  • Interactivité via actions serveur et WebSocket pour des réponses rapides
  • Documentation complète couvrant composants, données et déploiement

Limites

  • Limité à l'écosystème Go
  • Nécessite une approche différente pour les applications très interactives
  • Peut avoir une courbe d'apprentissage pour les développeurs habitués aux frameworks JavaScript
Quand l'utiliser

Pour construire des applications web en Go nécessitant un rendu côté serveur, des actions serveur et des mises à jour en temps réel.

Quand l'éviter

Pour des applications monopages lourdes côté client où un framework JavaScript serait plus adapté.

Analyse de sécurité

Prudence
Score qualité80/100

The skill allows Bash for development commands (go run, go test, build) and includes a deploy script that pushes git tags. While no malicious instructions are present, the use of Bash and a tag-pushing script could be misused if prompted maliciously, warranting caution.

Aucun point d'attention détecté

Exemples

Basic g-sui page
Create a g-sui application with a homepage that displays 'Hello World'.
Form with server action
Add a form in g-sui that submits a name and displays it back on the same page.

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