T templcn/ui
ComponentsValidation

Building forms with Go and templ

Create accessible, type-safe, and validated forms using templcn/ui components combined with Go's robust backend validation logic. Client-side form state remains optional, so native submissions and progressive enhancement stay the default.

Form Components
The essential building blocks for data entry.
InputText fields
LabelField titles
SelectDropdowns
CheckboxToggles
ButtonSubmissions
TextAreaMulti-line
Server-Side Handling
Process and validate submissions in Go.

Leverage Go's struct tags and standard library for robust form processing:

type SignupData struct {
    Email    string `json:"email" validate:"required,email"`
    Password string `json:"password" validate:"required,min=8"`
}

func HandleForm(w http.ResponseWriter, r *http.Request) {
    var data SignupData
    if err := json.NewDecoder(r.Body).Decode(&data); err != nil {
        http.Error(w, "Invalid request", http.StatusBadRequest)
        return
    }
    // Process validated data...
}