Developer documentation
The open core of Elabora: an e-learning source format that AI agents write and people review, a validator with stable codes, a SCORM 1.2 and web compiler tested against documented LMS behaviour, and a contract that keeps custom code testable.
Elabora core is open source (Apache-2.0). These pages are its repository’s documentation, rendered as they are; agents read them as Markdown, or through elabora docs.
Start here
The format
- Format specificationThe files of a course and their rules: the plan and its versions, screens, blocks, events, components, free objects, tracking, translation and archives.
- Built-in blocksgeneratedEvery built-in block type with its props and how to fork its template.
- ComponentsCourse components, block types and screen layouts made from a props schema and a template without code; forks, slots, fallback and libraries.
- DialoguesBranching conversations held in a block: lines, nodes and options, the walk replayed from the choices, modes and going back, the first run scored, events with the screen, `show`, `play`, `paths` and the client's export.
- Charts and diagramsThe chart blocks, each saying one thing; how they move, follow the voice and let learners predict; Mermaid diagrams; charts agents make with D3 and the kit.
- Design layerFree stylesheets, layouts and generated figures around structured content; window sizes, slides and steps; checks on the rendered course.
- Free-object contractCustom code such as three.js scenes and mini-games, kept sandboxed, testable and editable without code: manifest, protocol, gates; what persists from one screen to the next (an object that carries on, §4e; the backdrop's decoration, mounted once, §4c).
Delivery
- SCORM 1.2 and the LMS emulatorWhat a package holds, how the player behaves in an LMS, and what the emulator proves and cannot prove.
- Web targetA module for a plain web server, with recipes and what the host must provide.
- LMS profilesgeneratedWhat each documented LMS accepts, with sources and the values still to measure.
- Review bridgeThe `postMessage` protocol between a module built for review and the review page that shows it.
Reference
- Command linegeneratedEvery `elabora` command and its options.
- Agent toolsgeneratedEvery agent operation, as an MCP tool or a shell call, with its arguments.
- Diagnostic codesgeneratedEvery finding's code, title and fix, and the guardrails they enforce.
- ChangelogWhat changed in each version.
- Development historyThe work recorded before versioned releases.
Architecture
- ArchitectureGoals and constraints, the packages and what they may import, the project model; the contract every change follows.
- Operations, journal and identifiersChanges as operations with an author, a batch and an inverse; the project lock and journal; permanent ids, renaming and format migrations.
- MediaImports and canonical formats, quality presets, the encoder, narration audio, voices and word times, and how media reach packages.
- Delivery targets and hostingThe SCORM and web targets of one build, review builds, and the client of Elabora's hosting.
- The plan and its versionsThe plan as a working copy, versions frozen by a person, what changed between them, and the plan's document.
- Backups, sources and the project libraryVersions in a content-addressed store, the author's sources, the project library, `.elabora` archives and machine-local data.
- Importing Storyline and Rise modulesHow Storyline 360 and Rise 360 modules become Elabora modules, with a report of every loss.
- Rendering, browsers and capturesThe browser that measures, captures and tests use, and how one screen is rendered for the app and for looks.
- EngineThe desktop app's editing session: the project in memory, one write queue, incremental validation, other writers and the message protocol.