<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adoneinu</title>
    <description>The latest articles on DEV Community by Adoneinu (@adoneinu).</description>
    <link>https://dev.to/adoneinu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3997310%2F84882406-a1f8-4872-add8-7b0bde9e434b.png</url>
      <title>DEV Community: Adoneinu</title>
      <link>https://dev.to/adoneinu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adoneinu"/>
    <language>en</language>
    <item>
      <title>How I Built a Markdown to PDF, DOCX and HTML Converter with Flask</title>
      <dc:creator>Adoneinu</dc:creator>
      <pubDate>Mon, 22 Jun 2026 17:11:17 +0000</pubDate>
      <link>https://dev.to/adoneinu/how-i-built-a-markdown-to-pdf-docx-and-html-converter-with-flask-217i</link>
      <guid>https://dev.to/adoneinu/how-i-built-a-markdown-to-pdf-docx-and-html-converter-with-flask-217i</guid>
      <description>&lt;p&gt;As someone who regularly works with Markdown, I kept running into the same problem.&lt;/p&gt;

&lt;p&gt;Writing content in Markdown is easy.&lt;/p&gt;

&lt;p&gt;Turning it into a polished PDF or DOCX that I could share with someone else was often not.&lt;/p&gt;

&lt;p&gt;Most of the existing solutions are either:&lt;/p&gt;

&lt;p&gt;Command-line focused&lt;br&gt;
Require multiple tools&lt;br&gt;
Need template configuration&lt;br&gt;
Or expect the user to install software locally&lt;/p&gt;

&lt;p&gt;I wanted something simpler:&lt;/p&gt;

&lt;p&gt;Paste Markdown → Preview → Export.&lt;/p&gt;

&lt;p&gt;So I decided to build my own solution.&lt;/p&gt;

&lt;p&gt;The Goal&lt;/p&gt;

&lt;p&gt;The initial goal was straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Browser-based Markdown editor&lt;/li&gt;
&lt;li&gt;Live preview&lt;/li&gt;
&lt;li&gt;Export to PDF&lt;/li&gt;
&lt;li&gt;Export to DOCX&lt;/li&gt;
&lt;li&gt;Export to HTML&lt;/li&gt;
&lt;li&gt;No signup required&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As I started building, I also added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple document themes&lt;/li&gt;
&lt;li&gt;Table styling options&lt;/li&gt;
&lt;li&gt;Batch conversion support&lt;/li&gt;
&lt;li&gt;Better handling of larger documents&lt;/li&gt;
&lt;li&gt;Why Not Just Use Pandoc?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is probably the most common question.&lt;/p&gt;

&lt;p&gt;Pandoc is an excellent tool and I have a lot of respect for it.&lt;/p&gt;

&lt;p&gt;My goal wasn't to replace Pandoc.&lt;/p&gt;

&lt;p&gt;The goal was to create a workflow that feels approachable for users who don't want to work with command-line tools, templates, or configuration files every time they need a document.&lt;/p&gt;

&lt;p&gt;For many users, convenience matters as much as raw power.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application is built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;li&gt;HTML/CSS/JavaScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the frontend, I focused heavily on creating a clean and responsive interface rather than exposing every possible setting.&lt;/p&gt;

&lt;p&gt;Challenges&lt;/p&gt;

&lt;p&gt;A few things turned out to be more difficult than expected:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PDF Consistency&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Getting PDFs to render consistently across different document types was harder than expected.&lt;/p&gt;

&lt;p&gt;Tables, code blocks, images, and page breaks all introduce edge cases.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DOCX Formatting&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Users expect Word documents to look professional.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proper heading styles&lt;/li&gt;
&lt;li&gt;Table formatting&lt;/li&gt;
&lt;li&gt;Spacing&lt;/li&gt;
&lt;li&gt;Consistent typography&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Small details matter a lot.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Theme Customization&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What started as a simple export feature gradually turned into a theming system.&lt;/p&gt;

&lt;p&gt;Users wanted different visual styles depending on whether they were generating:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reports&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;Client-facing documents&lt;/li&gt;
&lt;li&gt;Deployment Lessons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project also became a learning experience in areas outside development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;DNS configuration&lt;/li&gt;
&lt;li&gt;Custom domains&lt;/li&gt;
&lt;li&gt;SSL certificates&lt;/li&gt;
&lt;li&gt;vercel deployment&lt;/li&gt;
&lt;li&gt;Google Analytics&lt;/li&gt;
&lt;li&gt;Search Console&lt;/li&gt;
&lt;li&gt;SEO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building the application was only part of the work.&lt;/p&gt;

&lt;p&gt;Getting it online and maintaining it turned out to be a project of its own.&lt;/p&gt;

&lt;p&gt;What I'm Working On Next&lt;/p&gt;

&lt;p&gt;Some improvements currently on my roadmap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better PDF rendering&lt;/li&gt;
&lt;li&gt;More themes&lt;/li&gt;
&lt;li&gt;Custom branding options&lt;/li&gt;
&lt;li&gt;Improved table handling&lt;/li&gt;
&lt;li&gt;Obsidian compatibility&lt;/li&gt;
&lt;li&gt;Better export customization&lt;/li&gt;
&lt;li&gt;Looking for Feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application is live here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://md.adoneinu.com" rel="noopener noreferrer"&gt;https://md.adoneinu.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you regularly work with Markdown, I'd love to hear:&lt;/p&gt;

&lt;p&gt;What export workflow do you currently use?&lt;br&gt;
What breaks most often?&lt;br&gt;
What features would make a tool like this useful to you?&lt;/p&gt;

&lt;p&gt;Constructive feedback is always welcome.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi7rzgwz9grcykisrgoag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi7rzgwz9grcykisrgoag.png" alt=" " width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
