Skip to main content

What is MkDowner?

MkDowner is a modern React web application that provides bidirectional document conversion:
  • Any format → Markdown: Convert PDF, DOCX, PPTX, images, and more to Markdown
  • Markdown → Word: Convert Markdown files back to Word documents
Built with a React frontend and powered by Microsoft MarkItDown on the backend, it provides a seamless drag-and-drop experience for both conversion modes.

Fast Conversion

Convert documents instantly with real-time progress tracking

Multiple Formats

Support for PDF, DOCX, PPTX, images, and more

Batch Processing

Convert multiple files at once with automatic ZIP packaging

Bidirectional

Convert to Markdown OR from Markdown to Word

Key Features

Drag & Drop Interface

MkDowner features an intuitive drag-and-drop upload area built with React. Simply drop your files or click to browse:
const handleDrop = (e: React.DragEvent) => {
  e.preventDefault();
  setIsDragOver(false);
  if (e.dataTransfer.files) {
    onFilesSelected(e.dataTransfer.files);
  }
};

Real-Time Progress Tracking

Watch your files convert with live progress indicators:
const progressInterval = setInterval(() => {
  setProgress(prev => {
    const newProgress = prev + Math.random() * 15;
    return newProgress >= 90 ? 90 : newProgress;
  });
}, 200);

Automatic Downloads

Converted files download automatically - single files as .md, multiple files as .zip:
const fileName = files.length === 1 ? 
  `${files[0].name.split('.')[0]}.md` : 
  'converted_files.zip';

Supported File Formats

MkDowner supports a wide range of document formats:
  • PDF files (.pdf)
  • Word documents (.docx)
  • Text files (.txt)
  • Rich Text (.rtf)
  • PowerPoint (.pptx)
  • Excel files (.xlsx)
  • CSV files (.csv)
  • HTML files (.html)
  • JSON files (.json)
  • XML files (.xml)
  • PNG, JPG images
  • Audio files (.wav, .mp3)
  • OCR text extraction
Powered by Microsoft MarkItDown with AI-enhanced conversion for better formatting preservation.

Dual Conversion Modes

MkDowner provides two separate interfaces for different conversion needs:

Main Converter (/)

The primary interface converts any supported format to Markdown:
  • Multiple file upload support
  • Batch processing with ZIP output
  • 24MB file size limit
  • Powered by /upload endpoint

Markdown to Word (/pandoc)

A specialized interface for reverse conversion:
  • Converts Markdown files to Word documents
  • Single file processing
  • 16MB file size limit
  • Powered by /md-to-word endpoint

Learn More

Read the complete guide to Markdown-to-Word conversion

Architecture Overview

MkDowner follows a modern, modular architecture:

Frontend (React + TypeScript + Vite)

src/
├── components/          # Modularized React components
│   ├── UploadArea/     # Drag & drop upload interface
│   ├── FileList/       # Selected files display
│   ├── Header/         # App header and branding
│   ├── SupportedFormats/ # Format information
│   ├── Container/      # Layout container (internal)
│   └── Switch/         # Toggle switch UI (internal)
├── hooks/              # Custom React hooks
│   ├── useFileUpload.ts # File handling logic
│   └── useConversionMode.ts # Conversion mode toggle (unused)
├── services/           # API communication
│   └── api.ts         # Backend integration
├── App.tsx            # Main converter (any format → Markdown)
├── PandocConverter.tsx # Markdown → Word converter
└── main.tsx           # Entry point with routing

Backend (Python + Microsoft MarkItDown)

The backend API provides two conversion endpoints: POST /upload - Any format to Markdown:
const response = await fetch(`${API_BASE_URL}/upload`, {
  method: 'POST',
  body: formData, // 'files' key with multiple files
});
POST /md-to-word - Markdown to Word:
const response = await fetch(`${API_BASE_URL}/md-to-word`, {
  method: 'POST',
  body: formData, // 'file' key with single .md file
});
Both endpoints accept FormData with file uploads and return converted files as Blobs for automatic download.

Use Cases

Content Migration

Convert legacy documentation from Word or PDF to Markdown for modern documentation platforms.

Knowledge Base Creation

Transform presentation slides and spreadsheets into searchable Markdown documentation.

OCR and Text Extraction

Extract text from images and scanned documents into editable Markdown format.

Batch Document Processing

Convert entire folders of mixed document types into a unified Markdown archive.

Technical Benefits

Modern Stack

React 19, TypeScript, and Vite for fast development

Component-Based

Modular architecture with reusable components

Type Safety

Full TypeScript coverage for robust code

Responsive Design

Optimized for desktop and mobile devices

Next Steps

Quickstart Guide

Get MkDowner running locally in under 5 minutes

Build docs developers (and LLMs) love