Want to make Badgr better? It’s open source, you can help.

Application Structure and Philosophy

Want to know more about Open Badges? Learn more here.

Badgr’s goal is to make it really easy for users to take advantage of the potential of verifiable digital credentials as issuers, recipients, consumers, or all three. Keep Badgr simple and easy to integrate with by building complex or specialized workflows in Connected Apps. The ability to use Badgr as the backbone for your own specialized application that awards or makes sense of Open Badges is supported by “Login with Badgr” identity endpoints and the full-featured Badgr API.

Badgr is split into a server-side and a client-side codebase.


Written in Python/Django.

View on Github

Written in TypeScript/Angular.

View on Github

The “pattern library” set of visual modules that make up the design is developed by Concentric Sky in a way that supports not only the core Badgr platform but also a range of connected services, including Concentric Sky’s own Badgr Network services like Badgr Pathways. CSky maintains the Badgr repositories and handles contributions from outside contributors. The code is licensed under the aGPL, which is a free copyleft license that ensures contributions to the project remain open.

Activity and Status


Top Goals for 2018 include:

  • Update visual consistency to use new Badgr Network pattern library, and improve consistency across detail views for core Open Badges objects
  • Internationalization with Angular’s built-in i18n framework
  • Improved WCAG Accessibility and testing against AA target metrics
  • Expanded support for Open Badges 2.0 optional metadata
  • Open Badges 2.0 Endorsements
  • Graphic editor for badges
  • Improved verification workflows for badge consumers/inspectors
  • One time use identifiers for recipients under the age of 13 and claim workflow.
  • Automated registration for OAuth application key & secret

Current Issues

We use badgr-server GitHub Issues as the discussion area for bugs and upcoming potential features to be added to Badgr. Issues tagged “good first issue” or “help wanted” are great candidates for outside developers to get started.

There is also a Badgr-ui issues list, but for any feature or bug that crosses the boundary between server-side and browser-side should be filed on the primary issues list on badgr-server. Only bugs that are UI-only should be filed on badgr-ui.

Contributing Code

Get your development environment set up

Especially if you do intend to contribute to the Badgr source code, you’ll find it useful to set up the system to run on your own device. See the Badgr Installation Guide to install Badgr-server and badgr-ui locally on your system.

Communication is Key

The Badgr team at Concentric Sky loves to be in touch with developers who are contributing to the Badgr Open Source product. Need help or want to understand how the ideas you have could fit with features others are developing? Come talk to us on the Badgr Chat Channel on Gitter. Comment on issues you would like to work on to help coordinate with others who are looking at the same issues.

Code Style

Badgr-server is written in Python with an attempt made to conform to PEP8 style guidelines. Line length up to 120 chars. PEP8 conformance is measured upon build within our continuous integration testing service Travis and will be reported about all commits made as pull requests.

Badgr-ui is written in TypeScript making heavy use of Angular conventions. It uses EditorConfig and TSLint to help developers adhere to a common pattern of writing code.

Branching Strategy


Stable release branch. Code is merged into this branch after a release.


Active development branch. Only code with passing tests will be committed to this branch. CSky merges into this branch regularly.


Concentric Sky will cut release branches from develop and make any final commits needed to prepare for a release build.

feature/* , bugfix/*

Short-lived, purpose-specific bugfix branches.

Concentric Sky will periodically push discrete features and bugfixes by branching off of develop and merging back into develop with completed code that fixes an issue. Outside contributors will not have direct access to push to the badgr-server and badgr-ui repositories, but for clarity are encouraged to use similar naming conventions for their branches.

Read more about this Gitflow workflow from its author.

Other Ways to Contribute

The first thing to know about contributing to Badgr, is to know that you don’t need to contribute code; there are many other types of activities that help open source software stay great and get greater. Improvements to documentation, maintaining issues, and helping with internationalization and translation are other great projects to work on. Helping the community communicate and stay organized is invaluable.

Submit issues

Did you come here because you found a bug in how Badgr behaves? Let us help you describe it accurately, and then we can work together to make sure it gets fixed. When you open a new issue, you’ll get a prefilled template where you can enter the following information:

  • System information and context:
    • Operating system you are using:
    • Browser & version:
    • URL of the page where you encountered this issue:
  • Description of issue, including any error messages:

If it helps, you can also add a screenshot or add a file

Earn a badge for the first bug report you submit that helps us work out an outstanding issue. See the Badgr Bug Reporter badge for details.

File a new issue