Less stack to operate
Use one Go-oriented build, test, review, and agent workflow instead of a separate frontend production line.
Bus GX And Bus UI
GX and Bus UI let Go-first teams build product frontends in the same Go production line as backend code, tests, and agentic maintenance. Instead of standing up a separate TypeScript and React stack, teams can keep UI logic, generated rendering, and reviewable changes inside the Go toolchain they already operate.
The pricing page shows the current Bus GX and Bus UI purchase options. Choose GX when you need the library foundation and will build your own components; choose Bus UI when you want the complete supported component package.
GX gives you .gx source files, typed component functions, generated
Go rendering, event callbacks, runtime bridges, and tests.
Bus UI uses GX to provide shared shells, forms, data display, evidence, assistant, terminal, and portal surfaces for Bus products. Together they keep frontend work close to the same static analysis, formatting, testing, and agent workflows used for the rest of the product.
func Notice(props NoticeProps) gx.Node {
return <section class={"notice " + props.Tone}>
<h2>{props.Title}</h2>
{props.Children}
</section>
}
GX is not a universal React replacement. It is a supported UI stack for products where Go is already the main engineering and automation language.
Use one Go-oriented build, test, review, and agent workflow instead of a separate frontend production line.
Existing Go-specialized agents can change backend, UI, rendering, and tests without switching language ecosystems.
Supported components can be fixed in the same codebase instead of waiting for an upstream dependency timeline.
Go types, formatting, static checks, and focused tests make generated UI changes easier to inspect.
The framework pages explain how components are written and rendered. The library pages explain the reusable components Bus products already share.
Author markup in Go packages, compile it into Go, render HTML, mount state, and test the output.
Use validated components for forms, shells, status, data, evidence, assistant, terminal, and portal pages.
Find focused pages and primary Go names for GX framework APIs and Bus UI components.
A .gx file stays in a Go package. Props, children, callbacks, control
flow, and reviewable generated Go stay close to the product presenter.
type NoticeProps struct {
Title string
Tone string `gx:",optional"`
Children []gx.Node
}
Shared components validate public props, keep stable CSS and data hooks, and
return explicit errors when a component cannot render safely. Use the public
pkg/ui facade first, composing typed nodes and rendering them at
the application boundary.
import (
gx "github.com/busdk/bus-gx/pkg/gx"
ui "github.com/busdk/bus-ui/pkg/ui"
)
node := ui.ResultPanel(ui.ResultPanelProps{
Title: "Evidence pack ready",
Status: ui.StatusSuccess,
Summary: "3 files prepared for review.",
})
html, err := gx.RenderHTML(node)
The framework docs split nodes, component functions, props and children, source files, generated Go, events, rendering, runtime mounting, effects, and testing into separate programmer-facing pages.
Work with gx.Node, fragments, text, and composed child trees.
Return nodes from Go functions and keep composition explicit.
Pass data through Go structs and nested content through child slots.
Author .gx files, format them, and compile them into Go.
Inspect the compiled roots that the package and tests actually execute.
Use typed callbacks and payloads for click, form, input, and drop handling.
Turn nodes into stable HTML and a normalized render tree.
Mount stateful trees and separate host interaction from pure rendering.
Route actions and resource requests through the host.
Assert snapshots, generated output, and mounted behavior from Go tests.
Render stable HTML on the server, mount stateful Go components where a host needs interaction, bridge through Go/WASM for browser-specific behavior, and embed shared shells inside Bus portal modules. Browser hosts still use normal web assets to load WASM; the application UI logic stays in Go.
Use deterministic HTML for documents, pages, snapshots, and tests.
Keep state across renders with explicit runtime diagnostics.
Pass host context, public config, assets, and provider origins safely.
Use Go/WASM helpers for host behavior that requires browser APIs.
The reference index maps the framework concepts and component families to their primary Go names and tutorial pages.