Small cores
The core module has no third-party dependencies, so importing it adds nothing to your go.sum.
ubgo is an ecosystem for building Go apps, in the spirit of the components Laravel ships for authentication, caching, logging and configuration. Every piece is its own Go module, so a service imports only what it uses, from sign-in to caching. The main libraries share one shape, a small core with adapters outside it and a shared test suite, so learning one teaches you the next.
go get github.com/ubgo/<name>
or press Ctrl K to jump to any library
Pick a library to see its real core and the modules that plug into it.
Batteries included
The pieces an app needs come out of the box: sign-in, SQL, caching, config, logging, jobs, health checks, GraphQL and HTML views, starters for the backend and the web app, and the tool that builds and releases it all. Each piece is its own module, so you take only what your app uses. Pick an app shape to see which modules it is built from.
Your app
SaaS backend
Interface
Run
Accounts and organizations, a typed SQL layer, caching, config, logs and telemetry, health checks and a clean shutdown, plus background jobs and cron.
Upcoming modules (workflow, brick, validator) are on the way and not public yet.
Counted from the public repos' go.mod files and contrib/ folders.
ubgo is not one framework you adopt whole. It is a set of Go modules that follow the same rules.
contrib/ folders, so an integration's dependencies stay out of your build until you import it. For example errx, logger and health.cachetest), cache-obj (objtest), cfgkit (cfgkittest), sqlb (sqlbtest): a backend counts only when its tests run the suite.New: Volt
ubgo libraries are the parts your code runs on. Volt is the layer on top: the volt tool scaffolds a CLI, runs the CI gate, builds for every platform and makes releases it checks after publishing, and its kit modules give a CLI the parts every CLI needs.
brew install khanakia/tap/volt3 · Your app
A CLI, a library or a service
2 · Volt tooling
voltkit →The Volt tool
Kit modules you import
Real link: voltkit's versioncmd module requires ubgo/buildinfo in its go.mod.
The ones most services reach for first.
Embeddable authentication with plugins for email, password, phone, OAuth, passkeys, 2FA, API keys, JWT and organizations, stored in your own Postgres, MySQL or SQLite; it can also be the OpenID Connect login for your other apps.
its own Go module, so its dependency is downloaded only when imported
One structured error type with stable identity, class, redactable fields, return traces and a wire codec.
Adapter-based, slog-native structured logging with sampling, redaction, OpenTelemetry and rotation.
The core cache interface with generics, single-flight Remember, a distributed locker and a shared conformance suite.
Typed config from env, .env, JSON, YAML, TOML, flags and secret stores into one validated struct.
Typed SQL builder with compile-checked columns and joins, Postgres and ClickHouse packages and a driver conformance suite.
Generates typed GraphQL client SDKs for Go and TypeScript with compile-checked field selection.
Thread-safe health and readiness registry with k8s-style probes, framework adapters and ready-made checkers.
Go crypto with safe defaults (AES-GCM, ChaCha20-Poly1305, argon2id, HMAC, Ed25519, key rotation), byte-compatible with crypt-ts.
Finds the sentences in your docs that stopped being true when the code they describe changed.
True for the libraries named under each one, as their READMEs state. Not a promise for every repo.
The core module has no third-party dependencies, so importing it adds nothing to your go.sum.
Integrations (frameworks, OpenTelemetry, drivers, secret stores) ship as separate modules, so you only download what you import.
A family's contract is a test suite that every backend runs, so backends behave the same.
Sign-in, sessions, two-factor, passkeys, OAuth and organizations, stored in your own database.
One cache interface with in-memory, Redis, Postgres, Memcached, tiered and cluster backends.
SQL building, JSON column types, IDs and locks.
Helpers and code generation for gqlgen and the ent ORM.
HTTP calls, health checks, graceful shutdown and build info.
Embeddable Go library for cron schedules, delayed and background jobs with retries, and multi-step workflows behind one Client interface, with swappable drivers (in-memory, SQL and Hatchet).
A component-based HTML render engine for Go built on html/template, with layouts, components, islands and server actions, and a 133-component UI kit.
Struct-native Go validator with a serializable IR; one set of rules validates in Go, exports to JSON Schema, and runs as a Standard-Schema TypeScript validator.