Duos Studio is a local-first learning content studio that parses tagged Markdown into interactive reading/exercise blocks.
The app is fully offline:
- No Gemini
- No Firebase
- No remote APIs required
- Local browser storage is used for draft/history persistence
- Import tagged
.mdor.txtfiles - Paste and edit content in a structured workspace
- Compile/parse into validated reading + exercise blocks
- Focused review view with tabs and pagination for reduced scrolling
- Local history snapshots for quick restore
- Node.js 20+ recommended
- npm
npm installnpm run devOpen http://localhost:3000.
npm run build
npm run start- Open the home page.
- In the import workspace, either:
- Upload a
.md/.txtfile, or - Paste tagged content manually, or
- Click
Load Sampleto loadsample.md.
- Upload a
- Click
Compile Data. - Review output in the focused content view:
- Use section tabs (
All,Reading,Exercises,Errors) - Use pagination controls to navigate blocks
- Use section tabs (
- Save snapshots to local library when needed.
The parser expects tagged blocks such as:
[READING_START] ... [READING_END][EXERCISE_START] ... [EXERCISE_END]
See sample.md for a complete working example.
All persisted data is local in browser localStorage:
duos-studio-bufferfor current draftduos-studio-historyfor saved snapshots
Clearing browser storage removes these records.
npm run dev- run local dev servernpm run build- create production buildnpm run start- run production servernpm test- run parser/unit tests
- If the page shows no parsed content, ensure your markdown uses required tags and metadata fields.
- If UI appears stale, hard-refresh the browser after pulling new changes.
- If tests fail, run
npm installagain to ensure lockfile dependencies are synced.
See CONTRIBUTING.md for full contributor onboarding, architecture notes, and contribution workflow.