What started as a tool for Go modules just became something much bigger.
I launched GoBadge a few weeks ago. Three endpoints. Three data sources. All Go-specific.
It worked, but it had a ceiling. Every new badge type meant writing code, deploying, and waiting. Users couldn't badge-ify their own data without me building it for them.
So I flipped the model.
The Problem With Hardcoded Integrations
Every badge service starts the same way: pick the most popular data sources, build endpoints for each one, repeat. They've been doing it for years and still don't cover everything.
For GoBadge, the issue was clearer than most. The service was built for Go developers, but Go developers use npm, Docker, and GitHub just like everyone else. Being locked to Go-specific metrics meant the service was only useful in one context — your Go module's README.
I wanted GoBadge to be useful in any README, regardless of the stack.
The Solution: One Endpoint
Instead of building a new endpoint for every data source, I built one that works with all of them.
GoBadge's dynamic endpoint does one thing: fetch any JSON API and render the result as a badge.
https://gobadge.vercel.app/api/dynamic?url=https://api.github.com/repos/gin-gonic/gin&value=stargazers_count&label=Stars
That's it. One URL pattern replaces dozens of hardcoded endpoints.
What You Can Do With It
Single value from any API

Multiple values in one badge

Nested JSON with dot notation

Any color you want
?color=ff6600
What This Unlocked
The same endpoint handles every use case:
- GitHub — stars, forks, issues, license
- npm — weekly download counts
- PyPI — package downloads
- Docker Hub — pull counts
- Crates.io — version and downloads
- Any custom API — internal metrics, SaaS dashboards, anything
Before, adding a new data source meant editing code, redeploying, and updating docs. Now users just change the URL parameter.
Parameters
| Param | What it does |
|---|---|
url |
HTTPS JSON endpoint |
value |
Key to extract (repeat for multiple values, use dots for nested keys) |
label |
Text on the left side |
color |
Name or hex (e.g. ff6600) |
sep |
Separator between values |
What's Next
GoBadge is no longer a Go module tool. It's a general-purpose badge service that happens to have really good Go support.
Try it: https://gobadge.vercel.app

This is GoBadge v2. One badge service. Every data source.













