Getting started in 5 minutes¶
No clone required
This guide uses npm only. You do not need the LessonKit GitHub monorepo unless you are contributing or running examples.
Prerequisites: Node.js 18+.
1. Create a project¶
npx @lessonkit/cli init my-course
cd my-course
init runs npm install by default and writes lessonkit.json plus a starter src/App.tsx.
2. Preview locally¶
npm run dev
Open the URL Vite prints (usually http://localhost:5173). Open the browser console to see sample telemetry and xAPI logs from the starter template.
Alternative: npx lessonkit dev (same as the dev script).
3. Change one quiz¶
Edit src/App.tsx and lessonkit.json together:
In React: update a
Quizquestion,choices, oranswer.In
lessonkit.json: update the matchingassessments[]entry (checkId,question,choices,answer).
lessonkit init already aligned courseId and the first assessment—keep that pattern when you add lessons or checks. See Keep React IDs in sync with lessonkit.json.
4. Production build¶
npm run build
Output goes to dist/ (Vite SPA).
5. Package for your LMS {#package-for-your-lms}¶
npm run package:scorm12
Or:
npx lessonkit package --target scorm12
Where the SCORM zip lands¶
By default, lessonkit.json sets:
"paths": {
"outputBaseDir": ".lxpack/out"
}
For scorm12, the CLI writes:
.lxpack/out/course-scorm12.zip
Upload that ZIP to your LMS. Other targets use the same folder, for example course-xapi.zip, course-cmi5.zip. Standalone export writes a directory: .lxpack/out/standalone/.
Override the path with --out path/to/custom.zip (must stay inside the project directory).
Next steps¶
Quickstart — add LessonKit to an existing Vite app
Packaging and CLI — all
--targetvaluesGlossary — LXPack, IDs, catalogs
Live examples — full demo courses