Archived in v1.1. This feature area was renamed and moved to Instructor Experiences as Credentials & Certificate Management.
Credentials & Certificates
Overview
Credentials & Certificates covers the issuance, display, and verification of course completion certificates and program credentials. When a learner completes a course (meeting grade thresholds), the platform generates a certificate; completing a program of courses generates a program credential.
The credentials service is a standalone Django microservice extracted from edx-platform to handle certificate generation, storage, and verification. Certificates are publicly shareable and verifiable via URL.
Current State (2026)
- Certificate generation: Triggered by grade thresholds; generated as signed HTML pages (not PDFs) with unique shareable URLs
- Program credentials: Issued by the
credentialsservice when all program courses are completed - Learner record:
frontend-app-learner-recordMFE shows all earned credentials and allows sharing - Themes:
credentials-themesprovides customizable certificate templates per organization - Verification: Public certificate URLs are verifiable; certificates contain learner name, course, date, grade
- Legacy PDF: Historical PDF certificate generation deprecated in favor of HTML certificates
Architecture
credentialsservice: Standalone Django app; receives signals fromedx-platformwhen courses are completed; manages credential issuance and sharingedx-platformintegration: LMS sends completion/grade signals;credentialslistens and issues certificates- Certificate rendering: HTML templates rendered server-side with learner data; not PDF (PDF generation was dropped)
- Sharing: Each certificate has a unique URL; learner can share on LinkedIn, email, etc.
- Program logic: Program completion tracked by
credentials; checks all required course certificates
Relevant Repositories
| Repository | Role in This Feature | Activity Level | Notes |
|---|---|---|---|
| openedx/credentials | Credentials service: issuance and management | High | Core service |
| openedx/frontend-app-learner-record | Learner record and credential viewer MFE | Medium | View/share credentials |
| openedx/credentials-themes | Certificate HTML templates and themes | Low | Per-org customization |
| openedx/openedx-platform | Grade thresholds, certificate signals, legacy cert generation | High | Signal source |
Recent Changes
- PDF certificate generation removed in favor of HTML certificates
- Program credential improvements in
credentialsservice
History
Origin
- Year introduced: ~2013 (certificates launched early in edX history)
- Initial implementation: Certificates generated directly in
edx-platform; PDF rendered via background Celery task - Context: Certificates were a key value proposition for MOOCs — social proof of completion that learners could share with employers
Key Milestones
| Year | Milestone | Teams / People Involved |
|---|---|---|
| ~2013 | Course completion certificates launched | Unknown |
| ~2015–2016 | Program credentials introduced | Unknown |
| ~2017–2018 | credentials service extracted from monolith | Unknown |
| ~2019–2020 | PDF certificates deprecated; HTML certificates become standard | Unknown |
People Who Shaped This Area
- Engineering: Unknown — open question for interview
- Product: Unknown — open question for interview
- Design: Unknown — open question for interview
Open Questions
- [ ] When were certificates first introduced and what form did they take?
- [ ] Why was the
credentialsservice extracted fromedx-platformvs. kept in the monolith? - [ ] What drove the decision to abandon PDF certificates in favor of HTML?
- [ ] How does certificate verification work technically — what prevents forgery?
- [ ] When were program credentials introduced and what was the product reasoning?
- [ ] How are certificate templates customized per institution/organization?