The Uber Go Style Guide.
17.6k
Stars
1.8k
Forks
38
Open issues
30
Contributors
AI Analysis
The Uber Go Style Guide is a canonical reference documenting coding patterns, conventions, and best practices used in Go development at Uber. It serves Go developers and teams seeking to adopt consistent, production-tested conventions for larger codebases and is particularly valuable for organizations building systems at scale. General Go learners benefit, but the guide is most useful for teams adopting standardized practices rather than beginners learning the language fundamentals.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Uber's internal Go style guide, now a de-facto reference for the broader Go community
uber-go/guide is a documentation-only repository containing Uber's codified Go coding conventions and patterns. It targets Go developers — from individual contributors to engineering teams — who want opinionated, battle-tested guidance on idiomatic Go. Its broad adoption is evidenced by 17,585 stars, 16+ community translations into languages including Chinese, Korean, Japanese, Russian, and Arabic, and its frequent citation in Go onboarding materials and engineering blogs. It matters because the official Go documentation deliberately avoids strong opinions on many style questions, leaving a gap this guide fills with concrete, example-driven guidance.
Created in November 2018, the guide was initially Uber's internal coding standard made public. It has been incrementally updated since, evolving alongside Go language changes and community feedback. The translation ecosystem grew organically.
Growth was driven primarily by the Go community's appetite for authoritative, opinionated style guidance beyond gofmt and go vet. Uber's engineering brand lent credibility, and community-driven translations multiplied reach across non-English-speaking developer communities. The 17k+ stars accumulated steadily rather than via any single viral event. Slow but consistent weekly star additions (12 in the last 7 days as of evaluation date) confirm it remains in active circulation rather than declining.
The existence of 16+ third-party translations maintained by independent community contributors is a strong indirect signal of real-world adoption. The guide is widely referenced in Go engineering blog posts, onboarding documentation, and code review discussions. The Chinese translation repository (xxjwxc/uber_go_guide_cn) independently has tens of thousands of stars, corroborating demand. Direct production usage metrics are not tracked, but community footprint is substantial.
The repository appears to be a single Markdown document (style.md) with a Makefile likely used for linting or generating rendered output. There is no application code. Architecture is not applicable in a conventional sense.
not documented in README
Last push was April 15, 2026 — approximately 10 weeks before the evaluation date. This indicates active, ongoing maintenance. For a documentation repository, this cadence is healthy and suggests the guide is being kept current with Go ecosystem changes.
ADOPT IF: you are onboarding a Go team and need a well-reasoned, example-rich style reference to align code review standards without building one from scratch. AVOID IF: your team has already established a mature internal style guide and is looking for tooling rather than documentation. MONITOR IF: you follow Go language evolution closely — the guide's guidance on newer language features (generics, structured logging, etc.) may lag behind fast-moving areas.
Independent dimensions
Mainstream potential
4/10
Technical importance
6/10
Adoption evidence
8/10
- The guide reflects Uber's internal context, which may not map cleanly to smaller teams, different domain constraints, or organizations using different Go versions.
- Some recommendations may become outdated or contradict evolving official Go tooling guidance (e.g., go vet, staticcheck) without immediate correction.
- Community translations are maintained independently and may drift out of sync with the English source, creating inconsistency for non-English readers.
- The guide does not cover newer Go features comprehensively (e.g., post-1.18 generics patterns), and guidance gaps in fast-moving areas may go unfilled for extended periods.
- As a documentation-only project, it has no enforcement mechanism — teams that adopt it still require discipline or supplementary tooling to apply it consistently.
The guide will likely continue its slow, steady growth as a stable reference artifact. It is unlikely to see explosive growth but equally unlikely to become irrelevant given the Go community's lack of an official opinionated successor.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Makefile
- License
- Apache-2.0
- Last updated
- 3mo ago
- Created
- 93mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Top contributors
Similar repos
thoughtbot/guides
This is a comprehensive style guide and best-practices collection maintained by...
rubocop/ruby-style-guide
This is a community-driven Ruby coding style guide that documents best...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
17.6k | +22 | Makefile | 8/10 | 3mo ago |
|
|
9.6k | — | Ruby | 7/10 | 4w ago |
|
|
16.5k | — | — | 8/10 | 3w ago |
|
|
39.4k | — | HTML | 8/10 | 1mo ago |
|
|
7.6k | — | Go | 9/10 | 7mo ago |
|
|
15.6k | — | HTML | 8/10 | 2w ago |
Google's style guide is more prescriptive and institutionally focused on internal Google patterns. Uber's guide tends to be more accessible with side-by-side good/bad examples, which many developers find more actionable.
Effective Go is the canonical official resource but is deliberately not opinionated on many contested patterns and has not been substantially updated in years. Uber's guide fills the opinionated gap left by Effective Go.
Thoughtbot's guides cover multiple languages and frameworks with similar intent, but have no Go-specific coverage and serve a different (Rails-centric) community.
The Ruby style guide is analogous in purpose and community standing within the Ruby ecosystem. Both occupy the 'de-facto community reference' position in their respective languages.
Automated linters enforce subsets of style mechanically. The Uber guide complements rather than competes with linters — it covers patterns and reasoning that automated tools cannot enforce.