How Learning Catalyst
Generates Courses in Minutes
A deep-dive into the AI pipeline, instructional design framework, and engineering decisions behind an e-learning authoring platform that reduces course production time by 99.5%.
About This Platform
This public version of Learning Catalyst demonstrates the platform's core architecture and capabilities. A production deployment of a similar system is used by over 160 registered users within one of the world's largest technology companies. Impact metrics shown below are based on that internal deployment and are provided as reference benchmarks — not yet measured on this public platform.
Measurable Outcomes
Reference metrics from the internal production deployment at a large technology company.
System Architecture
A full-stack React + tRPC + Node.js application with a parallel AI orchestration layer. The frontend and backend share end-to-end TypeScript types via tRPC, eliminating the DTO mapping layer entirely.
Parallel Generation Pipeline
Five AI services orchestrated in parallel to produce a complete course in under 4 minutes. The key innovation is firing the hero image simultaneously with the LLM content call, then parallelising all inline images and the Mermaid diagram.
Source Extraction
0–30s- PDF/DOCX/PPTX parsed server-side
- URL scraping with YouTube transcript extraction
- Multi-URL batch extraction (up to 10 URLs)
- Normalised to a single extractedText string
Course Structure
30–60s- LLM generates module outline and lesson titles
- Learning objectives aligned to Bloom's Taxonomy verbs
- Audience and job family context injected into prompt
- Validated JSON object drives all subsequent phases
Parallel Lesson Generation
60–180s- Batches of 3 lessons processed concurrently
- LLM content + hero image fire simultaneously
- 4 inline images + Mermaid diagram fire in parallel after blocks saved
- json_object format with prompt-driven schema (not json_schema strict)
Assessment + Flashcards
180–210s- Summative quiz with Bloom's level tagging per question
- Flashcard deck optimised for spaced repetition
- Both generated after lesson content is complete
SCORM Packaging
210–240s- SCORM 2004 manifest (imsmanifest.xml) serialised
- Each lesson rendered as self-contained HTML page
- Package zipped and uploaded to S3
- Signed download URL returned to client
Learning Science Framework
Every lesson follows Gagné's Nine Events of Instruction, with Bloom's Taxonomy for cognitive depth and Mayer's Multimedia Learning Principles for visual design.
| Gagné Event | Block Type | Implementation | Bloom's Level |
|---|---|---|---|
| 1. Gain attention | Text (hook) | Provocative headline + 2–3 sentence opening | — |
| 2. Inform objectives | Learning objectives | Auto-generated Bloom's verb-aligned objectives | All levels |
| 3. Stimulate recall | Callout | Colour-coded key insight card (tip/warning/info) | Remember |
| 4. Present content | Flip cards + Tabs | Active recall cards + multi-perspective tabbed content | Understand |
| 5. Provide guidance | Process stepper | Horizontal stepper with numbered, colour-coded steps | Apply |
| 6. Elicit performance | Checklist | Actionable takeaway checklist | Apply |
| 7. Provide feedback | Quiz (3 questions) | Mixed Bloom's levels with answer explanations | Analyse |
| 8. Assess performance | Summative quiz | Module-level assessment with score tracking | Evaluate |
| 9. Enhance retention | Flashcard deck | Spaced-repetition deck auto-generated from lesson | Remember |
Mayer's Multimedia Learning Principles are applied at the rendering layer: each AI image is positioned immediately adjacent to its related text block (spatial contiguity), and the hero image uses a gradient caption overlay rather than a separate caption element (temporal contiguity).
Technology Decisions
Every technology choice was made to maximise developer velocity, type safety, and deployment simplicity on a serverless runtime.
json_object over json_schema
The initial implementation used json_schema with strict: true and additionalProperties: false. This caused the model to return { type: 'text' } with no content — it interpreted the flat schema as requiring every field on every block type. Switching to json_object with a prompt-driven schema produced reliable, fully-populated output.
tRPC over REST + OpenAPI
tRPC eliminates the DTO mapping layer entirely. Drizzle ORM rows are returned directly from procedures, with Superjson handling Date serialisation. This removes an entire class of type-mismatch bugs and reduces the codebase by ~30% compared to an equivalent REST implementation.
Parallel image generation
The original sequential pipeline took ~66 seconds per lesson. Firing the hero image simultaneously with the LLM content call, then firing all 4 inline images and the Mermaid diagram in parallel after blocks are saved, reduced per-lesson time to ~22 seconds — a 3× improvement with no change to output quality.
Six-Agent Orchestration
Rather than a single LLM prompt, Learning Catalyst decomposes course creation into six specialised agents. Each has a single responsibility, communicates via typed interfaces, and can be independently tested and improved.
CourseOutline: { title, objectives[], modules[], contentStrategy }ModuleContent[]: { lessons[], interactiveElements[], pullItTogether }AssessmentItems[]: { question, options[], correctAnswer, bloomsLevel, rationale }ScenarioTree[]: { situation, choices[], consequences[], optimalPath }QAReport: { overallScore, grade, criteria[], findings[], fixInstructions[] }PackageFile: { zipBuffer, manifest, scoStructure, launchUrl }Psychometrics Framework
Every assessment item is governed by 5 Core Values ensuring validity, reliability, fairness, transparency, and defensibility — mirroring professional test development standards.
| Item Writing Rule | Description |
|---|---|
| Single correct answer | Only one option is unambiguously correct — no 'all of the above' |
| Clear stem | Question is complete and understandable without reading the options |
| No negative phrasing | Avoid 'Which is NOT...' or 'All EXCEPT...' |
| Homogeneous options | All options are the same type, length, and grammatical form |
| No absolute terms | Avoid 'always', 'never', 'all', 'none' |
| Plausible distractors | Wrong answers must be believable to someone who hasn't learned the material |
12-Criterion QA Rubric
Every generated course is automatically evaluated by Agent 5 (QA Reviewer) against a weighted rubric. Courses scoring below 70 trigger an auto-fix pipeline before delivery.
| # | Category | Criterion | Weight | Pass |
|---|---|---|---|---|
| 1 | Content | Source Content Coverage | 9/10 | ≥70 |
| 2 | Content | Factual Accuracy | 10/10 | ≥70 |
| 3 | Content | Progressive Structure (Gagné) | 8/10 | ≥70 |
| 4 | Content | Performance Objectives Quality | 8/10 | ≥70 |
| 5 | Assessment | Assessment Validity (Core Value 1) | 9/10 | ≥70 |
| 6 | Assessment | Scenario-Based Question Quality | 8/10 | ≥70 |
| 7 | Assessment | Item Writing Quality | 7/10 | ≥70 |
| 8 | Assessment | Blueprint Alignment & Coverage | 7/10 | ≥70 |
| 9 | ID | Learner Engagement | 6/10 | ≥70 |
| 10 | ID | Audience Appropriateness | 5/10 | ≥70 |
| 11 | Accessibility | Fairness & Bias (Core Value 5) | 5/10 | ≥70 |
| 12 | Accessibility | Clarity & Readability | 4/10 | ≥70 |
Source Grounding Validation
A programmatic (non-LLM) validation runs as part of the QA pipeline to independently verify that generated content is grounded in the source material.
Algorithm
- 1Extract key terms from source (capitalised phrases, ALL-CAPS, quoted terms)
- 2Filter generic terms ('introduction', 'overview', 'module')
- 3Rank by specificity — longer terms are more distinctive
- 4Sample top 30 terms for coverage check
- 5Case-insensitive substring match across all generated output
- 6Compute coverage percentage
≥ 70%Pass40–69%Flag for review< 40%Auto-fix triggeredtargetLanguage parameter flows from CourseWizard → tRPC procedure → LLM system prompt → all 7 block types → image prompt translation → SCORM manifest xml:lang attribute.Security Architecture
Defence-in-depth across authentication, authorisation, input validation, and storage.
| Layer | Mechanism | Implementation |
|---|---|---|
| Authentication | OAuth 2.0 (SSO) | JWT session tokens; secure httpOnly cookies |
| Authorisation | Role-based access control (RBAC) | super_admin, admin, user roles with graduated permissions |
| Input Sanitisation | Zod schema validation on all inputs | Prevents injection; enforces type safety at runtime |
| Data Isolation | Per-user project scoping | Users can only access their own courses |
| API Security | tRPC protected procedures | Auth context injected automatically; no manual checks needed |
| Storage Security | S3 with scoped access | Files accessible only via signed URLs |
| Transport Security | HTTPS everywhere | TLS 1.3; HSTS headers |
| Secrets Management | Environment variable injection | No hardcoded credentials; platform-managed secrets |
Error Handling & Resilience
The multi-agent pipeline is designed to degrade gracefully. No single agent failure should prevent course delivery.
| Pattern | Trigger | Recovery |
|---|---|---|
| Circuit Breaker | 3 consecutive agent failures | Skip agent; use fallback output |
| Exponential Backoff | Transient API errors (429, 503) | Wait 1s → 2s → 4s, then fail gracefully |
| Graceful Degradation | Content Architect failure | Fall back to single-prompt generation |
| Timeout Protection | Agent exceeds 60s | Terminate and use partial output |
| Output Validation | Malformed agent output | Retry once, then use fallback |
| Idempotent Retries | Any transient failure | Same input → same structural output; safe to retry |
Quality Metrics
100% TypeScript strict mode across the entire codebase. Tests cover unit, integration, contract, and resilience scenarios.
| Test Type | Count | What It Validates |
|---|---|---|
| Unit Tests | ~600 | Individual functions, utilities, schema validation |
| Integration Tests | ~200 | Agent pipelines, database operations, API endpoints |
| Contract Tests | ~80 | Agent input/output type conformance |
| Resilience Tests | ~25 | Circuit breakers, timeouts, fallback behaviour |
2026 Executive Review Selection
A concise programme-selection record, presented separately from product, performance, and affiliation claims.
Internal programme record
Shortlisted for executive review
In a 2026 global innovation programme at a major technology company, Learning Catalyst was selected as one of six tools for executive review from 211 projects created by approximately 600 participants. Senior technology leadership attended the review.
This statement is based on the project creator's internal programme record and describes programme selection and review attendance only. It does not state or imply corporate endorsement, sponsorship, partnership, or affiliation.
What's Built vs What's Next
v1.0 is live and fully functional. v2.0 focuses on adaptive learning, analytics, and collaboration features.
Completed (v1.0)
Planned (v2.0 — H2 2026)
14 Visual Block Types
Each block type is a distinct React component with its own visual design, interaction model, and instructional purpose.
See It in Action
Upload a PDF, paste a URL, or type a topic — get a complete, SCORM-compliant course with AI images, interactive blocks, and a quiz in under 4 minutes. No login required.