Shields badge specification, website and default API server
JavaScript HTML Makefile
Latest commit e8988a9 Mar 27, 2017 @paulmelnikow paulmelnikow Clean lint from #1275
Failed to load latest commit information.
lib fix default value for githubUserTokens Mar 27, 2017
logo Add bitHound integration. Dec 30, 2015
public Ensure that logo.svg is at the root Feb 5, 2017
spec Fix Markdown formatting error Apr 16, 2015
templates Pre-compress badge templates with SVGO Feb 25, 2017
test Disallow variable redeclaration Mar 27, 2017
.buildpacks Node engine version information. Deployment files. Jan 3, 2014
.dockerignore Fixed Dockerfile and improved doc regarding `secret.json`. Aug 18, 2016
.editorconfig .editorconfig file to help all contributers to align to a common proj… Nov 5, 2015
.eslintrc.yml Disallow variable redeclaration Mar 27, 2017
.gitignore Contain all private files in private/ Feb 5, 2017
.travis.yml Upgrade to node 6 Jun 12, 2016
CNAME CNAME for Feb 24, 2014 Mention the need to minimize .svg images Jan 24, 2017
Dockerfile Fixed Dockerfile and improved doc regarding `secret.json`. Aug 18, 2016 add format documentation links Mar 27, 2017 Files related to the switch to the shields repo. Feb 23, 2014
Makefile Add s2 server Feb 12, 2017 Add as a standard-compliant service Mar 27, 2017
coverage.svg New coverage badge Jun 6, 2015
favicon.png favicon.png recompress with zopflipng losslessly Mar 12, 2016
gh-badge.js Organize local modules in lib Mar 26, 2017
index.html Disambiguate provider vs package: Package Control Mar 27, 2017
logo.svg Ensure that logo.svg is at the root Feb 5, 2017
package.json Organize local modules in lib Mar 26, 2017
server.js Clean lint from #1275 Mar 27, 2017
try.html Reduce page jumping while all the badges are loading Mar 27, 2017

Gratipay npm version build status

An image server for legible and concise information. Our Homepage | Twitter

Make your own badges here! (Quick guide:

Solving the problem

Many GitHub repositories sport badges for things like:

Travis CI

(build status)

Travis CI badge

(dependency checks)

Gemnasium badge
Code Climate

(static analysis)

Code Climate badge

(released gem version)

RubyGems badge

As you can see from the zoomed 400% versions of these badges above, nobody is (really) using the same badge file and at normal size, they're hardly legible. Worst of all, they're completely inconsistent. The information provided isn't of the same kind on each badge. The context is blurry, which doesn't make for a straightforward understanding of how these badges are relevant to the project they're attached to and what information they provide.

The Shields solution

As you can see below, without increasing the footprint of these badges, I've tried to increase legibility and coherence, removing useless text to decrease the horizontal length in the (likely) scenario that more of these badge thingies crop up on READMEs all across the land.

Badge design

This badge design corresponds to an old and now deprecated version which has since been replaced by beautiful and scalable SVG versions that can be found on


What kind of metadata can you convey using badges?

  • test build status: build | failing
  • code coverage percentage: coverage | 80%
  • stable release version: version | 1.2.3
  • package manager release: gem | 1.2.3
  • status of third-party dependencies: dependencies | out-of-date
  • static code analysis GPA: code climate | 3.8
  • SemVer version observance: semver | 2.0.0
  • amount of Gratipay donations per week: tips | $2/week

Services using the Shields standard


All assets and code are under the CC0 LICENSE and in the public domain unless specified otherwise.

The assets in logo/ are trademarks of their respective companies and are under their terms and license.