Badgen Service
 
 
 
Go to file
Amio d8cf14e2a2 docs: update index-api.md 2018-08-09 11:52:26 +08:00
libs docs: update index-api.md 2018-08-09 11:52:26 +08:00
test test: start some tests #42 2018-08-03 21:54:26 +08:00
.gitignore Initial commit 2018-06-26 13:53:03 +08:00
.travis.yml chore: add .travis.yml 2018-07-23 00:27:26 +08:00
LICENSE.md chore: add license and improve readme (#89) 2018-08-08 10:48:25 +08:00
README.md docs: fix and improve readme (#94) 2018-08-09 10:12:36 +08:00
now.json live-fns: request github with auth #68 2018-08-05 11:52:58 +08:00
package-lock.json chore: bump badgen to 2.2.2 2018-08-07 01:36:00 +08:00
package.json chore: update deploy scripts with auto alias 2018-08-07 21:38:37 +08:00
service.js chore: redirect badgen.now.sh's homepage to badgen.net 2018-08-05 20:22:19 +08:00

README.md

Badgen Service

Uptime last week Response time Dependencies License StandardJS Deploy to now

Home of badgen.net, fast badge generating service.

The Badgen Story

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

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)?". 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 (and earlier badge.fury.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 well structured and fun to develop - it is pretty easy to add badge(s) for new service(s).

At the beginning I was considering between 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! Base such service on Zeit's Now CDN is the perfect choice, we can stop thinking about caching and scalability issues. Badgen is the fastest possible badge generating service out there. It's fast, it's reliable, it's globally distributed and cached, because of Now.

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

Anatomy

  • Written in latest, vanilla JavaScript => no build process
  • 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
  • Three endpoints in one server
  • Two badge types
    • static badge - url defined badge (subject, status, color)
    • live badge - show live status from 3rd party services
  • Builtin Icons
    • Every icon is optimized with svgomg & reviewed by human eyes before its available online.

Developing

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 contirbutions. Basically, you need to add a file in libs/live-fns/[name-of-service].js 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.

Add icon

Badgen Server will auto load all svg files in libs/icons. Please make sure new icon is optimized using svgomg.

Deploy to Now

Badgen is stateless (not rely on db service). Deploy your own instance to Now with one single command:

now amio/badgen-service -e GH_TOKEN=''

GH_TOKEN is required by Now deployment, but it's optional for Badgen (mostly, except some github badges :P).

About

Made with ❤️ by Amio, built with from badgen.