{
  "id": 10351794,
  "title": "Don't couple your Go code to GitHub",
  "url": "https://urgent.news/2026/09/27/dont-couple-your-go-code-to-github-10351794",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-27T16:50:58.000Z",
  "source": {
    "name": "Hacker News Best",
    "slug": "hacker-news-best",
    "url": "https://iain.rocks/blog/dont-couple-your-go-code-to-github"
  },
  "original_language": "en",
  "account": "Go programming language offers the advantage of namespace to fetch code, which is particularly useful for hosting Go code at a location like http://github.com/thetrueares/boneclone. This allows developers to import the code using the line \"import “github.com/thetrueares/boneclone” and fetch it using git. This method is simple and efficient for distributing Go libraries without the need for a centralized package management system. However, there are some drawbacks to this approach. One major issue is the coupling of your code to a specific hosting provider. For instance, if you decide to change your git hosting from GitHub to GitLab, you would need to update your code. This could lead to difficulties in moving to a different hosting provider due to the substantial effort required. Consequently, your code may end up being dependent on GitHub, which is a common practice in the Go community. This can be problematic as it may cost companies additional funds by necessitating the use of multiple hosting platforms simultaneously, as seen with a company that was using GitLab, GitHub, and Azure DevOps. To address this problem, it is recommended to use custom domains such as go.iain.rocks, go.uber.org, go.mongodb.org, etc. This allows you to easily change the location of the code simply by updating the domain points. For instance, go.iain.rocks/boneclone would still point to github.com/thetrueares/boneclone, and if you switch to GitLab, there would be no impact on end users as the install command remains the same. It is advisable for all commercial software development teams using Go to utilize custom domains for namespacing their internal libraries and packages to prevent unnecessary coupling.",
  "summary": "Article URL: https://iain.rocks/blog/dont-couple-your-go-code-to-github Comments URL: https://news.ycombinator.com/item?id=49868404 Points: 162 # Comments: 80",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 2,
    "also_reported_by": [
      {
        "outlet": "Lobsters",
        "title": "Don't couple your Go code to GitHub",
        "url": "https://urgent.news/2026/09/27/dont-couple-your-go-code-to-github",
        "published": "2026-09-27T20:17:42.000Z"
      }
    ]
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}