Status
Maturity
gsx is alpha software and is used in production. The compiler, runtime, and toolchain work end to end, but language and API compatibility are not guaranteed before 1.0.
Shipped surfaces
Language and rendering
Typed authored signatures, components, children, and slots, control flow, pipelines, and attribute forwarding are available. Rendering has contextual escaping and explicit trust boundaries.
Toolchain
The CLI provides init, generate, fmt, and info commands, plus the development loop. Vite is an optional front door.
Editor support
The language server provides diagnostics, navigation, references, symbols, formatting, code actions, completion, completion documentation, and auto-imports.
Releases and versioning
gsx ships tagged releases, starting at v0.1.0. Tags follow semantic versioning as Go modules read it: before 1.0 a minor bump (v0.2.0) may change syntax or APIs and may require source migrations, and a patch bump (v0.1.1) does not. Each release is listed in the changelog.
Pin the runtime and the CLI to the same tag:
go get github.com/gsxhq/gsx@v0.1.0
go get -tool github.com/gsxhq/gsx/cmd/gsx@v0.1.0@latest resolves to the newest tag, which is what gsx init pins. To follow unreleased work use @main. The runtime and the CLI live in one module, so one tag covers both; gsx version prints the tag the binary was built from.
Releases require the Go version in go.mod (currently 1.26).
Durable boundaries
- Generation produces
.x.gofiles that are compiled with the application. - Find-references is project-scoped and excludes external package references.
- Pre-1.0 minor releases may require source migrations.
Roadmap
See Roadmap & Status for changing engineering details and planned work.