Certo is an open source platform for open badges 3.0

Certo is an open source platform for open badges 3.0

Certo: An Open Source Platform for Open Badges 3.0

By Miki Lombardi

30 June, 2025


Certo is an open source platform for issuing, managing, and verifying credentials using the Open Badges 3.0 standard. It’s designed to support communities, nonprofits, workshops, and conferences that want to issue portable, standards-compliant credentials without relying on proprietary solutions.

The platform allows organizations to issue credentials as Open Badge 3.0, compatible with decentralized identity standards and interoperable across ecosystems thanks to a signed JSON-LD from the issuer platform.

GitHub Repository: https://github.com/schroedinger-hat/certo

Why Certo

As part of the Schrödinger Hat community, we frequently organize technical events, workshops, meetups, and conferences. Over time, we saw a recurring need: a simple and trustworthy way to issue certificates that recipients could store, verify, and reuse.

PDFs and badge images are not verifiable or portable. On the other hand, Open Badges 3.0 (OBv3), based on the W3C Verifiable Credentials model, offers a format that is digitally signed, machine-verifiable, and compatible with decentralized identity systems.

Existing platforms that support OBv3 are often closed-source or too complex to deploy for small organizations. Certo was created to solve this gap and it’s open source.

How we built it

Certo is built with a modern and modular stack:

Backend: Strapi (Hosted on Strapi Cloud)

Certo’s backend runs on Strapi Cloud, thanks to a partnership with Strapi. It handles content management and data relationships such as:

  • Profiles (recipients and issuers)
  • Achievements
  • Credentials
  • Events and issuing workflows

The API is used to issue credentials, store metadata, and expose verification endpoints. Media such as badge images are stored and served through Strapi’s file service.

Frontend: Nuxt 3 + Tailwind CSS + UnaUI

The frontend is built with Nuxt 3, styled using Tailwind CSS, and enhanced with UnaUI. The interface is minimal and responsive.

  • Admin users can create achievements, manage recipients, and issue badges.
  • Recipients can view and export their credentials.
  • Public verifiers can check the validity of a credential through a verification endpoint.

Deployment is handled via Netlify.

Standards and Format

Certo issues credentials following the Open Badges 3.0 specification. Credentials are also fully compliant with the W3C Verifiable Credentials JSON-LD data model.

Key elements include:

  • issuer: a profile that can be a URL or DID
  • credentialSubject: the recipient of the credential
  • achievement: linked metadata about the accomplishment
  • proof: a digital signature using Ed25519Signature2020

Each badge is cryptographically signed and includes a jws field, along with a public verificationMethod that can be resolved to verify authenticity.

Verification and Security

Each credential is signed using Ed25519, and the corresponding public key is hosted at a verifiable endpoint.

The platform supports:

  • proofPurpose: assertionMethod
  • Key discovery via URL or DID (support for did:web is being finalized)
  • Compatibility with JSON-LD signature suites

Credential verification is performed via the proof.jws field and public keys that are retrievable by compliant verifiers.

Future Roadmap

Certo is actively developed. Upcoming features include:

  • Public badge gallery and recipient dashboard
  • Federation and delegation of issuing rights
  • A documentation to enable everyone onboard easily the Certo project on their own cloud / Strapi

Contributing

Certo is open source and welcomes contributions. If you're interested in credentialing, verifiable data, decentralized identity, or educational tech, feel free to explore the GitHub repository, open issues, or suggest features.

Live Demo

You can try Certo now at:

https://certo.schroedinger-hat.org

It’s free to use, and we’re happy to support anyone looking to issue Open Badge 3.0 credentials, especially community groups, education projects, and nonprofit events.

Thanks

Special thanks to Strapi Cloud for supporting the backend infrastructure and helping us get this project off the ground.