This is not a good example to follow, it's overly complicated - pkg/ nobody should use that in new projects, it's antiquated from before internal/ existed - internal/ 99% of projects should NOT use this/don't need to hide stuff - cmd/server/ there is no point for a single binary Read more details on my blog post https://laurentsv.com/blog/2024/10/19/no-nonsense-go-package-layout.html