Overleaf For People Who Think In Markdown.
I built this because writing LaTeX directly in Overleaf felt tedious for my day-to-day workflow. I moved to Markdown + Pandoc in VS Code, but that became command-heavy very quickly, and previewing output meant constantly switching context. I wanted one small, offline tool where I can write Markdown and see a live PDF preview in real time.
MarkTex is that tool.
- MarkTex: a local-first desktop writing app (editor + project manager + live PDF preview + version control).
- MarkPDF: a Markdown-to-PDF tool that opens as localhost browser tab.
The idea is simple: MarkTex for full writing workflow, MarkPDF for quick conversion jobs. Detailed MarkPDF notes are in artifacts/artifacts/markpdf-cli/README.md.
- Write Markdown in a CodeMirror-based editor.
- Get live PDF preview through a local render pipeline.
- Organize writing into projects/files.
- Keep version history and restore past states.
- Export to PDF from a local/offline setup.
- Open Releases.
- Download the latest MarkTex installer.
- Run the installer and launch MarkTex.
- Optional: install MarkPDF from the same release artifacts.
pnpm install
pnpm --filter @workspace/marktex run tauri:devpnpm install
pnpm --filter @workspace/markpdf-cli run devIf MarkPDF is installed globally on Windows, you can use:
markpdf --version
markpdf --help
markpdf
markpdf uninstall- Accepts
.md/.markdownfiles and project bundles. - Supports folder upload or
.zipupload workflows. - Applies markdownlint-style auto-fixes for common formatting issues.
- Converts through Pandoc.
- Supports batch mode (up to 50 files).
- Returns a single PDF for one file, or a ZIP for batch output.
Warning: MarkPDF is an experimental tool and is not guaranteed to work.
For web development of the editor + backend, run these in separate terminals:
cd artifacts/artifacts/api-server
PORT=8080 pnpm run devcd artifacts/artifacts/marktex
pnpm run devNote: in browser-based dev, keep API requests relative (/api) and use the Vite proxy.
Workspace-level checks:
pnpm run typecheck
pnpm run test
pnpm run buildWindows desktop build:
pnpm --filter @workspace/marktex run tauri:build:windowsMarkPDF Windows CLI payload:
pnpm --filter @workspace/markpdf-cli run dist:win- Desktop shell: Tauri 2
- Frontend: React + Vite + CodeMirror
- Backend: Express + WebSocket
- Rendering: Pandoc + Typst
- Data: SQLite (libSQL) + Drizzle ORM
- Writing papers, reports, or notes in Markdown while seeing PDF layout live.
- Running a local-first writing workflow that works fully offline.
- Managing multi-file writing projects with restorable version history.
- Converting single files or batches to PDF quickly with MarkPDF.
- Keeping source content clean in Markdown while exporting publication-ready PDFs.
We welcome contributions! Please see our Contributing Guide for details.
Distributed under the terms of the [MIT license][license], MarkTex is free and open source software.
If you encounter any problems:
- File an Issue: Bug reports and feature requests
- Discussions: Questions and community support
- Documentation: Project docs and release notes
Parts of this project (code, docs, and release automation) are developed with AI assistance. AI-assisted changes are reviewed and validated by the author before release.
If you find the tools useful in your work, please give the repo a 🌟 and share with your friends.

