A lightweight, Word-like WYSIWYG editor for markdown files that live in git repos. Built for technical teams who use markdown docs as part of their workflow and want a cleaner editing experience than an IDE.
Requires Node.js and Python 3.12+.
git clone https://github.com/jalexray/docugit.git
cd docugit
./start.shThat's it! The script installs dependencies, starts both servers, and prints the URL.
- WYSIWYG markdown editing — TipTap-powered rich text editor with formatting toolbar (headings, bold, italic, lists, code blocks, blockquotes, links)
- Markdown round-tripping — opens
.mdfiles as rich text, saves back as clean markdown - Git integration — stage, commit, and push without leaving the editor
- Branch management — switch branches or create new ones from the UI
- File browser — navigate your filesystem to find and open documents, with automatic git repo detection
- Multiple repo access — open by path, scan a parent directory, or auto-detect the repo from any file
- New file creation — create
.mdfiles directly from the sidebar - Push preview — see unpushed commits before pushing
- Keyboard shortcuts — Cmd/Ctrl+S to save, Cmd+B bold, Cmd+I italic
The repo includes sample docs in docs/ so you can test immediately:
- Run
./start.shand open the URL it prints - Click Browse for Document and navigate to
docs/welcome.md - Edit the document — try the formatting toolbar
- Press Cmd+S to save
- Open the Git panel (right side) to stage, commit, and push
The docs/getting-started.md file has a full walkthrough of the git workflow.
docugit/
start.sh # One-line setup and run script
api/ # Flask backend
repo/
routes.py # File I/O and git API endpoints
git_service.py # GitPython wrapper
src/ # React frontend
api.js # API client
components/
Sidebar/ # Repo picker, file browser, file tree
Editor/ # TipTap editor + formatting toolbar
GitPanel/ # Git status, branch selector, commit, push
docs/ # Sample documents for testing
MIT