Lightweight web interface for converting files into LLM-friendly Markdown using the open-source MarkItDown library from Microsoft. Upload any supported document, and the app returns clean Markdown that you can copy, download, or feed to downstream tools.
Live site: https://markitdown-ui.vercel.app/ Backend API: https://markitdown-ui.onrender.com/
- Single-page UI with drag-and-drop upload, Markdown preview, and download button
- FastAPI backend that wraps
markitdown.MarkItDownwith the full optional dependency set - Ready-to-deploy configuration for Render (backend) and Vercel (frontend)
- Environment-variable based configuration (
VITE_API_BASE) so hosted builds point to your API
conda create -n markitdown-webui-backend python=3.12 -y
conda activate markitdown-webui-backend
pip install -e "packages/markitdown-webui/backend[dev]"
uvicorn markitdown_webui_backend.main:app --reloadcd packages/markitdown-webui/frontend
npm install
$env:VITE_API_BASE="http://127.0.0.1:8000"; npm run dev- Connect this repo to Render and create a Python web service
- Root directory:
packages/markitdown-webui/backend - Build command:
pip install -e ".[dev]" - Start command:
uvicorn markitdown_webui_backend.main:app --host 0.0.0.0 --port 10000
- Set the root directory to
packages/markitdown-webui/frontend - Build command:
npm run build - Output directory:
dist - Environment variable:
VITE_API_BASE=https://<your-render-app>.onrender.com
- Activate the backend environment
- Run
pip install "markitdown[all]" --upgrade - Smoke test key formats (PDF, DOCX, PPTX)
- Bump the
markitdown[all]version constraint inpackages/markitdown-webui/backend/pyproject.toml - Commit and redeploy backend & frontend if needed
- Built on top of Microsoft's MIT-licensed MarkItDown project — huge thanks to the original maintainers
- Web UI maintained by Kunal Runwal
This repository inherits the MIT license from the upstream MarkItDown project. See LICENSE for details.