TL;DR
Get business pricing on monitors, keyboards and dev gear
- Business-only prices and quantity discounts
- Tax-exempt purchasing
- Multiple users, one account, clear invoices
In a Sept. 27, 2026, post, Iain Cambridge argues that Go projects can avoid tying package import paths to GitHub or another hosting provider by using custom domains. He says this can make migrations easier, and describes a company that paid to maintain repositories on three platforms after moving code proved too costly. The example is an individual report, not an independently verified industry-wide finding.
Iain Cambridge published guidance on Sept. 27 urging Go developers to use custom domains for package import paths, arguing that paths tied directly to GitHub or another host can make later migrations costly. The advice matters especially for teams maintaining internal Go libraries, whose import paths may be referenced across many projects.
Go package paths commonly include a location that tells the tool where to fetch the source. Cambridge’s example uses github.com/thetrueares/boneclone as both the repository location and the import path. If the repository moves to GitLab, projects using that path may continue fetching from the old location unless maintainers update the path and dependent code.
Cambridge recommends placing a project-specific path under a domain the team controls, such as go.iain.rocks/boneclone. A web server can return metadata for Go tools that points the path to the current repository, while sending ordinary browser visitors to the hosting site. Under this arrangement, a hosting migration can be handled by changing the domain’s metadata rather than asking package users to adopt a different import path.
His post includes an Nginx configuration and an HTML example using Go import and source metadata. The supplied configuration serves the metadata page when a request includes the go-get=1 query parameter and redirects other requests to GitHub. Cambridge presents the files as a template for projects setting up the approach.
Keeping Package Paths Stable
A stable import path can reduce the number of changes needed when an organization changes where it hosts code. Teams may otherwise need to update package references, documentation, build settings and downstream projects, depending on how their code is organized. Cambridge’s proposal gives maintainers control of the public address independently of the repository host.
Cambridge says he saw the hosting problem become expensive for a company using GitLab, GitHub and Azure DevOps at the same time. He attributes the arrangement to the effort involved in moving code and says the company paid for all three services. The post does not identify the company, quantify the expense or provide evidence that the custom-domain method would have prevented every cost. The account illustrates a possible operational burden, rather than establishing how common it is.
For commercial teams with internal libraries, the choice of import path can affect how easily they move infrastructure later. Cambridge argues such teams should use custom domains for their Go namespaces. That recommendation reflects his experience and judgment; the post does not compare the approach with other migration strategies.
How Go Finds Packages
In Cambridge’s explanation, a Go import path can encode the location from which the code is fetched. That makes a repository address convenient to share: developers can use it to install a library and find its source or report an issue. The same convenience creates a dependency on the host when the import path names that host directly.
A custom domain acts as a layer between the import path and the hosting service. The domain owner can publish metadata linking a package path to a repository URL, then change that destination if the repository moves. Cambridge’s example pairs go.iain.rocks/boneclone with a GitHub repository and includes source links for browsing files. His post focuses on this setup; it does not document a completed migration of Boneclone to another host.
“The main problem with using your git hosting location is that your code is now coupled to a hosting provider.”
— Iain Cambridge, in his Sept. 27, 2026, post
Migration Costs Need More Detail
The post does not name the company Cambridge says ran repositories across three providers, or give the cost, length of time or number of packages involved. It also does not establish how often Go teams face this problem. The described experience is an attributed anecdote, not a measured survey.
Cambridge provides configuration for one Nginx setup, but does not report testing it across different server configurations or explain operational details such as domain continuity if a team loses control of the domain. The post also does not set out how a migration would affect existing users who already rely on host-specific import paths. Those questions may matter when teams assess the work involved in adopting the method.
Teams Can Adapt the Example
Cambridge’s post leaves readers with a configuration and HTML metadata example they can adapt for their own package paths. Teams considering the approach would need to choose a domain, configure their web server and publish metadata that points each package path to its repository. The post does not announce a Go project change, a formal standard or a planned follow-up.
Whether Cambridge’s recommendation gains traction among Go teams remains unknown. Any broader assessment would need evidence about adoption, migration effort and the costs associated with host-specific paths.
Key Questions
What change does Iain Cambridge recommend?
He recommends using custom domains in Go package paths so project owners can change the repository host while preserving the path used by package consumers.
Why can a GitHub-based import path cause problems?
If a package path names GitHub directly and its repository moves, maintainers may need to update references and tell users about a new path. Cambridge argues that this can add migration work.
How does the custom-domain method work?
The domain serves metadata that tells Go where the repository is hosted. Cambridge’s example also redirects ordinary browser requests to GitHub while returning metadata to Go tool requests.
Did Cambridge report a measured industry-wide cost?
No. He describes one unnamed company that, according to his account, kept code on three hosting platforms because moving it was too burdensome. He gives no cost figures or broader survey data.
Source: hn
Fall Picks
fall essentials
As an affiliate, we earn on qualifying purchases.
