<?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: TangTangIT</title>
    <description>The latest articles on DEV Community by TangTangIT (@tangtangit).</description>
    <link>https://dev.to/tangtangit</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%2F4151118%2F26fb2fee-c1bb-43ed-a573-1a99e19f57c0.png</url>
      <title>DEV Community: TangTangIT</title>
      <link>https://dev.to/tangtangit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tangtangit"/>
    <language>en</language>
    <item>
      <title>Why I Built a Zero-Latency, 100% Client-Side Markdown Viewer in 2026</title>
      <dc:creator>TangTangIT</dc:creator>
      <pubDate>Wed, 30 Sep 2026 07:25:46 +0000</pubDate>
      <link>https://dev.to/tangtangit/why-i-built-a-zero-latency-100-client-side-markdown-viewer-in-2026-99o</link>
      <guid>https://dev.to/tangtangit/why-i-built-a-zero-latency-100-client-side-markdown-viewer-in-2026-99o</guid>
      <description>&lt;p&gt;In the era of LLMs (ChatGPT, Claude, DeepSeek) where Markdown is the universal lingua franca for documentation and agent workflows, reading and validating &lt;code&gt;.md&lt;/code&gt; files shouldn't feel like a chore.&lt;/p&gt;

&lt;p&gt;Yesterday, while reviewing a complex technical spec generated by Claude, I opened one of the top Google-ranked online markdown viewers. The result? A massive sticky bottom ad covered nearly 40% of my vertical workspace, and the tool insisted on refreshing the whole page.&lt;/p&gt;

&lt;p&gt;That frustrating moment inspired me to spend the weekend building &lt;strong&gt;&lt;a href="https://mdpreview.dev" rel="noopener noreferrer"&gt;MDPreview&lt;/a&gt;&lt;/strong&gt; — a zero-latency, 100% client-side, distraction-free Markdown viewer &amp;amp; live editor.&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%2Fxp3f6prxmk1hzdcap3hp.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%2Fxp3f6prxmk1hzdcap3hp.png" alt="MDPreview live split-screen editor and GFM preview" width="799" height="358"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  💡 Core Engineering Decisions
&lt;/h3&gt;

&lt;p&gt;Here is what went into the architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔒 &lt;strong&gt;100% Client-Side Privacy&lt;/strong&gt;: All Markdown parsing and highlighting happen strictly in your browser's local memory. No text, tokens, or documents are ever uploaded to any backend server.&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;Zero-Lag Synchronized Scrolling&lt;/strong&gt;: Built with Vite and marked.js for sub-millisecond typing response and proportional two-way split scrolling.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Full GitHub Flavored Markdown (GFM)&lt;/strong&gt;: Native support for responsive tables, interactive task checklists, strikethroughs, footnotes, and math expressions.&lt;/li&gt;
&lt;li&gt;💻 &lt;strong&gt;Syntax Highlighting for 180+ Languages&lt;/strong&gt;: Powered by Highlight.js with automatic language badges and one-click code copy buttons.&lt;/li&gt;
&lt;li&gt;🌓 &lt;strong&gt;Thoughtful Typography Themes&lt;/strong&gt;: Switch easily between GitHub Light, GitHub Dark, Eye-Care Warm Sepia, and Midnight Dark.&lt;/li&gt;
&lt;li&gt;📤 &lt;strong&gt;One-Click Export&lt;/strong&gt;: Export cleanly styled standalone HTML files or download &lt;code&gt;.md&lt;/code&gt; files with a single click.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🛠 Tech Stack &amp;amp; Open Source
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework&lt;/strong&gt;: Vite + Vanilla TypeScript + Modern CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Markdown &amp;amp; Highlight&lt;/strong&gt;: Marked.js + Highlight.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting&lt;/strong&gt;: Cloudflare Pages (Edge CDN)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full source code is public and open-source on GitHub:&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://github.com/tangtang-it/mdpreview" rel="noopener noreferrer"&gt;tangtang-it/mdpreview&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  💬 Looking for Your Feedback!
&lt;/h3&gt;

&lt;p&gt;This is an early release and I'd love to hear from fellow developers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is the most annoying limitation in your current Markdown reading workflow?&lt;/li&gt;
&lt;li&gt;Would client-side &lt;strong&gt;PDF-to-Markdown&lt;/strong&gt; or &lt;strong&gt;Markdown-to-Social-Card&lt;/strong&gt; generation be more useful for the next sprint?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check it out at &lt;strong&gt;&lt;a href="https://mdpreview.dev" rel="noopener noreferrer"&gt;https://mdpreview.dev&lt;/a&gt;&lt;/strong&gt; and feel free to share your thoughts below!&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I built a free, zero-ads Morning Quote &amp; Greeting Card Generator</title>
      <dc:creator>TangTangIT</dc:creator>
      <pubDate>Wed, 30 Sep 2026 00:35:24 +0000</pubDate>
      <link>https://dev.to/tangtangit/i-built-a-free-zero-ads-morning-quote-greeting-card-generator-16gc</link>
      <guid>https://dev.to/tangtangit/i-built-a-free-zero-ads-morning-quote-greeting-card-generator-16gc</guid>
      <description>&lt;h1&gt;
  
  
  showdev #webdev #productivity #tools
&lt;/h1&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%2Fsn2l53r4504r3wjczlnp.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%2Fsn2l53r4504r3wjczlnp.png" alt=" " width="800" height="569"&gt;&lt;/a&gt;Hi everyone!&lt;/p&gt;

&lt;p&gt;I recently launched a lightweight tool designed for daily positive routines: &lt;strong&gt;&lt;a href="https://morning-quote.com/" rel="noopener noreferrer"&gt;Morning Quote&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I built it
&lt;/h3&gt;

&lt;p&gt;I wanted an aesthetic and quick way to generate daily morning greeting cards and positive quotes without paywalls, sign-up walls, or noisy ads.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⚡ &lt;strong&gt;100% Client-side&lt;/strong&gt;: Ultra-fast rendering with zero tracking.&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Sunrise &amp;amp; Aesthetic Presets&lt;/strong&gt;: High-res card generator with customizable typography.&lt;/li&gt;
&lt;li&gt;📱 &lt;strong&gt;Multi-Ratio&lt;/strong&gt;: 1:1 Square and 9:16 Story format for WhatsApp &amp;amp; Instagram.&lt;/li&gt;
&lt;li&gt;🌍 &lt;strong&gt;Multi-language&lt;/strong&gt;: Built-in support for English, Spanish, and Portuguese.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check it out here: &lt;a href="https://morning-quote.com/" rel="noopener noreferrer"&gt;https://morning-quote.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback and suggestions are warmly welcomed!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>showdev</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
