Open-source lesson management terminal for language teachers
A beautiful, offline-capable dashboard to organize lessons, track class time, manage student profiles, and store teaching resources β all in your browser.
- Multi-page lessons β Organize content into separate pages (Warm-Up, Vocabulary, Grammar, etc.)
- Rich-text editing β Bold, italic, underline, colored highlights, lists
- Drag-and-drop reordering β Rearrange lesson pages by dragging
- Import/Export β Share lesson plans as JSON files with colleagues
- Resource cards β Quick-reference grammar rules, vocabulary, pronunciation tips
- Categorized & filterable β Filter cards by type (Grammar, Vocabulary, Connectors, etc.)
- Custom categories β Add your own card categories
- Fully editable β Add, edit, and delete cards in edit mode
- Stopwatch mode β Count up during class
- Countdown mode β Set a timer (e.g. 25 minutes) with visual warnings at 60s and expiry alert
- Keyboard shortcut β Press
0to start/stop
- Save student name, level, and notes
- Quick-switch between students from the toolbar dropdown
- Stored in localStorage β persists across sessions
- Sakura theme β Soft pink/rose palette in light mode, deep rose in dark mode
- Dark mode toggle β One-click switch
- Print stylesheet β
Ctrl+Pprints just the lesson content, no UI chrome - Keyboard-first β Number keys to switch pages,
Eto edit,?for shortcuts
- LocalStorage persistence β All data auto-saved
- Undo/Redo β Up to 50 history snapshots
- JSON import/export β Portable lesson plans
# Clone the repo
git clone https://github.com/hatimhtm/LessonForge.git
cd LessonForge
# Install dependencies
npm install
# Start dev server
npm run devOpen http://localhost:5173 in your browser.
npm run build
npm run preview| Key | Action |
|---|---|
1β9 |
Switch lesson page |
0 |
Start/stop timer |
E |
Toggle edit mode |
? |
Show shortcuts modal |
βZ / Ctrl+Z |
Undo |
ββ§Z / Ctrl+Shift+Z |
Redo |
βS / Ctrl+S |
Export lesson |
Esc |
Close modals |
LessonForge/
βββ index.html # App entry point
βββ package.json # Dependencies & scripts
βββ vite.config.js # Build config
βββ src/
βββ main.js # App controller
βββ state.js # State manager (localStorage, undo/redo)
βββ data.js # Demo content & defaults
βββ styles/
βββ variables.css # Design tokens & themes
βββ layout.css # Grid layout & modals
βββ toolbar.css # Toolbar & buttons
βββ content.css # Lesson content typography
βββ toolkit.css # Resource cards & filters
βββ sidebar.css # Navigation & checklist
βββ shortcuts.css # Shortcuts modal
βββ print.css # Print stylesheet
- Click Edit in the toolbar
- Create pages, add toolkit cards, customize the checklist
- Click Export to save your lesson as a JSON file
- Share the JSON with colleagues β they can click Import to load it
Edit src/styles/variables.css to customize colors, fonts, spacing, and border radius tokens.
MIT β free for personal and commercial use.