<?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: Baaqar Naqi</title>
    <description>The latest articles on DEV Community by Baaqar Naqi (@baaqar_naqi_d8b55ec7077d0).</description>
    <link>https://dev.to/baaqar_naqi_d8b55ec7077d0</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%2F3998669%2F0ea70401-b7d0-4221-94c4-74ddaca4ae93.jpg</url>
      <title>DEV Community: Baaqar Naqi</title>
      <link>https://dev.to/baaqar_naqi_d8b55ec7077d0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/baaqar_naqi_d8b55ec7077d0"/>
    <language>en</language>
    <item>
      <title>Shipping Software Is Harder Than Building It</title>
      <dc:creator>Baaqar Naqi</dc:creator>
      <pubDate>Sun, 02 Aug 2026 09:01:27 +0000</pubDate>
      <link>https://dev.to/baaqar_naqi_d8b55ec7077d0/shipping-software-is-harder-than-building-it-ib0</link>
      <guid>https://dev.to/baaqar_naqi_d8b55ec7077d0/shipping-software-is-harder-than-building-it-ib0</guid>
      <description>&lt;p&gt;When I published &lt;strong&gt;v2.0.0&lt;/strong&gt;, I thought the hard part was over.&lt;/p&gt;

&lt;p&gt;The CLI could turn Claude artifacts into native Windows applications in a single command. It worked on my machine, the demos looked great, and I was excited to share it.&lt;/p&gt;

&lt;p&gt;Then people started using it.&lt;/p&gt;

&lt;p&gt;That's when I realized the difference between &lt;strong&gt;building software&lt;/strong&gt; and &lt;strong&gt;shipping software&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The bugs only users can find
&lt;/h2&gt;

&lt;p&gt;Most of the problems weren't visible in a five-minute demo.&lt;/p&gt;

&lt;p&gt;Some applications worked perfectly.&lt;/p&gt;

&lt;p&gt;Others silently lost all of their data after being closed.&lt;/p&gt;

&lt;p&gt;Some builds succeeded exactly once.&lt;/p&gt;

&lt;p&gt;The second build failed unless the runtime cache was manually deleted.&lt;/p&gt;

&lt;p&gt;Everything looked correct...&lt;/p&gt;

&lt;p&gt;until someone actually tried using it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The rabbit hole
&lt;/h2&gt;

&lt;p&gt;What I thought would be a quick patch became a deep dive into things I'd never touched before.&lt;/p&gt;

&lt;p&gt;Over the course of v3 I ended up learning far more than I expected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git branching and release workflows&lt;/li&gt;
&lt;li&gt;Semantic versioning&lt;/li&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;li&gt;npm packaging&lt;/li&gt;
&lt;li&gt;&lt;code&gt;npm pack&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Runtime integrity verification&lt;/li&gt;
&lt;li&gt;SHA-256 checksums&lt;/li&gt;
&lt;li&gt;Neutralino runtime management&lt;/li&gt;
&lt;li&gt;JavaScript debugging&lt;/li&gt;
&lt;li&gt;Integration testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of those were part of the original project idea.&lt;/p&gt;




&lt;h2&gt;
  
  
  Persistent storage finally works
&lt;/h2&gt;

&lt;p&gt;This was the biggest challenge.&lt;/p&gt;

&lt;p&gt;Artifacts using &lt;code&gt;localStorage&lt;/code&gt; behaved differently depending on where they were running.&lt;/p&gt;

&lt;p&gt;Inside Claude everything worked.&lt;/p&gt;

&lt;p&gt;Inside the generated desktop application...&lt;/p&gt;

&lt;p&gt;not always.&lt;/p&gt;

&lt;p&gt;Tracking this down took far longer than writing the original feature.&lt;/p&gt;

&lt;p&gt;The result is that applications now persist their data correctly across launches without requiring any code changes.&lt;/p&gt;

&lt;p&gt;If your artifact uses &lt;code&gt;localStorage&lt;/code&gt;, it should simply work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Runtime improvements
&lt;/h2&gt;

&lt;p&gt;The runtime layer also received a major overhaul.&lt;/p&gt;

&lt;p&gt;Version 3 now handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automatic runtime downloads&lt;/li&gt;
&lt;li&gt;integrity verification&lt;/li&gt;
&lt;li&gt;cache recovery&lt;/li&gt;
&lt;li&gt;consecutive builds without manual cleanup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those aren't exciting features to demo, but they're exactly the kinds of improvements that make a tool feel dependable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Better testing
&lt;/h2&gt;

&lt;p&gt;I also spent a lot more time writing tests than writing features.&lt;/p&gt;

&lt;p&gt;The project now covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React artifacts&lt;/li&gt;
&lt;li&gt;HTML artifacts&lt;/li&gt;
&lt;li&gt;Tailwind&lt;/li&gt;
&lt;li&gt;CSS imports&lt;/li&gt;
&lt;li&gt;image imports&lt;/li&gt;
&lt;li&gt;unsupported imports&lt;/li&gt;
&lt;li&gt;rebuilds&lt;/li&gt;
&lt;li&gt;persistent storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gave me much more confidence when fixing bugs, because every change could be verified instead of hoped for.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI didn't replace engineering
&lt;/h2&gt;

&lt;p&gt;This project started because of AI.&lt;/p&gt;

&lt;p&gt;Ironically, the hardest parts had very little to do with generating code.&lt;/p&gt;

&lt;p&gt;The difficult work was understanding why something behaved differently after packaging, reproducing bugs, reading logs, and validating fixes.&lt;/p&gt;

&lt;p&gt;AI made me faster.&lt;/p&gt;

&lt;p&gt;It didn't remove the need to understand the system.&lt;/p&gt;




&lt;h2&gt;
  
  
  Looking ahead
&lt;/h2&gt;

&lt;p&gt;Version 3 isn't the biggest release in terms of new features.&lt;/p&gt;

&lt;p&gt;It's the release that made me comfortable recommending the project to other people.&lt;/p&gt;

&lt;p&gt;Sometimes the most valuable release isn't the one that adds the most.&lt;/p&gt;

&lt;p&gt;It's the one that makes everything you already built reliable.&lt;/p&gt;




&lt;p&gt;If you've been following the project since v1 or v2, thank you for trying it, reporting bugs, and helping shape this release.&lt;/p&gt;

&lt;p&gt;You can find the project here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Baaqar-007/artifact-to-pwa" rel="noopener noreferrer"&gt;https://github.com/Baaqar-007/artifact-to-pwa&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/@baaqar/artifact-to-pwa" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@baaqar/artifact-to-pwa&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I started this project thinking AI would let me build software without learning the messy parts. Instead, it pushed me straight into them. Somewhere between broken CI pipelines, checksum mismatches, runtime bugs, and release engineering, I realized I'd accidentally learned more about shipping software than I ever planned to.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>developer</category>
      <category>software</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Turn Claude Artifacts into Native Desktop Apps (Zero Config)</title>
      <dc:creator>Baaqar Naqi</dc:creator>
      <pubDate>Wed, 29 Jul 2026 13:31:45 +0000</pubDate>
      <link>https://dev.to/baaqar_naqi_d8b55ec7077d0/turn-claude-artifacts-into-native-desktop-apps-zero-config-4fbe</link>
      <guid>https://dev.to/baaqar_naqi_d8b55ec7077d0/turn-claude-artifacts-into-native-desktop-apps-zero-config-4fbe</guid>
      <description>

&lt;h2&gt;
  
  
  The Evolution: From PWA to Native Desktop
&lt;/h2&gt;

&lt;p&gt;When I first launched &lt;strong&gt;&lt;a href="https://www.npmjs.com/package/@baaqar/artifact-to-pwa" rel="noopener noreferrer"&gt;&lt;code&gt;@baaqar/artifact-to-pwa&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;, the goal was simple: stop Claude artifacts from dying inside the chat window. We solved that by turning your raw HTML and React generations into installable PWAs with persistent storage in one command.&lt;/p&gt;

&lt;p&gt;But as the artifacts got more complex, a browser tab just wasn't enough. You don't always want your standalone tools buried next to your 45 open Wikipedia tabs. Sometimes, you want a &lt;em&gt;real&lt;/em&gt; app in your dock.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welcome to version 2.0.0.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We have completely shifted the underlying architecture. &lt;code&gt;artifact-to-pwa&lt;/code&gt; now generates &lt;strong&gt;native desktop applications&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(And yes, we kept the &lt;code&gt;artifact-to-pwa&lt;/code&gt; name for legacy compatibility, but it does so much more now!)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: One Command to Native
&lt;/h2&gt;

&lt;p&gt;No Electron boilerplate. No Xcode configurations. No wrestling with native build tools. Just point the CLI at your file or URL, and get a desktop application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Upgrade to 2.0.0&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @baaqar/artifact-to-pwa

&lt;span class="c"&gt;# From a local React/HTML file&lt;/span&gt;
npx artifact-to-pwa ./my-app.jsx

&lt;span class="c"&gt;# From a published Claude artifact URL&lt;/span&gt;
npx artifact-to-pwa https://claude.site/artifacts/abc123

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Instead of just a web directory, you now get an architecture ready to run natively on your machine window.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Killer Feature: Persistent Storage Still Reigns Supreme
&lt;/h2&gt;

&lt;p&gt;The biggest headache of turning web snippets into apps is data loss. Just like in v1.x, if your artifact uses &lt;code&gt;localStorage&lt;/code&gt; (like a habit tracker, local dashboard, or settings page), v2.0.0 protects your data.&lt;/p&gt;

&lt;p&gt;It automatically detects &lt;code&gt;localStorage&lt;/code&gt; usage and seamlessly wires it up so that your data persists across app closures and system restarts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero code changes&lt;/strong&gt; needed in your Claude artifact.&lt;/li&gt;
&lt;li&gt;Data survives safely outside the volatile browser cache.&lt;/li&gt;
&lt;li&gt;Reads stay lightning-fast.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why a Native Architecture?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated Windows:&lt;/strong&gt; Your tool gets its own window, its own icon in the dock/taskbar, and its own lifecycle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OS Integration:&lt;/strong&gt; It feels like a real part of your workflow, not just another website.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legacy PWA Support:&lt;/strong&gt; We didn't break the old stuff. The tool still honors the original vision while giving you the horsepower of a desktop build.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Supported Formats
&lt;/h2&gt;

&lt;p&gt;Just like before, the tool is smart enough to detect exactly what you throw at it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full HTML&lt;/strong&gt; documents (&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML fragments&lt;/strong&gt; (partial markup)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React / JSX&lt;/strong&gt; (uses Babel standalone + CDN React—no bundler needed)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Public URLs&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Take v2.0.0 for a Spin
&lt;/h2&gt;

&lt;p&gt;If you build with Claude and want your tools to live natively on your OS, give the new architecture a try.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/Baaqar-007/artifact-to-pwa" rel="noopener noreferrer"&gt;Check it out on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://www.npmjs.com/package/@baaqar/artifact-to-pwa" rel="noopener noreferrer"&gt;Install from NPM&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Drop a star ⭐ if it saves you time, and let me know what desktop apps you are generating!&lt;/p&gt;

</description>
      <category>claude</category>
      <category>cli</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>From Chat to Home Screen: Convert Claude Artifacts to PWAs with Zero Config</title>
      <dc:creator>Baaqar Naqi</dc:creator>
      <pubDate>Tue, 23 Jun 2026 11:58:23 +0000</pubDate>
      <link>https://dev.to/baaqar_naqi_d8b55ec7077d0/from-chat-to-home-screen-convert-claude-artifacts-to-pwas-with-zero-config-1in0</link>
      <guid>https://dev.to/baaqar_naqi_d8b55ec7077d0/from-chat-to-home-screen-convert-claude-artifacts-to-pwas-with-zero-config-1in0</guid>
      <description>&lt;h2&gt;
  
  
  The Problem: Claude Artifacts are Stuck in the Chat
&lt;/h2&gt;

&lt;p&gt;We've all been there. You prompt Claude to build a neat little todo list, a habit tracker, or a dashboard. It spits out a beautiful React/HTML artifact. You play with it, think &lt;em&gt;"This is actually useful"&lt;/em&gt;, and then... you close the tab.&lt;/p&gt;

&lt;p&gt;It's gone.&lt;/p&gt;

&lt;p&gt;If you &lt;em&gt;do&lt;/em&gt; save the HTML, turning it into a proper installable mobile app is a nightmare:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wrestle with Webpack/Vite configs just to get a &lt;code&gt;manifest.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Write a Service Worker from scratch.&lt;/li&gt;
&lt;li&gt;Pray your &lt;code&gt;localStorage&lt;/code&gt; doesn't get randomly wiped by the OS when the PWA updates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built &lt;strong&gt;&lt;a href="https://www.npmjs.com/package/@baaqar/artifact-to-pwa" rel="noopener noreferrer"&gt;&lt;code&gt;@baaqar/artifact-to-pwa&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; to fix all of that in &lt;strong&gt;one command&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: &lt;code&gt;npx artifact-to-pwa&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;No build step. No Android Studio. No Xcode. Just point it at your file or URL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# From a local React/HTML file&lt;/span&gt;
npx artifact-to-pwa ./my-app.jsx

&lt;span class="c"&gt;# From a published Claude artifact URL&lt;/span&gt;
npx artifact-to-pwa https://claude.site/artifacts/abc123

&lt;span class="c"&gt;# Customize it&lt;/span&gt;
npx artifact-to-pwa ./app.html &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="s2"&gt;"My Tool"&lt;/span&gt; &lt;span class="nt"&gt;--color&lt;/span&gt; &lt;span class="s2"&gt;"#ff6b6b"&lt;/span&gt; &lt;span class="nt"&gt;--out&lt;/span&gt; ./dist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. It generates a fully production-ready PWA folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-app-pwa/
├── index.html    ← Your app, PWA-ready
├── manifest.json ← Icons, colors, display mode
├── sw.js         ← Service worker (offline support)
├── icon.svg      ← Auto-generated icon
└── README.md     ← One-click deploy instructions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Killer Feature: Persistent Storage (localStorage → IndexedDB)
&lt;/h2&gt;

&lt;p&gt;Here is where this package &lt;strong&gt;actually shines&lt;/strong&gt; and differs from every other "PWA wrapper" out there.&lt;/p&gt;

&lt;p&gt;If your artifact uses &lt;code&gt;localStorage&lt;/code&gt; (think: todo lists, streak trackers, user settings, heatmaps), the browser will eventually delete that data. Worse, when a user updates the PWA, the cache clears, and &lt;strong&gt;poof&lt;/strong&gt;—their entire history is gone.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;artifact-to-pwa&lt;/code&gt; automatically detects &lt;code&gt;localStorage&lt;/code&gt; usage and injects a transparent &lt;strong&gt;IndexedDB shim&lt;/strong&gt; behind the scenes. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your artifact keeps using the exact same &lt;code&gt;localStorage&lt;/code&gt; API (no code changes needed).&lt;/li&gt;
&lt;li&gt;All data is actually stored in IndexedDB, which &lt;strong&gt;survives PWA updates and OS cleanups&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It pre-populates an in-memory cache on load so reads stay lightning-fast.&lt;/li&gt;
&lt;li&gt;It briefly hides the page on startup until saved data is ready—preventing that ugly "empty state" flash.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You'll see this magic happen in your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;⚡ localStorage detected → auto-migrating to IndexedDB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to Install It on Your Phone
&lt;/h2&gt;

&lt;p&gt;Once you run the command, deploying it is drag-and-drop simple:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Host&lt;/th&gt;
&lt;th&gt;Command / Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Netlify&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Drag the folder to &lt;a href="https://netlify.com/drop" rel="noopener noreferrer"&gt;netlify.com/drop&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vercel&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx vercel my-app-pwa&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GitHub Pages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Push folder contents, enable Pages in settings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Desktop / Android&lt;/strong&gt;: &lt;code&gt;npx serve my-app-pwa&lt;/code&gt; → Open URL → Click the &lt;strong&gt;Install&lt;/strong&gt; icon in the address bar.&lt;br&gt;
&lt;strong&gt;iPhone / iPad&lt;/strong&gt;: Deploy anywhere → Open in Safari → &lt;strong&gt;Share&lt;/strong&gt; → &lt;strong&gt;Add to Home Screen&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Bother with a PWA instead of an APK?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform&lt;/strong&gt;: Installs on Android, iOS, Windows, macOS, and Linux simultaneously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Always up-to-date&lt;/strong&gt;: Users get the latest version automatically—no app store review delays.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline-first&lt;/strong&gt;: The built-in Service Worker caches all assets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Supported Formats
&lt;/h2&gt;

&lt;p&gt;This tool is smart enough to detect exactly what you throw at it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full HTML&lt;/strong&gt; documents (&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML fragments&lt;/strong&gt; (partial markup)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React / JSX&lt;/strong&gt; (uses Babel standalone + CDN React—no bundler needed!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public URLs&lt;/strong&gt; (embeds them as a full-screen iframe)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Give it a Spin
&lt;/h2&gt;

&lt;p&gt;If you build with Claude, or if you just hate configuring Webpack manifests, give this a try:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/Baaqar-007/artifact-to-pwa" rel="noopener noreferrer"&gt;Check it out on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://www.npmjs.com/package/@baaqar/artifact-to-pwa" rel="noopener noreferrer"&gt;Install from NPM&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Drop a star ⭐ if it saves you time, and let me know what you build with it!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Made with ❤️ to keep Claude artifacts alive outside the chat.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>pwa</category>
      <category>claude</category>
    </item>
  </channel>
</rss>
