Badgen Service
 
 
 
Go to file
Amio 978359074e Decode uri components in badge text 2019-06-10 20:10:31 +08:00
.github Create FUNDING.yml 2019-05-23 21:39:08 +08:00
components Cleanup legacy style files 2019-06-03 21:14:54 +08:00
endpoints Add favicon link to doc pages 2019-06-10 19:59:10 +08:00
libs Decode uri components in badge text 2019-06-10 20:10:31 +08:00
pages Cleanup legacy style files 2019-06-03 21:14:54 +08:00
static Cleanup legacy style files 2019-06-03 21:14:54 +08:00
test Extract match-router to standalone package 2019-06-09 18:41:03 +08:00
tools Serve docs with serve-marked 2019-06-01 18:16:40 +08:00
.babelrc Merge remote-tracking branch 'origin' into 2.0 2019-05-25 19:36:19 +08:00
.codeclimate.yml chore: add .codeclimate.yml 2018-08-13 16:58:11 +08:00
.dockerignore Add Dockerfile 2019-06-09 20:11:33 +08:00
.firebaserc Init firebase config 2019-06-10 19:07:04 +08:00
.gitignore Init firebase config 2019-06-10 19:07:04 +08:00
.travis.yml chore: add .travis.yml 2018-07-23 00:27:26 +08:00
Dockerfile Add Dockerfile 2019-06-09 20:11:33 +08:00
LICENSE.md chore: add license and improve readme (#89) 2018-08-08 10:48:25 +08:00
README.md Update readme 2019-06-10 19:39:39 +08:00
firebase.json Init firebase config 2019-06-10 19:07:04 +08:00
index.ts Prefer PORT env for auto listening 2019-06-10 01:18:07 +08:00
next.config.js Arrange assets folder 2019-06-05 14:47:05 +08:00
nodemon.json Add nodemon config 2019-06-07 20:49:58 +08:00
now-v2.json Add deploy config for Now v1 2019-06-07 10:20:52 +08:00
now.json Add deploy config for Now v1 2019-06-07 10:20:52 +08:00
package-lock.json Extract match-router to standalone package 2019-06-09 18:41:03 +08:00
package.json Extract match-router to standalone package 2019-06-09 18:41:03 +08:00
tsconfig.json Arrange assets folder 2019-06-05 14:47:05 +08:00

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 => better develop experience
  • Using badgen library to generate svg on the fly => fast & stateless
  • Hosted on Now, serving behind Now CDN => faster & reliable
  • Cache less than 4 minutes => fresh & hot
  • Two styles:
  • Two badge types
    • static badge - URL defined badge (subject, status, color)
    • live badge - show live status from 3rd party services
  • Builtin Icons

Developing

Contributors StandardJS Dependencies Maintainability Code Quality LGTM Alerts

We are using StandardJS style, make sure you have ESLint/Standard plugin on your editor and have autofix enabled.

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.

YOU MAY NOT NEED TO MAKE PULL REQUEST

You can create arbitrary live badge with RunKit's online IDE, or a https endpoint. Checkout docs: /runkit or /https.

Add Icon

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

Tracking Policy

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

Badgen do not collect any identifying information.

Contributors

Made with ❤️ by amio and contributors.