<?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: Saurabh</title>
    <description>The latest articles on DEV Community by Saurabh (@ss_mworks).</description>
    <link>https://dev.to/ss_mworks</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3774343%2F39abc879-2878-4813-ae15-3b8508cf8483.png</url>
      <title>DEV Community: Saurabh</title>
      <link>https://dev.to/ss_mworks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ss_mworks"/>
    <language>en</language>
    <item>
      <title>I got tired of reading AI-generated Markdown in VS Code, so I built a dedicated reader</title>
      <dc:creator>Saurabh</dc:creator>
      <pubDate>Sun, 15 Feb 2026 18:27:32 +0000</pubDate>
      <link>https://dev.to/ss_mworks/i-got-tired-of-reading-ai-generated-markdown-in-vs-code-so-i-built-a-dedicated-reader-4288</link>
      <guid>https://dev.to/ss_mworks/i-got-tired-of-reading-ai-generated-markdown-in-vs-code-so-i-built-a-dedicated-reader-4288</guid>
      <description>&lt;p&gt;If you use AI tools like Claude, ChatGPT, or Copilot regularly, you probably have a growing pile of Markdown files — design docs, API specs, architecture notes, explanations, meeting summaries. I do too.&lt;/p&gt;

&lt;p&gt;And reading them has always been a pain.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;VS Code's Markdown preview splits your workspace in half. Browser-based renderers don't watch files. And most Markdown apps are built for &lt;em&gt;writing&lt;/em&gt; — they ship with editors, toolbars, file managers, and cloud sync I didn't need.&lt;/p&gt;

&lt;p&gt;I didn't want to edit Markdown. I just wanted to &lt;strong&gt;read&lt;/strong&gt; it.&lt;/p&gt;

&lt;p&gt;Point at a file. See it beautifully rendered. Have it update live when the file changes. That's it.&lt;/p&gt;

&lt;p&gt;Nothing I found did just that, so I built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://usemeva.com" rel="noopener noreferrer"&gt;MEVA&lt;/a&gt; is a small native desktop app focused entirely on reading Markdown. Here's what it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Watches files in real time&lt;/strong&gt; — when an AI tool streams output to a &lt;code&gt;.md&lt;/code&gt; file, you see the rendered result building live&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Renders LaTeX, Mermaid diagrams, and syntax-highlighted code blocks&lt;/strong&gt; natively&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works fully offline&lt;/strong&gt; — no accounts, no cloud sync, no tracking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Under 15MB&lt;/strong&gt; — because a Markdown viewer shouldn't be a 200MB Electron app&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The tech journey
&lt;/h2&gt;

&lt;p&gt;I started with Electron. It worked, but the bundle was 150MB+ for what is essentially a file viewer. That felt wrong.&lt;/p&gt;

&lt;p&gt;I switched to &lt;a href="https://tauri.app/" rel="noopener noreferrer"&gt;Tauri&lt;/a&gt; (Rust + native WebView), which got the app under 15MB while keeping it cross-platform on Mac, Windows, and Linux. Tauri gives you a native app shell without bundling an entire Chromium browser — which is exactly what a lightweight tool like this needs.&lt;/p&gt;

&lt;p&gt;For rendering, I use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;markdown-it&lt;/strong&gt; as the core parser&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;KaTeX&lt;/strong&gt; for LaTeX math rendering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mermaid&lt;/strong&gt; for diagram rendering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shiki&lt;/strong&gt; for syntax-highlighted code blocks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The trickiest part was live file watching. I needed it to feel instant without hammering the filesystem. I ended up using debounced native file system events through Rust's &lt;code&gt;notify&lt;/code&gt; crate, piped to the frontend via Tauri's event system. It picks up changes within milliseconds.&lt;/p&gt;

&lt;p&gt;Getting Mermaid to re-render cleanly on live file changes without flickering was another challenge. I had to diff the diagram source and only re-render blocks that actually changed — otherwise you'd see a flash every time the file updated.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I actually use it
&lt;/h2&gt;

&lt;p&gt;My daily workflow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I ask Claude or ChatGPT to generate a design doc, analysis, or explanation&lt;/li&gt;
&lt;li&gt;Save the output as a &lt;code&gt;.md&lt;/code&gt; file (or the tool writes directly to disk)&lt;/li&gt;
&lt;li&gt;MEVA picks it up instantly and renders it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The real magic is with tools like Claude Code that stream output directly to files. I have MEVA open in a separate window and watch the rendered document build in real time as the AI writes. It's a much better reading experience than watching raw Markdown scroll by in a terminal.&lt;/p&gt;

&lt;p&gt;It's become my default way to read any Markdown file — AI-generated or otherwise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned building this
&lt;/h2&gt;

&lt;p&gt;A few takeaways from the process:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tauri is impressive for small tools.&lt;/strong&gt; If you're building something that doesn't need a full browser engine, the size difference vs Electron is dramatic (15MB vs 150MB+). The Rust layer is fast and the IPC between Rust and the WebView is clean.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Do one thing well" still works.&lt;/strong&gt; Every Markdown app I tried wanted to be an editor. By only solving the reading problem, I could make the UX much simpler — no sidebar, no file tree, no toolbar. Just the rendered document.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File watching is deceptively hard to get right.&lt;/strong&gt; Between debouncing, platform differences, and avoiding unnecessary re-renders, it took more iteration than I expected to make it feel seamless.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;MEVA is available for Mac, Windows, and Linux: &lt;a href="https://usemeva.com/#download" rel="noopener noreferrer"&gt;https://usemeva.com/#download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There's a free version with all core features, and an optional paid version that adds multiple tabs, themes, and a few extras to support continued development.&lt;/p&gt;

&lt;p&gt;I'd genuinely love feedback — especially on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What feels unnecessary or bloated?&lt;/li&gt;
&lt;li&gt;What's missing that you'd want in a Markdown reader?&lt;/li&gt;
&lt;li&gt;How does it fit (or not fit) into your workflow?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you work with AI-generated Markdown regularly, give it a try and let me know what you think.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>rust</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
