A beautiful, minimalistic markdown WYSIWYG editor with split-view editing, live preview, and powerful features.
🚀 Try it now at markdown.donkeywork.dev
- Dual-Pane Split View - Edit raw markdown (CodeMirror) and see live WYSIWYG preview (Tiptap) side-by-side
- Real-time Sync - Changes in either pane instantly reflect in the other
- Multi-File Tabs - Work with multiple markdown files simultaneously
- Mermaid Diagrams - Create flowcharts, sequence diagrams, and more
- GitHub Flavored Markdown - Tables, task lists, strikethrough, and more
- Dark/Light Theme - Beautiful themes with smooth transitions
- Auto-save - Automatic saves every 3 seconds to IndexedDB
- PDF Export - Export documents to PDF with one click
- Drag & Drop - Import markdown files by dragging them in
- Offline-First - Works completely offline with IndexedDB storage
Core: React 18, TypeScript 5.2, Vite 5.0, TailwindCSS, Shadcn UI
Editors: CodeMirror 6 (raw), Tiptap 3 (WYSIWYG)
Features: Mermaid diagrams, jsPDF export, Zustand state, IndexedDB storage
docker compose upVisit http://localhost:3000
# Install dependencies
npm install
# Start dev server
npm run devVisit http://localhost:5173
npm run build
npm run previewThe application is available as a Docker image from GitHub Container Registry:
# Pull the latest image
docker pull ghcr.io/andyjmorgan/donkeywork-markdowneditor:latest
# Run with Docker
docker run -p 3000:80 ghcr.io/andyjmorgan/donkeywork-markdowneditor:latest
# Or use docker-compose
docker compose upCtrl/Cmd + N- New fileCtrl/Cmd + S- Save (immediate)
Ctrl/Cmd + B- BoldCtrl/Cmd + I- ItalicCtrl/Cmd + U- UnderlineCtrl/Cmd + K- LinkCtrl/Cmd + 1/2/3- HeadingsCtrl/Cmd + E- Code blockCtrl/Cmd + Shift + L- Bullet listCtrl/Cmd + Shift + O- Ordered listCtrl/Cmd + Shift + T- Task listCtrl/Cmd + Shift + Q- Blockquote
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
Requires IndexedDB support.
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Built with React, TypeScript, and Vite