[Proposal]: Course-level Certificate Builder for Open edX Studio
GitHub issue: https://github.com/openedx/platform-roadmap/issues/505
Overview
Certificate customization in Open edX platform requires developer intervention for even minor visual changes, creating delays and limiting institutions' ability to maintain brand consistency or respond to evolving requirements. The Course-level Certificate Builder introduces a visual, administrator-friendly interface for designing and configuring certificates – empowering course teams to create professional, customized certificates independently, while reducing technical debt by replacing custom code-level certificate implementations with a standardized, UI-driven approach – eliminating the need for per-institution developer maintenance.
Problem
Certificate management in Open edX platform presents significant operational and technical barriers for course authors and administrators. While certificates are a critical component of learner credentialing, the existing system lacks a user-friendly interface for designing, customizing, and managing certificate templates directly within the platform.
Key pain points include:
Limited customization capabilities: Course authors cannot easily create or modify certificate designs without developer intervention. Simple changes – such as updating logos, adjusting layouts, or modifying text positioning – require code-level template editing, creating bottlenecks and delays.
Lack of visual design tools: Unlike comparable platforms that provide visual certificate editors, Open edX platform offers no intuitive interface for template creation. Authors must work with underlying template code which increasing complexity and limiting adoption by non-technical users.
Inflexible dynamic field management: Inserting and formatting dynamic learner data (names, completion dates, grades) requires technical knowledge of template syntax. There is no standardized way to preview how these fields will render or to adjust their formatting without iterating through code changes.
Inefficient publishing workflow: Certificate updates are decoupled from the standard course publishing process, making version control and template management cumbersome. Authors lack visibility into template status (draft vs. published) and version history.
This creates a compounding maintenance burden across the ecosystem. Collectively, these constraints force institutions into maintaining custom, code-level certificate implementations – each requiring ongoing developer effort for updates and fixes. This accumulates significant technical debt across the ecosystem and increases the long-term maintenance overhead for every organization running Open edX. These limitations prevent Open edX from meeting the evolving credentialing needs of diverse educational institutions – from universities requiring formal academic certificates to corporate training programs needing branded completion credentials.
Use Cases
Template creation (Studio, Certificates page)
User Story | Acсeptance Criteria |
|---|---|
As a course author, I need to create a new course certificate template directly in Studio in order to design certificates without relying on the old functionality. |
|
As a course author, I need to choose page layout settings (size, orientation, margins) in order to control the certificate’s format. |
|
As a course author, I need to upload branded assets (logos, seals, signatures) in order to brand the certificate. |
|
As a course author, I need to drag and position elements on the certificate canvas in order to visually construct the layout. |
|
As a course author, I need to preview my certificate design in Studio in order to verify how it will look before publishing. |
|
Dynamic Fields and Course data
User Story | Acсeptance Criteria |
|---|---|
As a course author, I need to insert dynamic fields (learner name, course title, completion date, mode, grade) in order to personalize certificates automatically. |
|
As a course author, I need to define variable formatting (date format, font size, alignment) in order to ensure consistent visual style across certificates. |
|
Course-level certificate assignment
User Story | Acсeptance Criteria |
|---|---|
As a course author, I need to assign a template to my course in order to specify which design will be used. |
|
As a course author, I need to configure issuance conditions (passing score, completed subsections, graded components) in order to ensure certificates are only awarded when requirements are met. |
|
Certificate publishing workflow
User Story | Acсeptance Criteria |
|---|---|
As a course author, I need to publish certificate updates as part of course publishing in order to activate them for production use. |
|
As a course author, I need to maintain a draft version of my certificate template while keeping the published version active, in order to iterate on the design without affecting live learners. |
|
As a course author, I need the system to version my certificate templates in order to track changes and revert to older versions if needed. |
|
Learner experience
User Story | Acсeptance Criteria |
|---|---|
As a learner, I need the system to automatically generate a personalized certificate once I meet requirements in order to receive proof of completion without instructor approval. |
|
As a learner, I need the certificate to be downloadable in PDF format in order to store and share it easily. |
|
As a learner, I need the certificate to display clean, consistent formatting on all devices (mobile/web) in order to use it professionally. |
|
Proposed solution
The Course-level Certificate Builder introduces a comprehensive visual design and management system for course certificates within Open edX Studio, empowering course authors to create, customize, and publish professional certificate templates without requiring developer intervention.
Core capabilities:
Visual template builder: The Course-level Certificate Builder enables course authors to design certificate layouts directly in Studio. It is available on a existing Certificate page in Studio. Authors can position elements (text blocks, images, dynamic fields) visually, adjust page settings (size, orientation, margins), and see real-time previews of their designs. The system supports standard formats (A4, Letter) in both portrait and landscape orientations, with precise control over element placement and styling.
Asset management: Built-in course media storage allows authors to upload and manage branded assets – logos, institutional seals, background images, and authorized signatures. Management of available assets will be carried out through existing course-level storage.
Dynamic field integration: Authors can insert personalized learner data (name, course title, completion date, enrollment mode, grade) as dynamic field that automatically populate during certificate generation. The system provides formatting controls for dates, text alignment, and styling, with preview modes that show both placeholder fields and sample data rendering. Dynamic field values are resolved at the time of certificate generation. The system captures a snapshot of each field (learner name, course title, completion date, enrollment mode, grade) from the LMS at that moment. Once a certificate is generated, these values are fixed. If the underlying data changes after issuance (e.g., due to a name update or grade correction), the certificate must be regenerated to reflect the updated values.
Draft and publish workflow: Course Certificate templates are created and managed on the Certificate page in Studio. Templates follow a draft-to-publish lifecycle integrated with the existing course publishing process. Authors can maintain a single draft version per enrollment mode, while only one active template can be published to production at a time. All changes are automatically saved with versioning, allowing authors to track modifications and revert to previous versions if needed. On the Certificates page in Studio, administrators can select which published template should be used for a specific course.
Implementation plan
Milestone 1: MVP – Core Template Builder
1.1. Visual Template Editor
Implement a template editor on the existing Certificate page in Studio.
Support element types: text blocks, image placeholders, and dynamic field tokens.
Allow positioning and arrangement of elements.
Store element hierarchy, positions, dimensions, and styling metadata in a structured template schema (JSON).
1.2 Certificate Layout Settings
Provide predefined certificate size options: A4 and US Letter.
Support portrait and landscape orientation selection.
Store layout settings as part of the template metadata.
1.3 Asset Management
Use uploaded assets in a course-specific media store.
Allow placed images to be repositioned and resized within the template editor.
1.4 Dynamic Field Integration
Provide a palette of insertable dynamic fields: learner name, course title, completion date, enrollment mode, and grade.
Render dynamic fields as visually distinct tokens/placeholders within the editor.
Support formatting controls per field: date format, font size, font family, alignment, and color.
1.5 Real-Time Preview and PDF Generation
Generate a live in-browser preview, reflecting all layout settings and element positions.
Provide a toggle between design view (tokens visible) and sample data view (placeholder values rendered).
Generate a downloadable PDF preview on demand using sample data.
Ensure PDF output renders with full fidelity: embedded fonts, correctly scaled images, and precise element positioning.
Milestone 2: Workflow and Publishing Integration
2.1 Draft and Publish Lifecycle
Templates created in Milestone 1 remain in draft status until explicitly published.
Require confirmation or discard of unsaved changes before publishing.
2.2 Course-Level Template Assignment
Display all available templates on the Course Certificates page.
Enforce a single active certificate template per enrollment mode.
Prevent assignment of unpublished drafts.
Require course republishing when the assigned template changes.
Apply assigned template only to newly generated certificates (no retroactive changes).
2.3 Version Control
Assign an incremental version number to each published template snapshot.
Provide a version history view showing author, timestamp, and a summary of changes.
Allow authors to revert to any previous published version.
Ensure reversion does not alter certificates already generated under prior versions.
Long-term ownership and maintenance plans
Maintenance will be handled by the maintainers of the repositories where any potential changes are added.
Contact person
Anastasiia Abyzova (anastasiia.abyzova@raccoongang.com), Peter Kulko (peter.kulko@raccoongang.com)
Optional additions
Competitive Research
Moodle
Editor and Design Surface
Element-based composition: Certificates are built by adding individual elements from a predefined list. Each element is configured through a form-based interface where the author sets its properties (content, font, size, color, position).
Drag-and-drop repositioning: After adding all elements, a dedicated “Reposition elements” page renders the certificate background with all elements overlaid. Authors can drag and drop elements to adjust their positions visually. Clicking an element on this page opens a dialog for editing its properties without returning to the main configuration form.
X/Y coordinate positioning: Each element supports precise positioning via numeric X and Y coordinates (in millimeters from the top-left corner). A site-level setting controls whether coordinate fields are displayed. Authors can use either the drag-and-drop interface or manual coordinate entry, or a combination of both.
Reference point system: Each element has a configurable reference point (top-left, top-center, or top-right) that determines how X/Y coordinates are interpreted. This provides control over text alignment anchoring.
Page dimensions: Width, height, left margin, and right margin are configurable at the certificate level. The default dimensions correspond to A4, but custom sizes are supported.
LearnDash LMS
Editor and Design Surface
Background images: Certificate design starts with uploading a background image that serves as the visual template.
Page layout: Supports both landscape and portrait orientations with configurable page sizes and margins.
No pre-built templates: LearnDash does not include a library of certificate templates. Authors either design a background image externally (using tools such as Canva, Adobe Creative Cloud, or Envato Elements) and upload it, or build the certificate entirely within the block editor.
Typography and Styling
Custom font upload: Authors can upload custom font files via a dedicated Fonts section in the certificate settings. Uploaded fonts become available in the block editor’s font selector.
Block-level styling: Text formatting (font size, color, alignment, weight) is controlled through the standard Gutenberg block settings sidebar. Styling options are consistent with what the WordPress block editor provides natively.
Dynamic Content
Specific blocks: Four dedicated Gutenberg blocks are provided for dynamic certificate content:
Course Info: Course completion date, course title, course points.
User Data: Learner's first name, last name, and other user profile fields.
Group Info: Group-related data for group-based certificates.
Extensibility: Because the editor is standard Gutenberg, third-party WordPress plugins can add additional blocks and shortcodes (e.g., dynamic date/time, custom field plugins), extending the available dynamic content beyond what LearnDash provides natively.
Preview and Output
Live preview: The editor provides a live in-editor preview that uses real data from an associated course or quiz.
PDF generation: Certificates are generated as downloadable PDF files. The builder supports high-resolution output, watermarks, and signature images for print-ready results.
Backward compatibility: The builder is backward-compatible with existing legacy certificates (HTML/CSS-based), so adopting the new builder does not invalidate previously issued certificates.
Tutor LMS
Editor and Design Surface
Drag-and-drop visual editor: The builder provides a free-form canvas where elements can be dragged and placed anywhere without row or column constraints. Authors position text blocks, images, shapes, and dynamic fields by dragging them directly on the design surface.
Pre-built templates: A library of ready-made certificate templates is available as starting points. Authors can select a template from categorized collections and customize it, or start from a blank canvas.
10+ block widgets: The editor offers over ten element types that can be added to the certificate, including text blocks, images, shapes, illustrations, badges, stickers, and dynamic content placeholders.
Typography and Styling
Google Fonts integration: Access to over 1,000 Google Fonts directly from the editor, enabling a wide range of typographic choices without manual font installation.
Rich typography controls: Font size, weight, spacing, style, alignment, and color are all configurable per text element.
Advanced color picker: A full-featured color picker supports exact brand color matching, including presets, patterns, and custom color input.
Media and Visual Assets
Unsplash integration: A built-in connection to the Unsplash library allows authors to search and insert high-quality stock images directly within the editor.
Custom image upload: Authors can upload their own logos, signatures, seals, and background images via the WordPress media manager.
Built-in asset libraries: The editor includes 20+ pre-designed background illustrations, 50+ professional illustrations, and collections of shapes, badges, and stickers.
Image controls: Uploaded and library images can be resized, repositioned, and adjusted for opacity.
Dynamic Content
Shortcode-based dynamic fields: Learner-specific data (student name, course title, instructor name, completion date, course duration, grade) is inserted via shortcodes that automatically populate when the certificate is generated.
Verification elements: The builder supports adding instructor signatures, unique certificate verification IDs, and QR codes for certificate authenticity validation.
Editor Utilities
Layer management: A dedicated layer manager allows authors to control the z-order of overlapping elements, arranging which elements appear in front of or behind others.
Undo/redo: Full undo and redo support for all design changes.
Backdrop presets: Pre-configured background colors, patterns, and presets can be applied with a single click.
Multiple active templates: Authors can maintain multiple certificate templates simultaneously and assign different templates to different courses.