Tessera
A JavaScript framework for building eLearning courses.
Free and MIT licensed. Needs Node.js 24 or newer. Designed for AI-assisted authoring.
The wiring is standard. The design is yours.
Tessera handles what the LMS cares about: tracking, completion, scoring, navigation, and saved state. There is no required look, layout, or component set.
<script>
import { useQuestion } from 'tessera-learn';
let clicked = $state([]);
// registers with scoring, tracking, and resume
const q = useQuestion({
id: 'trip-hazards',
response: () => ({ type: 'choice', response: clicked, correct: ['cable', 'box'] }),
reset: () => (clicked = []),
restore: (saved) => (clicked = saved),
});
</script>
<!-- your markup, your styles -->
<button onclick={q.submit} disabled={q.submitted}>Check</button>
Every build gets checked
Every build flags structure and accessibility problems, so they get fixed while you work.
# build it, render it, audit it
pnpm check product-101
# pass or fail against the ruleset you pick:
# WCAG 2.0 A, 2.0 AA, or 2.1 AA
Keep every course in one workspace
One workspace holds every course, plus any components they share. It's all plain files, so you can version and collaborate on your courses with git and GitHub.
my-courses/
├── package.json # one set of dependencies for every course
├── shared/ # your design system, shared across courses
├── courses/
│ ├── starter-course/ # each course is a self-contained folder
│ └── … # add as many as you like
└── AGENTS.md # points your assistant to the authoring guide
Send it to any LMS
Run pnpm export <course> and get a package you can upload
today. One course, every standard.
Demos
Three demo courses, each built against a time limit. Source is in the example workspace on GitHub.
The Solar System
Explore the solar system! Click any of the eight planets to learn about its history. Take the Cosmic Challenge quiz to test your knowledge.
Launch demo →Road Sign Match
A fifteen-round road-sign match game. Answer fast for more points and chase a new personal best.
Launch demo →Zoo Quest
Roam a top-down zoo, meet the animals, and fill your Zoodex. Beat each region's keeper to earn a badge.
Launch demo →Read the docs
From your first install to how the SCORM and xAPI runtimes work underneath.
Start building
Run this in a terminal, then follow the three steps it prints.
pnpm create tessera@latest my-courses
Don't have Node.js or pnpm? Start with Getting started.