TL;DR
Get business pricing on networking and server gear
- Business-only prices and quantity discounts
- Tax-exempt purchasing
- Multiple users, one account, clear invoices
In a Sept. 27, 2026 post, developer Iain Cambridge argues that Go import paths tied directly to a Git host can make changing providers expensive. He recommends custom domains that point to a repository and can be redirected if its hosting location changes.
Developer Iain Cambridge published guidance on September 27, 2026, urging Go teams to use custom domains in package import paths instead of naming GitHub or another host directly. The approach can let maintainers move a repository between hosting providers while keeping the path used by Go developers unchanged.
Go package paths commonly include a location from which the code can be fetched. Cambridge explains that a package hosted at a GitHub address may be imported using that same GitHub-based path, allowing Go tooling to fetch it through Git. He says this arrangement can also make it clear where users should report issues for open-source libraries.
The trade-off, according to Cambridge, is that an import path tied to a hosting provider can make a later move harder. If maintainers transfer a repository to another service but keep using the old path, users may continue fetching from the previous location; changing the path can require edits across dependent code.
Cambridge recommends using a domain controlled by the project or organization, such as go.iain.rocks, as the package path. In his example, that domain serves Go metadata pointing to a GitHub repository. If the repository moves, the maintainer can update the metadata while developers continue using the same import path.
Stable Imports During Hosting Moves
The proposal addresses a maintenance and migration concern for teams whose Go imports expose the address of their Git host. If that address is embedded in package paths across a codebase, a move may require coordinated updates by maintainers and consumers. A stable custom domain can separate the package’s public identity from the service currently storing its source.
Cambridge says he saw one company use GitLab, GitHub and Azure DevOps at the same time because changing code locations was too much work. He says the arrangement cost the company money through multiple hosting services. The post does not provide the company’s name, costs, or a measure of how widely this problem occurs, so the example illustrates his argument rather than establishing its prevalence.
For commercial teams with internal Go libraries, Cambridge argues that custom package domains can reduce dependence on a provider and make hosting choices easier to change. Whether the setup is worthwhile will depend on a team’s infrastructure, maintenance practices and need to control its import paths.
How Go Finds a Package
A Go import path identifies a package in source code. Cambridge describes the common arrangement in which that path also reflects the location of the Git repository, such as a GitHub-hosted project. This can make fetching a library straightforward, but it also ties the package’s published address to the provider.
With a custom domain, a web server can provide metadata for Go tooling that identifies the repository location. Cambridge’s example uses the go-import metadata tag to map a path on his domain to a GitHub repository. His supplied Nginx configuration serves that page when Go requests it and redirects ordinary browser visits to GitHub. The example is specific to his setup; teams would need to configure their own domain and hosting infrastructure.
“The main problem with using your git hosting location is that your code is now coupled to a hosting provider.”
— Iain Cambridge, in his September 27, 2026 post
Costs and Adoption Remain Unmeasured
The post does not quantify how often provider-specific import paths cause costly migrations, how many teams use custom domains, or what operating a custom domain costs. Cambridge’s account of a company using three hosting services is not accompanied by independent confirmation or financial figures.
It is also unclear how the recommendation applies to every project: the post makes a broad case for commercial Go teams but does not compare custom-domain setups with other migration strategies or discuss their maintenance requirements in detail.
Teams Can Adapt the Example
Cambridge includes sample Nginx and HTML configuration that readers can adapt to serve Go package metadata from a domain they control. The immediate next step for a team considering the approach would be to decide which package paths should remain stable, configure the domain and metadata, and confirm that Go tooling resolves the intended repository.
The post does not announce a formal rollout, adoption target, or follow-up milestone. Whether teams change their package paths in response is not yet known.
Key Questions
What is Iain Cambridge recommending?
He recommends using a custom domain in Go package import paths so the repository’s hosting provider can change without changing the path used by developers.
Why can a GitHub-based import path be a problem?
If an import path names GitHub directly, moving the repository to another provider may leave users fetching from the old location or require updates to code that uses the path.
How does the custom-domain method work?
A domain serves metadata, including the go-import tag, that tells Go where to fetch the package. A maintainer can update that mapping if the repository moves.
Did Cambridge quantify the cost to the company he describes?
No. He says the company operated across GitLab, GitHub and Azure DevOps because changing code locations was a large task, but gives no company name or cost figures.
Source: hn
Fall Picks
fall essentials
As an affiliate, we earn on qualifying purchases.
