api/ -- OpenAPI/Swagger specs, JSON schema files, protocol definition files. assets/ -- Other assets to go along with your repository (images, logos, etc). build/ -- Packaging and Continuous Integration. cmd/ -- Main applications for this project. configs/ -- Configuration file templates or default configs. deployments/ -- IaaS, PaaS, system and container orchestration deployment configurations and templates (docker-compose, kubernetes/helm, mesos, terraform, bosh). docs/ -- Design and user documents (in addition to your godoc generated documentation). examples/ -- Examples for your applications and/or public libraries. githooks/ -- Git hooks. init/ -- System init (systemd, upstart, sysv) and process manager/supervisor (runit, supervisord) configs. internal/ -- Private application and library code. This is the code you don't want others importing in their applications or libraries. |-- app/ -- application code can go in the `/internal/app` directory |-- pkg/ -- the code shared by those apps in the `/internal/pkg` directory pkg/ -- Library code that's ok to use by external applications (e.g., `/pkg/mypubliclib`). Other projects will import these libraries expecting them to work, so think twice before you put something here :-) scripts/ -- Scripts to perform various build, install, analysis, etc operations. test/ -- Additional external test apps and test data. third_party/ -- External helper tools, forked code and other 3rd party utilities (e.g., Swagger UI). tools/ -- Supporting tools for this project. Note that these tools can import code from the `/pkg` and /internal directories. vendor/ -- Application dependencies (managed manually or by your favorite dependency management tool like dep). web/ -- Web application specific components: static web assets, server side templates and SPAs. website/ -- This is the place to put your project's website dapopta if you are not using Github pages. .gitignore -- gitignore LICENSE.md -- LICENSE Makefile -- call scripts from `/scripts` README.md -- README