Hi Go community,
I’d like to share a small tool I built called gvu, designed to simplify vanity import paths for private Go modules.
The ProblemWhen setting up vanity import paths (e.g., mycompany.com/go/common instead of github.com/mycompany/common), Go relies on fetching the HTML go-import meta tag from your server (https://mycompany.com/go/common?go-get=1).
Traditionally, solving this for private modules involves running something like govanityurls behind Nginx, managing TLS certificates, and updating YAML configurations every time a team creates a new repo. While not difficult, it adds maintenance overhead and friction—especially across multiple teams or client projects.
What gvu doesgvu handles the vanity redirect/meta-tag layer as a lightweight hosted service, eliminating the need to self-host Nginx or manage certs manually:
You can also attach custom domains for free via CNAME verification.
Important Technical Details & Trade-offsNot a GOPROXY: gvu only serves the go-import HTML meta tag. It does not proxy, store, or cache your code. The actual git clone / go get authentication happens directly between your local machine/CI and your Git provider (GitHub, GitLab, etc.).
Hosted vs Self-hosted: Using gvu means trusting a third-party mapping service ("path X redirects to repo Y"). If your organization's policy requires 100% self-hosted infrastructure, standard govanityurls remains the better choice.
Pricing: Free for up to 5 routes anonymously (10 with a free account). Paid tiers exist for larger teams needing custom domains at scale.
You can install the CLI via :
Website: https://gomodvanityurls.com
I’d love to hear feedback from anyone managing private Go infrastructure—does this solve a real pain point for your workflow, or are there specific features/integrations you'd expect before adopting a tool like this?
Thanks,
Tony Bai