Official Resources: go.dev, pkg.go.dev & Go Blog
Official Go documentation is split across a small set of trusted surfaces.
This cheatsheet maps each URL to the question it answers so you stop guessing whether to search blogs, GitHub, or Stack Overflow first.
How to Use This Cheatsheet
- Pin the three columns (Surface / Question / URL) in your team wiki.
- When upgrading Go, start at Release Notes, then Tools, then Runtime sections.
- When adopting a module, open pkg.go.dev at the exact version in
go.mod. - Treat non-go.dev tutorials as secondary until cross-checked against pkg.go.dev.
Primary Surfaces
| Surface | Question it answers | URL |
|---|---|---|
| go.dev home | Where do I download Go and find learning paths? | https://go.dev |
| Downloads | Which tarball or installer matches my OS/arch? | https://go.dev/dl/ |
| Language spec | Is this program valid Go? | https://go.dev/ref/spec |
| Effective Go | What is idiomatic Go style? | https://go.dev/doc/effective_go |
| Go Tour | How do I learn syntax interactively? | https://go.dev/tour/ |
| Playground | Can I share a minimal repro without setup? | https://go.dev/play/ |
| pkg.go.dev | What does this symbol do at version V? | https://pkg.go.dev |
| Go blog | Why did the team ship this change? | https://go.dev/blog |
| Release notes | What breaks or tightens in Go 1.N? | https://go.dev/doc/go1.N |
| Security | Where are security announcements? | https://go.dev/security |
| Vuln DB | Is my module graph affected by a CVE? | https://vuln.go.dev |
pkg.go.dev Quick Commands
| Task | Browser path | CLI equivalent |
|---|---|---|
| Stdlib package | pkg.go.dev/fmt | go doc fmt |
| Module at version | pkg.go.dev/mod/path@v1.2.3 | go doc mod/path@v1.2.3 |
| License check | Module page → Licenses tab | go list -m -json path@v1.2.3 |
| Importers graph | Module page → Imported By | go list -deps ./... locally |
| Deprecated APIs | Symbol badge on doc page | go vet ./... after upgrade |
Release & Tooling Docs
| Doc | When to open | SME action |
|---|---|---|
doc/go1.N | Planning minor bump | File upgrade ADR with flagged sections |
doc/godebug | Runtime behavior differs after deploy | Record rollback GODEBUG keys |
doc/modules | Module auth, retractions, workspaces | Align CI and proxy policy |
doc/telemetry | Telemetry opt-in debates | Decide org policy separately from code |
cmd/go | Script drift after upgrade | Update Makefile and GitHub Actions |
cmd/vet | New CI failures without compile errors | Enable or document exceptions |
Blog vs Release Notes
| Need | Read first | Why |
|---|---|---|
| Vet analyzer added | Release notes Tools section | Exact enablement and failure text |
| GC redesign narrative | Go blog + release notes Runtime | Blog explains trade-offs; notes list defaults |
| New stdlib package design | Blog announcement | Migration patterns and examples |
| Security fix scope | Security page + release notes | CVE linkage and affected versions |
| Proposal accepted | GitHub issue + blog if major | Issue has final decision text |
Proposal & Source Repos
| Resource | URL | Use |
|---|---|---|
| Main Go repo | https://github.com/golang/go | Issues, proposals, milestones |
| Proposal label query | https://github.com/golang/go/issues?q=label%3AProposal | Filter active design threads |
| Proposal process doc | https://go.dev/s/proposal | Steps to file and iterate |
| Gerrit (contributions) | https://go-review.googlesource.com | Review upstream CLs |
| x/* repos | https://github.com/orgs/golang/repositories | Subsystems split from main tree |
Local Mirror Commands
# Open docs for a symbol in terminal
go doc net/http.Server.Shutdown
# Download module docs module for offline machines (optional)
go install golang.org/x/tools/cmd/godoc@latest
# List module versions available
go list -m -versions example.com/lib
# Check vulnerability report for workspace
govulncheck ./...SME Reading Order (New Minor)
| Step | Resource | Time box |
|---|---|---|
| 1 | doc/go1.N Introduction + Ports | 10 min |
| 2 | Tools + go vet | 15 min |
| 3 | Runtime / GC / GODEBUG | 15 min |
| 4 | Stdlib packages you import | 20 min |
| 5 | Blog post if linked from notes | 10 min |
| 6 | Update internal cheatsheets | 30 min |
FAQs
Is go.dev different from golang.org?
go.dev is the current canonical domain.
Old golang.org links usually redirect; prefer go.dev in new docs.
Why pkg.go.dev instead of godoc.org?
pkg.go.dev supports module versions, licenses, and vulnerability context.
godoc.org is legacy for many workflows.
Can I trust third-party cheat sheets?
Use them for study only.
Verify symbols and behavior on pkg.go.dev at your pinned version.
Where do workspace (go.work) docs live?
See go.dev/ref/mod#workspaces linked from the modules documentation hub.
How often does the blog post versus release notes?
Major features often get blog posts each minor.
Patch releases may be notes-only; still read security advisories promptly.
What playground limits matter for repros?
Playground cannot open arbitrary network or all packages.
Keep repros stdlib-only or share module-based repros in issues instead.
How do I cite docs in ADRs?
Link to versioned pkg.go.dev URLs and the specific doc/go1.N anchor.
Include the date you reviewed them.
Does pkg.go.dev show build tags?
Yes for many packages.
Still confirm with local go doc when tags gate your build matrices.
Where is the telemetry policy documented?
On go.dev under documentation and the doc/telemetry page.
Distinct from application observability docs in your services.
How do official resources relate to golangci-lint docs?
golangci-lint wraps go vet and third-party analyzers.
When vet changes in release notes, update linter config docs too.
Related
- Community & Governance Basics - hands-on examples with these URLs
- Go Community & Long-Term Craft - long-term reading habits
- GopherCon, Meetups & Proposal Tracking - proposals workflow
- Future-Proofing: Proposals, Experiments & Roadmap - GOEXPERIMENT tracking
- Coding Standards & Doc Conventions for Teams - team doc rules
Stack versions: This page was written for Go 1.26.x (Green Tea GC default, go fix modernizers - verify patch at build), chi (latest - verify at build), gin (latest - verify at build), echo (latest - verify at build), google.golang.org/grpc (latest - verify at build), sigs.k8s.io/controller-runtime (latest - verify at build), kubebuilder (latest - verify at build), tinygo (latest - verify board targets at build), wazero (latest - verify at build), and golangci-lint (latest - verify linter set at build).