You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
amio 30e19d0a07 fix(github): assets download badge 5 years ago
.github Create FUNDING.yml 5 years ago
components fix: link to now.sh 5 years ago
endpoints fix(github): assets download badge 5 years ago
libs fix: typescript error 5 years ago
pages refactor: jsx => tsx (next.js) 5 years ago
static Bump dependencies 5 years ago
test Extract match-router to standalone package 5 years ago
tools Move static folder .gen => .meta 5 years ago
.babelrc Merge remote-tracking branch 'origin' into 2.0 5 years ago
.codeclimate.yml chore: add .codeclimate.yml 6 years ago
.dockerignore Add Dockerfile 5 years ago
.eslintignore docs: remove note on standard 5 years ago
.eslintrc.yml chore: standard => eslint 5 years ago
.firebaserc Simplify firebase config 5 years ago
.gitignore Move static folder .gen => .meta 5 years ago
.travis.yml chore: add .travis.yml 6 years ago
Dockerfile polish: specify node version in dockerfile 5 years ago
LICENSE.md chore: add license and improve readme (#89) 6 years ago
README.md docs: remove note on standard 5 years ago
cloudbuild.yaml chore: alter gcloud deploy target 5 years ago
firebase.json Simplify firebase config 5 years ago
index.ts Make standard happy 5 years ago
next-env.d.ts Update next to 9 5 years ago
next.config.js Update next to 9 5 years ago
nodemon.json Update next to 9 5 years ago
now-v2.json chore: refine now v2 routes 5 years ago
now.json Deploy to now as docker type 5 years ago
package-lock.json chore: bump dev dependencies 5 years ago
package.json chore: bump dev dependencies 5 years ago
server.tsconfig.json feat: add create-badgen-handler.ts 5 years ago
tsconfig.json feat: add create-badgen-handler.ts 5 years ago

README.md

Badgen Service

Home of badgen.net, fast badge generating service.

The Badgen Story

That's a service, that's a library, hooorey! - @tunnckoCore

Finally something to replace http://shields.io - @EGOIST

Epic work on Badgen! Porting the @dependabot badges over to it now. ️ - @greybaker

The badgen library was born as an exploration of "is it possible to generate badge SVG markup directly with JavaScript (without using pdfkit/canvas/puppeteer to measure text length)?". The result is better than I expected, Verdana (the de-facto font for badges) text width can be calculated precisely with a prebuilt char-width-table, even no need to worry about kerning 🤯

Then, logically, Badgen Service was born. I had a good time with shields.io, but as time goes by Shields gets slower, leaves more and more broken badges in READMEs. Badgen is trying to be a fast alternative with simplicity and flexibility. Its codebase is simple (2K LoCs vs Shields' 22K LoCs), well structured and fun to develop - it is pretty easy to add badge(s) for new service(s).

In the beginning, I was considering both Now and Google Cloud Functions. Then Zeit announced Now CDN on the same day as badgen.now.sh (the PoC of Badgen Service)'s reveal, what a fate! Cloudflare powered Now CDN is a perfect choice for such service, caching and scalability in simplicity. Badgen is the fastest possible badge generating service out there. It's fast, it's reliable, it's globally distributed and cached, thanks to Now.

At the time of badgen.now.sh's reveal, it had only four live badges as demonstrations. Since then, thanks to awesome people's help, Badgen keeps getting better at a fast pace. Welcome to join us, let's build the best badge service in the universe 🔥

Anatomy

  • Written in TypeScript
  • Using badgen library to generate svg on the fly
  • Two styles
  • Two badge types
    • static badge - URL defined badge (label, status, color)
    • live badge - Show live status from 3rd party services
  • Builtin Icons & External Icon Support
  • Docker image amio/badgen

Developing

Contributors Dependencies Maintainability Code Quality Docker image

start dev server

npm run dev

run with docker

docker run -p 3000:3000 amio/badgen

Add Live Badge

If a service you wish to have is still missing here, we welcome new contributions. Basically, you need to add a file in endpoints/[name-of-service].ts and that's it. Take /crates as an example:

To ensure that your addition is working correctly, start the development server with npm run dev.

NOTES

  • You can create live badge without touching badgen.net's code. Checkout docs for /runkit or /https.

  • The /runkit support would be super handy for prototyping a new live badge.

Add Icon

You can contribute icons to badgen-icons. Please make sure new icon is optimized using svgomg.

Tracking Policy

Badgen use Sentry to collect errors for improving service, use Google Analytics on doc pages (home, /github, /packagephobia, etc.) to understand overall usage.

Badgen do not collect any identifying information.

Contributors

Thanks to our contributors 🎉👏

Support Badgen

We are on OpenCollective https://opencollective.com/badgen

Support this project by donation, help Badgen continue and evolving!

[Become a backer]

Sponsors