<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[mmy-lana Dev Blog]]></title><description><![CDATA[mmy-lana Dev Blog]]></description><link>https://mmy-lana.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6a7f758dbbe75d2524e88504/33ec6548-b6f3-49ff-b5d4-a2cc4517aedf.png</url><title>mmy-lana Dev Blog</title><link>https://mmy-lana.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 09:51:43 GMT</lastBuildDate><atom:link href="https://mmy-lana.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[mmy-css: An Ultra-Lightweight CSS Framework Under 1.2 KB]]></title><description><![CDATA[Most CSS frameworks ship dozens of kilobytes of unused rules. I built mmy-css — an ultra-lightweight CSS framework under 1.2 KB gzipped with zero dependencies.
🌟 Key Highlights

📦 Under 1.2 KB gzipp]]></description><link>https://mmy-lana.hashnode.dev/mmy-css-an-ultra-lightweight-css-framework-under-1-2-kb</link><guid isPermaLink="true">https://mmy-lana.hashnode.dev/mmy-css-an-ultra-lightweight-css-framework-under-1-2-kb</guid><category><![CDATA[CSS]]></category><category><![CDATA[webdev]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[performance]]></category><dc:creator><![CDATA[Muhammad Maulana Yusuf]]></dc:creator><pubDate>Sat, 15 Aug 2026 15:01:06 GMT</pubDate><content:encoded><![CDATA[<p>Most CSS frameworks ship dozens of kilobytes of unused rules. I built <a href="https://github.com/mmy-lana/mmy-css"><strong>mmy-css</strong></a> — an ultra-lightweight CSS framework under <strong>1.2 KB gzipped</strong> with zero dependencies.</p>
<h3>🌟 Key Highlights</h3>
<ul>
<li><p>📦 <strong>Under 1.2 KB gzipped</strong> (~3.1 KB raw)</p>
</li>
<li><p>📐 <strong>Zero-Specificity Resets</strong> using <code>:where()</code> selectors</p>
</li>
<li><p>🔤 <strong>Fluid Typography</strong> using CSS <code>clamp()</code></p>
</li>
<li><p>🌙 <strong>Automatic Dark Mode</strong> with <code>prefers-color-scheme</code></p>
</li>
<li><p>📱 <strong>Responsive Grid</strong> without media queries</p>
</li>
</ul>
<h3>🔗 Links</h3>
<ul>
<li><p>🌐 <strong>Live Interactive Demo:</strong> <a href="https://mmy-lana.github.io/mmy-css/">mmy-lana.github.io/mmy-css</a></p>
</li>
<li><p>🐙 <strong>GitHub Repository:</strong> <a href="https://github.com/mmy-lana/mmy-css">github.com/mmy-lana/mmy-css</a></p>
</li>
<li><p>📦 <strong>NPM Package:</strong> <a href="https://www.npmjs.com/package/mmy-css">npmjs.com/package/mmy-css</a></p>
</li>
</ul>
<pre><code class="language-html">&lt;!-- Instant CDN Usage --&gt;
&lt;link rel="stylesheet" href="https://unpkg.com/mmy-css/dist/mmy.min.css"&gt;
</code></pre>
]]></content:encoded></item><item><title><![CDATA[Detect Detached DOM Nodes & Memory Leaks with leak-doctor]]></title><description><![CDATA[Detached DOM nodes and uncollected closures are silent performance killers in single-page applications.  
I built leak-doctor — an open-source, zero-dependency diagnostic engine and headless Chromium ]]></description><link>https://mmy-lana.hashnode.dev/detect-detached-dom-nodes-memory-leaks-with-leak-doctor</link><guid isPermaLink="true">https://mmy-lana.hashnode.dev/detect-detached-dom-nodes-memory-leaks-with-leak-doctor</guid><category><![CDATA[React]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[webdev]]></category><category><![CDATA[performance]]></category><dc:creator><![CDATA[Muhammad Maulana Yusuf]]></dc:creator><pubDate>Sat, 15 Aug 2026 14:48:24 GMT</pubDate><content:encoded><![CDATA[<p>Detached DOM nodes and uncollected closures are silent performance killers in single-page applications.  </p>
<p>I built <a href="https://github.com/mmy-lana/leak-doctor"><strong>leak-doctor</strong></a> — an open-source, zero-dependency diagnostic engine and headless Chromium auditor leveraging <code>WeakRef</code> and <code>FinalizationRegistry</code> to detect frontend memory leaks in real-time.</p>
<h3>🔗 Live Demos &amp; Repositories</h3>
<ul>
<li><p>🌐 <strong>Live Web Scanner:</strong> <a href="https://leak-doctor-web.vercel.app">leak-doctor-web.vercel.app</a></p>
</li>
<li><p>🧪 <strong>Interactive Playground:</strong> <a href="https://leak-doctor-playground.vercel.app">leak-doctor-playground.vercel.app</a></p>
</li>
<li><p>🐙 <strong>GitHub Repository:</strong> <a href="https://github.com/mmy-lana/leak-doctor">github.com/mmy-lana/leak-doctor</a></p>
</li>
</ul>
<h3>📦 Official npm Packages</h3>
<ul>
<li><p><a href="https://www.npmjs.com/package/@leak-doctor/profiler"><code>@leak-doctor/profiler</code></a> — Core WeakRef Memory Profiling Engine</p>
</li>
<li><p><a href="https://www.npmjs.com/package/@leak-doctor/toolbar"><code>@leak-doctor/toolbar</code></a> — Shadow DOM Dev Widget</p>
</li>
<li><p><a href="https://www.npmjs.com/package/@leak-doctor/shared"><code>@leak-doctor/shared</code></a> — Shared Diagnostic Schemas &amp; Formatters</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Catch Zombie Fetches & Missing AbortControllers in React 19 with fetch-doctor]]></title><description><![CDATA[When components unmount during active fetch requests, dangling promises can cause memory leaks, stale updates, and race conditions.
I built fetch-doctor — an open-source auditor designed to catch zomb]]></description><link>https://mmy-lana.hashnode.dev/catch-zombie-fetches-missing-abortcontrollers-in-react-19-with-fetch-doctor</link><guid isPermaLink="true">https://mmy-lana.hashnode.dev/catch-zombie-fetches-missing-abortcontrollers-in-react-19-with-fetch-doctor</guid><category><![CDATA[React]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[webdev]]></category><category><![CDATA[performance]]></category><dc:creator><![CDATA[Muhammad Maulana Yusuf]]></dc:creator><pubDate>Fri, 14 Aug 2026 20:22:10 GMT</pubDate><content:encoded><![CDATA[<p>When components unmount during active fetch requests, dangling promises can cause memory leaks, stale updates, and race conditions.</p>
<p>I built <a href="https://github.com/mmy-lana/fetch-doctor"><strong>fetch-doctor</strong></a> — an open-source auditor designed to catch zombie fetches and missing AbortControllers in real-time.</p>
<h3>🔗 Useful Links</h3>
<ul>
<li><p>🌐 <strong>Live Web Scanner:</strong> <a href="https://fetch-doctor.vercel.app">fetch-doctor.vercel.app</a></p>
</li>
<li><p>🧪 <strong>Interactive Playground:</strong> <a href="https://fetch-doctor-playground.vercel.app">fetch-doctor-playground.vercel.app</a></p>
</li>
<li><p>🐙 <strong>GitHub Repository:</strong> <a href="https://github.com/mmy-lana/fetch-doctor">github.com/mmy-lana/fetch-doctor</a></p>
</li>
</ul>
<h3>📦 npm Packages</h3>
<ul>
<li><p><a href="https://www.npmjs.com/package/@fetch-doctor/core"><code>@fetch-doctor/core</code></a> — Interceptor Engine &amp; Overlay Widget</p>
</li>
<li><p><a href="https://www.npmjs.com/package/@fetch-doctor/react"><code>@fetch-doctor/react</code></a> — React 19 Lifecycle Hooks</p>
</li>
<li><p><a href="https://www.npmjs.com/package/@fetch-doctor/shared"><code>@fetch-doctor/shared</code></a> — Shared Diagnostics &amp; Formatters</p>
</li>
</ul>
]]></content:encoded></item></channel></rss>