Skip to main content
JavaScript build step optional

Build server-rendered Go interfaces with typed components.

Import pre-generated templ components, serve bundled assets, and add HTMX or Alpine.js only where the interface needs interaction.

Install Goshtoso
go get github.com/araihu/goshtoso@latest
deploy.templ Go → HTML
templ DeployPanel() {
  @badge.Badge(badge.Config{Label: "Live"})
  @toggle.Toggle(toggle.Config{Checked: true})
  @button.Button() { Deploy }
}

RENDERED BY GO

Ready to ship

Typed props in, accessible HTML out. No client app between them.

Goshtoso gopher mascot in Rio de Janeiro
Live

LIVE PLAYGROUND

Change the theme. Keep the behavior.

A short path from handler to interface.

Use the Go tools you already know. Goshtoso adds the UI layer without moving your application into a client runtime.

component.templ

Compose typed templates

Write typed .templ components that compile directly to Go.

hx-target="#main"

Return HTML fragments

Return rendered fragments from handlers and let HTMX swap plain HTML.

go build ./...

Ship one Go binary

Bundle runtime assets with no node_modules, CDN dependency, or client router.

templ generate

Publish static sites

Render complete pages at build time and serve them from any static host.

Optional modules

Extend the system, keep the Go workflow.

Companion modules add specialized capabilities without expanding Goshtoso's core dependency surface.

Interactive visualization

Goshtoso Charts

Typed static and interactive charts that inherit Goshtoso themes and keep their runtime assets local.

Loading Goshtoso Charts preview

Built with Goshtoso

Real Arai Hû products using Goshtoso across API publishing, monitoring, orchestration, and the organization site itself.