You can put your code anywhere you want and `go build` and `go run` will work just fine.
It's only third party libraries that have to be in GOPATH, which is exactly a library (well, package) search path.
ie if your code itself is split into modules, they won't work (as they are imported by their full path, not relatively), and anything in your vendor dir is also ignored when used outside of a GOPATH entry.
You can put your code anywhere you want and `go build` and `go run` will work just fine.
It's only third party libraries that have to be in GOPATH, which is exactly a library (well, package) search path.