Vango Documentation
Vango is a server-driven web framework for Go. Components run on the server, UI updates flow as binary patches over WebSocket, and the browser stays thin by default.
This documentation turns the Vango developer guide into an app-builder reference you can read in sequence.
What Vango optimizes for
full-stack Go apps
server-owned UI state
SPA-feeling navigation without a heavy client runtime
structured async work instead of ad hoc goroutines
deploy-safe persistence and generated tooling
AI-friendly code generation and refactoring
The core model
Vango has a strict ownership model:
the server owns authoritative UI state
the session loop is the single reactive writer
vango.Setup allocates state and lifecycle
render stays pure and deterministic
setup.Resource owns async reads
setup.Action owns live async mutations
page Action owns route-bound progressive form posts
hooks, islands, and WASM are explicit client boundaries
If you work with that model, Vango apps stay predictable. If you fight it, patch correctness, persistence, and navigation behavior degrade quickly.
Read this in order
Getting Started
Mental Model
Components and Setup
State and Async Work
Building Views with el
Routing and APIs
Forms and Auth
Client Boundaries
Persistence and Deploys
Security and Operations
Testing and Tooling
API Reference
The non-negotiables
Use vango.Setup for new stateful components.
Allocate reactive primitives unconditionally in Setup.
Never allocate reactive primitives in render.
Never do blocking I/O on the session loop.
Never start manual goroutines in Setup, render, event handlers, OnMount , Effect , or OnChange .
Keep route handlers thin and render-only.
Never call ctx.Navigate(...) from a page handler or render closure.
Use RangeKeyed for dynamic lists.
Keep DOM ownership explicit.
Persist only deliberate, small durable state.
Commit generated routes and state artifacts.
Imports you should reach for first
1import "github.com/vango-go/vango"
2import "github.com/vango-go/vango/setup"
3import . "github.com/vango-go/vango/el"
These three packages are the blessed app-authoring surface for almost all normal Vango app code.
Next step
Start with Getting Started if you are new to the framework, or jump straight to Mental Model if you already have a Vango app and want the contracts that matter most.