Last Updated: May 22, 2026
Go is opinionated about formatting and naming but deliberately quiet on folder structure. There's no mvc/-style scaffold, no framework-imposed tree, and the official guidance fits on a single page. That freedom is great until a project grows past a handful of files and the team starts arguing about where Order should live. This chapter walks through how real Go codebases evolve, what the language enforces (the internal/ rule), what it suggests (cmd/ for binaries), and what's pure convention (everything else).