LessonKit Studio specification¶
LessonKit Studio — Technical Specification¶
Overview¶
LessonKit Studio is a React-based visual authoring platform for creating learning experiences that export to:
React/Vite applications
LXPack packages
SCORM
xAPI
cmi5
standalone web builds
Architecture¶
+----------------------+
| LessonKit Studio UI |
+----------------------+
|
v
+----------------------+
| Project Schema Layer |
+----------------------+
|
v
+----------------------+
| React Renderer |
+----------------------+
|
v
+----------------------+
| LXPack Integration |
+----------------------+
Core Concepts¶
Project¶
A LessonKit Studio project is a Git-backed directory containing:
lessonkit.json
src/
assets/
themes/
Schema¶
Projects are represented internally as JSON schema documents.
Example:
{
"schemaVersion": 1,
"course": { "courseId": "my-course", "title": "My course" },
"pages": [
{
"id": "lesson-1",
"title": "Lesson one",
"blocks": []
}
]
}
Implementation reference: Studio project format v1.
Editor System¶
Canvas¶
The visual editor renders:
pages
blocks
layouts
interactions
using real React components.
Block Types¶
Initial block support:
text
heading
image
button
input
container
quiz
scenario
checklist
video
Drag/Drop¶
Library recommendation:
dnd-kit
Features:
nested containers
reorder support
snap zones
insertion previews
State Management¶
Recommended:
Zustand
Requirements:
undo/redo
patch history
autosave
schema validation
Undo/Redo¶
Immediate Undo¶
Editor-level undo stack:
command-based
patch-based
in-memory
Persistent History¶
Git commits generated:
periodically
on major actions
on explicit save
GitHub Integration¶
Authentication¶
Recommended:
GitHub App
Capabilities:
create repositories
clone templates
commit changes
branch management
Project Sync¶
Studio should:
pull latest project
autosave changes
push commits
support branching
Rendering System¶
Live Preview¶
Projects render directly using:
@lessonkit/react
shared runtime components
The editor preview and exported app should share rendering logic.
Code Generation¶
Output Targets¶
React/Vite¶
Generate:
App.tsx
components/
assets/
styles/
LXPack¶
Generate:
course.yaml
lesson assets
metadata
package configuration
AI Integration¶
Supported Workflows¶
lesson generation
storyboard conversion
quiz generation
branching generation
accessibility suggestions
Accessibility Requirements¶
All generated experiences must:
support keyboard navigation
use semantic HTML
support ARIA where appropriate
pass WCAG-focused audits
Theming¶
Support:
global themes
CSS variables
component themes
dark mode
Autosave¶
Autosave requirements:
debounce writes
semantic commit grouping
offline recovery support
Schema Versioning¶
All projects require:
{
"schemaVersion": 1
}
Migration system required:
v1 → v2 transforms
validation before rendering
normalization pipeline
Desktop Support¶
Preferred¶
Tauri desktop shell.
Features¶
local filesystem access
offline editing
local export
local preview
Hosting Model¶
Hosted Web App¶
lessonkit.app
Local Dev Mode¶
npx lessonkit-studio dev
Suggested Packages¶
@lessonkit/studio-schema
@lessonkit/studio-builder
@lessonkit/studio-renderer
@lessonkit/studio-codegen
@lessonkit/studio-github
@lessonkit/studio-ai
@lessonkit/studio-ui
Performance Goals¶
fast canvas rendering
instant undo/redo
lazy-loaded blocks
virtualized large page rendering
Future Extensions¶
multiplayer collaboration
plugin API
marketplace
animation timeline editor
visual branching graph
AI design agents
integrated LMS deployment