This post will describe common approaches to organizing Go code into packages and what I feel is the ideal directory structure for Go repositories. Before starting with this post, it may be useful to also read https://blog.golang.org/package-names first for context. A setup with package proliferationLet’s take an example application called gatekeeper. It may have a public client that other program