A flexible web application to convert documents between multiple formats. Upload files in any of 50+ supported input formats and convert them to your choice of 11 output formats. All images are embedded directly into the output documents (for supported formats), and the resulting files are bundled into a single .zip archive for easy download.
Warning
This project is mostly vibe-coded and not suitable for production.
- Drag-and-Drop Interface: Easily add files by dragging them onto the upload area.
- Multiple File Uploads: Select and convert multiple files at once.
- Flexible Output Formats: Choose your desired output format from 11 supported options.
- Self-Contained Output: For HTML, PDF, and EPUB formats, all images are embedded directly into the output document.
- Format Support: Convert between 50+ input formats and 11 output formats.
- Zipped Archive: The converted files are delivered in a single, convenient
.ziparchive. - Clean & Responsive UI: Built with Tailwind CSS for a modern look.
- Backend: Flask (Python)
- Frontend: HTML, Tailwind CSS, Vanilla JavaScript
- Conversion Engine: Pandoc
Docovert can convert to the following output formats:
| Format | Extension | Description |
|---|---|---|
| HTML | .html |
Web format with embedded resources |
| Markdown | .md |
Lightweight markup language |
| Word Document | .docx |
Microsoft Word format |
| OpenDocument Text | .odt |
LibreOffice/OpenOffice format |
| reStructuredText | .rst |
Python documentation standard |
| LaTeX | .tex |
Professional typesetting format |
| Rich Text Format | .rtf |
Text format with basic formatting |
| E-book (EPUB) | .epub |
E-book standard with embedded resources |
.pdf |
Portable document format with embedded resources | |
| Plain Text | .txt |
Simple unformatted text |
| JSON | .json |
JSON data format |
Using Pandoc 3.8, the supported input file formats are:
biblatex
bibtex
bits
commonmark
commonmark_x
creole
csljson
csv
djot
docbook
docx
dokuwiki
endnotexml
epub
fb2
gfm
haddock
html
ipynb
jats
jira
json
latex
man
markdown
markdown_github
markdown_mmd
markdown_phpextra
markdown_strict
mdoc
mediawiki
muse
native
odt
opml
org
pod
ris
rst
rtf
t2t
textile
tikiwiki
tsv
twiki
typst
vimwiki
xml
Ensure the following tools are installed:
- Python 3.12+
- uv
- Pandoc
- make
- node
Optional:
- Docker
Follow these steps to get the application running locally.
- Clone the Repository
git clone https://noahhefner/docovert.git
cd docovert- Install dependencies
make setup- Run the Application
make run- Access the Web App
Navigate to http://localhost:5000 in a web browser.
- Build the Docker image
make build- Run the image
make run-docker- Access the Web App
Navigate to http://localhost:8080 in a web browser.
Pytest is used for testing. Run the tests with:
make testFormat code with the format target:
make format- Add tests for converting all file types
- Add a real-time progress bar for uploads and conversions.
- If only one file is converted, download it directly as the output format instead of a
.zip. - Add support for custom conversion options (e.g., CSS styling for HTML output, page size for PDF).
- Implement file size limits and timeout handling for large conversions.

