<?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: Sudhanshu Ambastha</title>
    <description>The latest articles on DEV Community by Sudhanshu Ambastha (@sudhanshuambastha).</description>
    <link>https://dev.to/sudhanshuambastha</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%2F1235132%2F7a8aafdd-9eba-4104-8b96-36c0f1203b67.jpeg</url>
      <title>DEV Community: Sudhanshu Ambastha</title>
      <link>https://dev.to/sudhanshuambastha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sudhanshuambastha"/>
    <language>en</language>
    <item>
      <title>How I Built a Stateless 3D Asset Pipeline That Manages 1,000+ Models for Free</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Tue, 14 Apr 2026 17:33:38 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/how-i-built-a-stateless-3d-asset-pipeline-that-manages-1000-models-for-free-53j</link>
      <guid>https://dev.to/sudhanshuambastha/how-i-built-a-stateless-3d-asset-pipeline-that-manages-1000-models-for-free-53j</guid>
      <description>&lt;p&gt;3D assets are a nightmare for Git. They are heavy, binary-rich, and bloat repository history faster than you can say "Pokemon."&lt;br&gt;
When building the &lt;a href="https://github.com/Pokemon-3D-api" rel="noopener noreferrer"&gt;Pokémon 3D API&lt;/a&gt;, I hit a wall:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Manual Optimization:&lt;/strong&gt; Resizing textures and compressing meshes for every model was exhausting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contributor Friction:&lt;/strong&gt; Artists and fans wanted to contribute, but setting up Codespaces or cloning a 5GB repo just to add one model is a massive barrier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository Bloat:&lt;/strong&gt; The .git folder was growing exponentially.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I decided to nuke the old way of doing things and built a Stateless Asset Pipeline. Here’s how it works.&lt;/p&gt;
&lt;h2&gt;
  
  
  🏗️ The Architectural Shift: From "Storage" to "Processor"
&lt;/h2&gt;

&lt;p&gt;Most repos act as a static bucket. My repository acts as a &lt;strong&gt;Compute Engine&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I haven't seen any other open-source projects hosting thousands of &lt;code&gt;.glb&lt;/code&gt; files and providing them through a live API quite like this. Here is the secret sauce:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The "Source of Truth" is a JSON file&lt;/strong&gt;&lt;br&gt;
Instead of uploading a &lt;code&gt;.glb&lt;/code&gt; file, a contributor just adds a metadata object to &lt;code&gt;model_map.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"regular"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://sketchfab.com/3d-models/your-cool-model-id"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. The Zero-Friction (and Secure) Workflow&lt;/strong&gt;&lt;br&gt;
Since everything is driven by JSON, contributors don't even need to setup Codespaces or clone the repo. They can simply click "Edit" on GitHub’s web interface, paste the URL, and hit save.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why not use GitHub Issues for submissions?
&lt;/h2&gt;

&lt;p&gt;While using Issues for "file uploads" is popular, it opens a massive security hole. An unknown person could upload a malicious file or a "zip bomb" that executes during your pipeline run.&lt;/p&gt;

&lt;p&gt;By forcing contributions through &lt;code&gt;model_map.json&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strict Validation:&lt;/strong&gt; Only authorized team members can merge changes to the JSON.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sanitized Input:&lt;/strong&gt; The pipeline only processes specific Sketchfab IDs, preventing the execution of random binary "viruses" or scripts from unverified sources. 🛡️&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. The Automation Engine (GitHub Actions)
&lt;/h2&gt;

&lt;p&gt;Once the JSON is updated, a GitHub Action kicks in to do the heavy lifting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Download:&lt;/strong&gt; Grabs the raw model via the Sketchfab API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimize:&lt;/strong&gt; Uses &lt;code&gt;@gltf-transform/cli&lt;/code&gt; to apply Draco compression.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Texture Magic:&lt;/strong&gt;Auto-resizes textures to 1024x1024 and converts them to WebP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atomic Stats:&lt;/strong&gt; Updates a stats table in the README so the community can see the progress in real-time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📉 The "Clean Slate" History Strategy: Wiping the Non-Optimized Weight
&lt;/h2&gt;

&lt;p&gt;Binary files are the enemy of Git history. To keep the repo light, we moved from hosting both "Original" and "Optimized" versions to &lt;strong&gt;only&lt;/strong&gt; production-ready assets.&lt;/p&gt;

&lt;p&gt;To solve the history bloat, I implemented a &lt;strong&gt;History Pruning&lt;/strong&gt; mechanism. Every 5 updates, the pipeline automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates an orphan branch.&lt;/li&gt;
&lt;li&gt;Commits the current "perfect" state of the assets.&lt;/li&gt;
&lt;li&gt;Force-pushes to &lt;code&gt;main&lt;/code&gt;, wiping the history of old, unoptimized binaries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? The repository size remains strictly tied to the &lt;strong&gt;actual assets&lt;/strong&gt; (currently around 1.5GB). We’ve eliminated the "history tax" that usually kills 3D projects on GitHub. 💎&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Storage &amp;amp; Workflow Buffs
&lt;/h2&gt;

&lt;p&gt;While the previous version already used Draco and WebP, the V-1.1.0 architecture completely changes the game for storage consumption and accessibility:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Redundancy Storage:&lt;/strong&gt; We purged all unoptimized "source" files. By removing the duplicates, we’ve effectively halved the disk space required for the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "History Tax" Removal:&lt;/strong&gt; By wiping the commit history every 5 updates, a fresh clone only downloads the current assets. You no longer have to download "ghost versions" of models that were deleted or updated months ago.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sparse-Checkout by Default:&lt;/strong&gt; Our documentation now suggests using &lt;code&gt;sparse-checkout&lt;/code&gt; by default. This allows developers to clone only the scripts and configuration (kilobytes) instead of the entire 1.5GB model database. It turns a massive repo into a lightweight dev environment instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The JSON Shortcut:&lt;/strong&gt; Since the pipeline is now stateless and driven by &lt;code&gt;model_map.json&lt;/code&gt;, adding a new Pokémon is a &lt;strong&gt;5-second task&lt;/strong&gt; in a browser instead of a &lt;strong&gt;5-minute task&lt;/strong&gt; involving &lt;code&gt;git pull&lt;/code&gt;, &lt;code&gt;git add&lt;/code&gt;, and &lt;code&gt;git push&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 Lessons Learned (The Hard Way)
&lt;/h2&gt;

&lt;p&gt;Watch out for &lt;strong&gt;cross-step shell isolation&lt;/strong&gt; in GitHub Actions. We found a bug where files modified in one step weren't "seen" by the next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Fix:&lt;/strong&gt; Use &lt;code&gt;git status --porcelain&lt;/code&gt; for change detection instead of simple diffs, and ensure your &lt;code&gt;git add&lt;/code&gt; is aggressive.&lt;/p&gt;

&lt;p&gt;Explore the Code &amp;amp; Assets: &lt;a href="https://github.com/Pokemon-3D-api/assets" rel="noopener noreferrer"&gt;pokemon3d api assets&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>githubactions</category>
      <category>cicd</category>
    </item>
    <item>
      <title>I Built a Cyberpunk Dev Registry (And Now It’s Open Source)</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Sun, 15 Mar 2026 12:50:59 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/i-built-a-cyberpunk-dev-registry-and-now-its-open-source-382o</link>
      <guid>https://dev.to/sudhanshuambastha/i-built-a-cyberpunk-dev-registry-and-now-its-open-source-382o</guid>
      <description>&lt;h2&gt;
  
  
  🌍 The Vision: One Search, Any Environment
&lt;/h2&gt;

&lt;p&gt;Most package browsers only show you one ecosystem, typically npm. But modern development goes far beyond that. Developers often need multiple tools and environments simultaneously — from VS Code and Docker to Winget, Homebrew, and APT.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Universal Dev Registry&lt;/strong&gt; was built to act as a &lt;strong&gt;central command center&lt;/strong&gt; where you can stage everything you need in a &lt;strong&gt;single unified queue&lt;/strong&gt;.&lt;br&gt;
🚀 Access the Registry: &lt;a href="https://universal-dev-registry.ambastha.org/" rel="noopener noreferrer"&gt;universal-dev-registry.ambastha.org&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ❓ The "Why": Why Use It?
&lt;/h2&gt;

&lt;p&gt;🔎 Cross-Ecosystem Search&lt;br&gt;
Find your backend libraries and desktop developer tools in the same interface, eliminating the need to jump across multiple registries.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌃 The Cyberpunk Aesthetic
&lt;/h2&gt;

&lt;p&gt;Let’s be honest — we all love dark mode. The interface embraces a high-contrast Cyberpunk / Terminal UI design philosophy. If we’re going to spend hours interacting with a registry, it should feel like a mission-critical control system, not a plain white document.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔓 Going Open Source
&lt;/h2&gt;

&lt;p&gt;I’ve been working on this for a while, but I have other projects demanding my time. I realized that the best way to keep this project alive, secure, and performant is to hand the keys to the community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The frontend (Next.js) and the backend (Node.js) are now officially public.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;🛠️ Check out the code:&lt;/strong&gt;&lt;a href="https://github.com/Ambastha-Org/Universal-Dev-Registry-WebApp" rel="noopener noreferrer"&gt;Universal-Dev-Registry (GitHub)&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ The Experience: How to Use It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Search:&lt;/strong&gt; Use the terminal-style input for any library or application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage:&lt;/strong&gt; Add items to your Selection Queue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate:&lt;/strong&gt; The registry automatically checks for conflicts and protocol mismatches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execute:&lt;/strong&gt; Generate a unified manifest for your environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💬 I Want Your Feedback (And Your Pull Requests!)
&lt;/h2&gt;

&lt;p&gt;-&lt;strong&gt;⚡ Search Performance&lt;/strong&gt;&lt;br&gt;
Does the search velocity feel right for you? We’ve tuned the engine to balance speed with system stability.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧰 Missing Developer Tools&lt;/strong&gt;
Want to add a new &lt;code&gt;Winget&lt;/code&gt; or &lt;code&gt;Homebrew&lt;/code&gt; app? You can contribute to the "Source of Truth" mapping repo here:
➡️ &lt;a href="https://github.com/Ambastha-Org/crossplatform-desktop-apps-for-dev" rel="noopener noreferrer"&gt;Ambastha-Org/crossplatform-desktop-apps-for-dev&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I’m looking for maintainers and contributors.&lt;/strong&gt; If you see a way to make the Auth tighter, the search faster, or the UI sleeker — open a PR. Let’s build the ultimate registry together.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>tooling</category>
    </item>
    <item>
      <title>🛠️ Unified Dev Registry: The All-in-One Installer for Devs</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Fri, 13 Mar 2026 13:35:24 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/unified-dev-registry-the-all-in-one-installer-for-devs-49pe</link>
      <guid>https://dev.to/sudhanshuambastha/unified-dev-registry-the-all-in-one-installer-for-devs-49pe</guid>
      <description>&lt;h3&gt;
  
  
  🌍 The Vision: One Search, Any Environment
&lt;/h3&gt;

&lt;p&gt;Most package browsers only show you &lt;strong&gt;one ecosystem&lt;/strong&gt;, typically &lt;code&gt;npm&lt;/code&gt;. But modern development goes far beyond that.&lt;/p&gt;

&lt;p&gt;Developers often need &lt;strong&gt;multiple tools and environments simultaneously&lt;/strong&gt;, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System runtimes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Language-specific libraries&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Universal Dev Registry&lt;/strong&gt; was built to act as a &lt;strong&gt;central command center&lt;/strong&gt; where developers can stage everything they need — from &lt;code&gt;npm&lt;/code&gt; and &lt;code&gt;pip&lt;/code&gt; packages to &lt;strong&gt;Winget, Homebrew, and APT applications&lt;/strong&gt; — in a &lt;strong&gt;single unified queue&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Check out the live registry here:&lt;/strong&gt; &lt;a href="https://universal-dev-registry.ambastha.org/" rel="noopener noreferrer"&gt;universal-dev-registry&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ❓ The "Why": Why Use It?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🔎 Cross-Ecosystem Search
&lt;/h4&gt;

&lt;p&gt;Find your &lt;strong&gt;backend libraries&lt;/strong&gt; and &lt;strong&gt;desktop developer tools&lt;/strong&gt; in the &lt;strong&gt;same interface&lt;/strong&gt;, eliminating the need to jump across multiple registries.&lt;/p&gt;

&lt;h4&gt;
  
  
  🌃 The Cyberpunk Aesthetic
&lt;/h4&gt;

&lt;p&gt;Let’s be honest — &lt;strong&gt;we all love dark mode&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The interface embraces a &lt;strong&gt;high-contrast Cyberpunk / Terminal UI&lt;/strong&gt; design philosophy.&lt;br&gt;&lt;br&gt;
If developers are going to spend hours interacting with a registry, it should feel like a &lt;strong&gt;mission-critical control system&lt;/strong&gt;, not a plain white document.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ The Experience: How to Use It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🔎 Search&lt;/strong&gt;&lt;br&gt;
Use the &lt;strong&gt;terminal-style input&lt;/strong&gt; to search for any module, library, or developer application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;📦 Stage&lt;/strong&gt;&lt;br&gt;
Add selected items to your &lt;strong&gt;Selection Queue&lt;/strong&gt; to build your installation stack.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🧪 Validate&lt;/strong&gt;&lt;br&gt;
The registry automatically checks for &lt;strong&gt;potential conflicts&lt;/strong&gt;, such as incompatible protocols or issues like &lt;code&gt;npm&lt;/code&gt; vs &lt;code&gt;yarn&lt;/code&gt; lockfile mismatches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🚀 Execute&lt;/strong&gt;&lt;br&gt;
Once validated, prepare your &lt;strong&gt;manifest for installation&lt;/strong&gt; to generate a unified list of commands for your environment.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠️ &lt;strong&gt;View the Protocol on GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Ambastha-Org/Universal-Dev-Registry" rel="noopener noreferrer"&gt;Universal-Dev-Registry&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 I Want Your Feedback!
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ⚡ Search Performance
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Does the search velocity feel right for you?&lt;/strong&gt; We’ve tuned the engine to &lt;strong&gt;balance speed with system stability&lt;/strong&gt;, but real-world developer feedback helps us refine the experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧰 Missing Developer Tools
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Are there specific apps for Winget / Homebrew / APT that you want to see indexed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can actually &lt;strong&gt;contribute to the source of truth yourself&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
If there’s a developer tool missing, add it to our cross-platform mapping repository:&lt;/p&gt;

&lt;p&gt;➡️ &lt;a href="https://github.com/Ambastha-Org/crossplatform-desktop-apps-for-dev" rel="noopener noreferrer"&gt;&lt;strong&gt;Ambastha-Org/crossplatform-desktop-apps-for-dev&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 Protocol Lock Sensitivity
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Is the "Protocol Lock" too sensitive, or do you appreciate the added protection?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We designed this mechanism to &lt;strong&gt;stop automated bots and scraping activity&lt;/strong&gt;, but we also want to ensure it &lt;strong&gt;doesn’t interfere with real developer workflows&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Quick Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Registry:&lt;/strong&gt; &lt;a href="https://universal-dev-registry.ambastha.org/" rel="noopener noreferrer"&gt;universal-dev-registry.ambastha.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Main Repo:&lt;/strong&gt; &lt;a href="https://github.com/Ambastha-Org/Universal-Dev-Registry" rel="noopener noreferrer"&gt;Universal-Dev-Registry&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>productivity</category>
      <category>tooling</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🚀 Electron Desktop Apps with Next.js &amp; Tailwind CSS v4: The Missing "No-Bloat" Boilerplate</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Tue, 24 Feb 2026 03:38:51 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/electron-desktop-apps-with-nextjs-tailwind-css-v4-the-missing-no-bloat-boilerplate-3peh</link>
      <guid>https://dev.to/sudhanshuambastha/electron-desktop-apps-with-nextjs-tailwind-css-v4-the-missing-no-bloat-boilerplate-3peh</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;I've been working with Nextron (Next.js + Electron) lately, and I noticed a frustrating gap. Most templates out there are either:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript-only&lt;/strong&gt; (heavy and sometimes unnecessary for quick tools).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outdated&lt;/strong&gt; (still using Tailwind v3 or old PostCSS configs).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Incomplete&lt;/strong&gt; (requiring manual "plumbing" to get JS and Tailwind working together).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I found that the official &lt;code&gt;saltyshiomix/nextron&lt;/code&gt; examples were either TS-focused or lacked a pre-configured Tailwind v4 setup. So, I took the base JS skeleton and manually integrated the new Tailwind CSS v4 engine.&lt;/p&gt;

&lt;p&gt;Introducing: &lt;a href="https://github.com/Sudhanshu-Ambastha/nextron-js-tw4-boilerplate" rel="noopener noreferrer"&gt;nextron-js-tw4-boilerplate&lt;/a&gt; 🛠️✨&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Why This Template?
&lt;/h2&gt;

&lt;p&gt;I manually configured this to be "plug-and-play" so you can skip the setup headache:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS v4 Engine&lt;/strong&gt;: Pre-installed with the high-performance &lt;code&gt;@tailwindcss/postcss&lt;/code&gt; bridge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pure JavaScript&lt;/strong&gt;: Zero TypeScript bloat. Ideal for rapid prototyping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 14 (Pages Router)&lt;/strong&gt;: Chosen for its rock-solid stability in the Electron renderer process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fixed Production Assets&lt;/strong&gt;: I pre-configured unoptimized: true in renderer/next.config.js so your images and assets don't break when you build your &lt;code&gt;.exe&lt;/code&gt; or &lt;code&gt;.dmg&lt;/code&gt;. 📦✅&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🛠️ How to Use It
&lt;/h2&gt;

&lt;p&gt;You can start your new project in two ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1️⃣ The "One-Click" Way (Recommended)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go to the &lt;a href="https://github.com/Sudhanshu-Ambastha/nextron-js-tw4-boilerplate" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt; and click the green "Use this template" button. This creates a fresh repo under your account immediately! 🖱️🔥&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2️⃣ The CLI Way&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Clone the repo
git clone https://github.com/Sudhanshu-Ambastha/nextron-js-tw4-boilerplate.git

# Enter the directory
cd nextron-js-tw4-boilerplate/template

# Install &amp;amp; Run
npm install
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧠 Technical Highlights
&lt;/h2&gt;

&lt;p&gt;Since Nextron has a unique directory structure, I’ve handled a few critical configurations for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scanning via &lt;code&gt;@source&lt;/code&gt;&lt;/strong&gt;: In &lt;code&gt;renderer/styles/global.css&lt;/code&gt;, I added the &lt;code&gt;@source&lt;/code&gt; directive so Tailwind v4 correctly scans your JSX files inside the &lt;code&gt;renderer&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PostCSS Bridge&lt;/strong&gt;: Fully configured &lt;code&gt;postcss.config.js&lt;/code&gt; to ensure the v4 engine talks to the Next.js build pipeline correctly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📝 Open Source
&lt;/h2&gt;

&lt;p&gt;This is released under the &lt;code&gt;MIT License&lt;/code&gt;. I’m a big fan of the Electron community and wanted to provide a modern, JS-first alternative that works out of the box.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/Sudhanshu-Ambastha/nextron-js-tw4-boilerplate" rel="noopener noreferrer"&gt;Sudhanshu-Ambastha/nextron-js-tw4-boilerplate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are you building with Electron?&lt;/strong&gt; Let me know in the comments if you run into any issues or have suggestions! 👇&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>electron</category>
      <category>tailwindcss</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The journey of scaling a personal project into a community resource for 3D Pokémon assets.</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Wed, 07 Jan 2026 00:16:37 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/the-journey-of-scaling-a-personal-project-into-a-community-resource-for-3d-pokemon-assets-2mjg</link>
      <guid>https://dev.to/sudhanshuambastha/the-journey-of-scaling-a-personal-project-into-a-community-resource-for-3d-pokemon-assets-2mjg</guid>
      <description>&lt;h1&gt;
  
  
  From Side Project to Official Organization 🚀
&lt;/h1&gt;

&lt;p&gt;What started as a personal experiment to view a few Pokémon in 3D has officially evolved. Today, I’m excited to announce the launch of the &lt;a href="https://github.com/Pokemon-3D-api" rel="noopener noreferrer"&gt;Pokémon 3D API Organization&lt;/a&gt;—a dedicated home for optimized 3D assets and a high-performance API.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧱 The Problem: 3D Assets are Heavy
&lt;/h2&gt;

&lt;p&gt;Most Pokémon APIs provide great metadata, but finding consistent, web-ready 3D models is a challenge. Raw &lt;code&gt;.glb&lt;/code&gt; files are often massive, leading to slow load times and high bandwidth costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ The Solution: Automation &amp;amp; Optimization
&lt;/h2&gt;

&lt;p&gt;To solve this, I built a pipeline that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Automates Optimization:&lt;/strong&gt; Using GitHub Actions and &lt;code&gt;glTF-Transform&lt;/code&gt;, every model is Draco-compressed.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Scalable Architecture:&lt;/strong&gt; I split the project into three specialized layers:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Assets:&lt;/strong&gt; 1,300+ models with animations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The API Server:&lt;/strong&gt; A RESTful engine for metadata.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Showcase:&lt;/strong&gt; A responsive frontend demo using Google's &lt;code&gt;&amp;lt;model-viewer&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  ❤️ A Heartfelt Thank You
&lt;/h2&gt;

&lt;p&gt;The original repository on my personal profile received so much love and support from the community. It’s that energy that pushed me to build something more permanent and professional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I have a small favor to ask:&lt;/strong&gt; If you found value in my original project, please consider giving that same love to our new official repositories. Starring the new repos helps other developers find these resources!&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Explore the Ecosystem
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📍 &lt;strong&gt;Official Organization:&lt;/strong&gt; &lt;a href="https://github.com/Pokemon-3D-api" rel="noopener noreferrer"&gt;github.com/Pokemon-3D-api&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚀 &lt;strong&gt;New API Server:&lt;/strong&gt; &lt;a href="https://github.com/Pokemon-3D-api/api-server" rel="noopener noreferrer"&gt;Get the Metadata&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;Interactive Showcase:&lt;/strong&gt; &lt;a href="https://github.com/Pokemon-3D-api/showcase" rel="noopener noreferrer"&gt;See it in Action&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚖️ Legal Note
&lt;/h2&gt;

&lt;p&gt;This is a non-commercial fan project. Pokémon and Pokémon character names are trademarks of Nintendo. This project is strictly for educational use.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What's next?&lt;/strong&gt; I'm working on adding more animations and models from latest gen and leftovers for the API. I'd love to hear your thoughts in the comments!&lt;/p&gt;

</description>
      <category>javascriptlibraries</category>
      <category>opensource</category>
      <category>threejs</category>
      <category>pokemon</category>
    </item>
    <item>
      <title>🚀 Terminal Efficiency Unleashed: Meet the Textual TUI for Winget for Windows</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Sat, 29 Nov 2025 04:38:42 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/terminal-efficiency-unleashed-meet-the-textual-tui-for-winget-for-windows-2joj</link>
      <guid>https://dev.to/sudhanshuambastha/terminal-efficiency-unleashed-meet-the-textual-tui-for-winget-for-windows-2joj</guid>
      <description>&lt;h2&gt;
  
  
  🎉 Terminal Package Store: The TUI App for Winget on Windows
&lt;/h2&gt;

&lt;p&gt;Hey everyone! 👋 I'm excited to introduce my latest project, &lt;strong&gt;Terminal Package Store&lt;/strong&gt; — a high-performance, interactive &lt;strong&gt;Textual User Interface (TUI)&lt;/strong&gt; designed to transform how you manage packages on Windows with &lt;strong&gt;Winget&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you're tired of running long, repetitive CLI commands just to check for updates or uninstall an application, this is for you! This app combines the power of Winget with the efficiency and clarity of a dedicated visual interface, all without ever leaving your terminal window.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Features That Make Management Effortless 😍
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Terminal Package Store&lt;/strong&gt; is built to turn package management from a chore into a seamless experience:&lt;/p&gt;

&lt;h3&gt;
  
  
  🖥️ Split-Screen Command Center
&lt;/h3&gt;

&lt;p&gt;A clean, two-pane layout:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Main view&lt;/strong&gt;: list of packages
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Side panel&lt;/strong&gt;: detailed information and actions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📦 Visual List of Upgrades
&lt;/h3&gt;

&lt;p&gt;Immediately see which installed apps have updates available — no messy CLI output.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ One-Click Actions (No More Boilerplate!)
&lt;/h3&gt;

&lt;p&gt;Execute complex Winget operations with a single UI action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Update Selected Package&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uninstall Package&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔄 Non-Blocking Background Operations
&lt;/h3&gt;

&lt;p&gt;Updates and uninstalls run in a &lt;strong&gt;separate terminal window&lt;/strong&gt;, keeping the TUI responsive and smooth.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔔 Integrated Self-Update Check
&lt;/h3&gt;

&lt;p&gt;The app can check GitHub for the &lt;strong&gt;latest version&lt;/strong&gt; of itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Built With Modern Python
&lt;/h2&gt;

&lt;p&gt;This project showcases next-gen TUI development tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Textual Framework&lt;/strong&gt; — high-performance widgets, CSS styling, reactive state
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Textual Workers&lt;/strong&gt; — background threading for heavy operations
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Winget&lt;/strong&gt; — underlying package manager performing installations, updates, uninstalls
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 Why This Approach Matters
&lt;/h2&gt;

&lt;p&gt;This app bridges the gap between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the &lt;strong&gt;raw power&lt;/strong&gt; of the command line
&lt;/li&gt;
&lt;li&gt;and the &lt;strong&gt;usability&lt;/strong&gt; of a GUI
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It reduces cognitive load, saves time, and makes package maintenance a &lt;strong&gt;fast, visual, intuitive task&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Ready to Try It?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Terminal Package Store&lt;/strong&gt; is ready to use!&lt;/p&gt;

&lt;p&gt;If you find this tool useful, please:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭐ Star the repo
&lt;/li&gt;
&lt;li&gt;📨 Share it with Windows developers and power users
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/Sudhanshu-Ambastha/Terminal-Package-Store/tree/v1.0.0" rel="noopener noreferrer"&gt;Terminal-Package-Store&lt;/a&gt;  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Issues / Feedback&lt;/strong&gt;: &lt;a href="https://github.com/Sudhanshu-Ambastha/Terminal-Package-Store/issues" rel="noopener noreferrer"&gt;Issues&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy packaging! 😊&lt;/p&gt;

</description>
      <category>cli</category>
      <category>terminal</category>
      <category>python</category>
      <category>microsoftwindows</category>
    </item>
    <item>
      <title>Pokedex - 3D Pokémon Viewer: Gotta View 'Em All in 3D! ✨</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Thu, 01 May 2025 14:55:03 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/pokedex-3d-pokemon-viewer-gotta-view-em-all-in-3d-1fe4</link>
      <guid>https://dev.to/sudhanshuambastha/pokedex-3d-pokemon-viewer-gotta-view-em-all-in-3d-1fe4</guid>
      <description>&lt;p&gt;Hey everyone! 👋 I'm excited to share my latest project: the Pokedex - a web application that lets you explore the fascinating world of Pokémon in a whole new dimension!&lt;/p&gt;

&lt;p&gt;Ever wanted to get a closer look at your favorite Pokémon? Rotate them, zoom in, and even watch their animations? Well, now you can! This Pokedex brings Pokémon to life with interactive 3D models, right in your browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features You'll Love 😍
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Browse a Stunning Grid:&lt;/strong&gt; Dive into a visually appealing grid showcasing Pokémon with their vibrant 3D models. It's like having your own digital Pokémon collection!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filter by Generation:&lt;/strong&gt; Feeling nostalgic for a specific era? Easily filter Pokémon by their generation and relive your favorite moments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore Different Forms:&lt;/strong&gt; Discover the incredible variety within the Pokémon universe! Browse through different forms like Alolan, Galarian, Mega Evolutions, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightning-Fast Search:&lt;/strong&gt; Looking for a specific Pokémon? Quickly find them by name or their Pokédex number with the intuitive search bar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detailed 3D Views:&lt;/strong&gt; Click on any Pokémon to enter a detailed view. Here, you can interact with the 3D model, check out their base stats (HP, Attack, Defense, Sp. Atk, Sp. Def, Speed), and explore available forms and animations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unravel Evolution Chains:&lt;/strong&gt; Curious about how your favorite Pokémon evolves? Trace their evolutionary path with the integrated evolution chain viewer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive 3D Models:&lt;/strong&gt; Use your mouse or touch to rotate, pan, and zoom in on the 3D models. Get up close and personal with every detail!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Animated Fun:&lt;/strong&gt; Watch various animations of the Pokémon models, bringing them to life right before your eyes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Use It 🕹️
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Welcome Aboard!&lt;/strong&gt; The app starts with a friendly welcome screen.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;The Pokémon Grid:&lt;/strong&gt; After the welcome, you'll land on the main Pokémon grid, filled with 3D models.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Filtering Made Easy:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  Use the "All Forms" dropdown to explore different variations of Pokémon.&lt;/li&gt;
&lt;li&gt;  The "All Generations" dropdown lets you focus on specific Pokémon eras.&lt;/li&gt;
&lt;li&gt;  Type in a name or ID in the search bar and hit the search button (🔍) to find your target Pokémon instantly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Dive into Details:&lt;/strong&gt; Click on a Pokémon in the grid to see its in-depth information.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Interactive Details:&lt;/strong&gt; On the Pokémon's page:

&lt;ul&gt;
&lt;li&gt;  Manipulate the 3D model to your heart's content.&lt;/li&gt;
&lt;li&gt;  Select different forms from the "Select Form" dropdown.&lt;/li&gt;
&lt;li&gt;  Choose from available animations using the "Select Animation" dropdown.&lt;/li&gt;
&lt;li&gt;  Get all the crucial base stats at a glance.&lt;/li&gt;
&lt;li&gt;  Navigate through the Pokedex using the handy arrow buttons.&lt;/li&gt;
&lt;li&gt;  Click "Evolution List" to see its evolutionary journey.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Tracing Evolutions:&lt;/strong&gt; The evolution chain page clearly lays out the Pokémon's evolution line. Click on any Pokémon in the chain to view its details.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Built With 💪
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://create-react-app.dev/docs/getting-started/" rel="noopener noreferrer"&gt;React&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://vite.dev/guide/" rel="noopener noreferrer"&gt;Vite&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://tailwindcss.com/docs/installation/using-vite" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://modelviewer.dev/" rel="noopener noreferrer"&gt;&lt;code&gt;@google/model-viewer&lt;/code&gt;&lt;/a&gt; (The magic behind the interactive 3D models!)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://axios-http.com/docs/intro" rel="noopener noreferrer"&gt;Axios&lt;/a&gt; (For fetching data from APIs)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://reactrouter.com/" rel="noopener noreferrer"&gt;React Router DOM&lt;/a&gt; (For smooth navigation)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Powering the Pokedex ⚡
&lt;/h2&gt;

&lt;p&gt;This app wouldn't be possible without these amazing APIs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Pokémon Data and Stats&lt;/strong&gt;: &lt;a href="https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/" rel="noopener noreferrer"&gt;PokeAPI Proxy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;3D Pokémon Models and Animations&lt;/strong&gt;: &lt;a href="https://pokemon-3d-api.onrender.com/v1/pokemon" rel="noopener noreferrer"&gt;Pokémon3D API&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Pokémon Species and Evolution Data&lt;/strong&gt;: &lt;a href="https://pokeapi.co/api/v2/" rel="noopener noreferrer"&gt;PokeAPI&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ready to Explore? 🚀
&lt;/h2&gt;

&lt;p&gt;You can experience the Pokedex live here: &lt;a href="https://Sudhanshu-Ambastha.github.io/Pokedex" rel="noopener noreferrer"&gt;Pokedex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you're curious about the code or want to contribute, check out the repository on GitHub&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thanks 🙏
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  A huge thank you to the incredible developers behind the &lt;a href="https://pokeapi.co/" rel="noopener noreferrer"&gt;PokeAPI&lt;/a&gt; and the &lt;a href="https://github.com/Pokemon-3D-api" rel="noopener noreferrer"&gt;Pokémon3D API&lt;/a&gt; for providing the essential data and resources that make this project possible.&lt;/li&gt;
&lt;li&gt;  And of course, a massive shoutout to the passionate Pokémon community for their endless support and enthusiasm!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find this Pokedex useful or just plain awesome, please consider giving the repository a star 🌟 and sharing it with your fellow Pokémon enthusiasts! Happy exploring! 😊&lt;/p&gt;

</description>
      <category>vite</category>
      <category>react</category>
      <category>api</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>Powering Up PolyDisease Predictor: Backend Integration and Expanding Horizons! 🚀</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Thu, 01 May 2025 14:30:48 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/powering-up-polydisease-predictor-backend-integration-and-expanding-horizons-56d4</link>
      <guid>https://dev.to/sudhanshuambastha/powering-up-polydisease-predictor-backend-integration-and-expanding-horizons-56d4</guid>
      <description>&lt;p&gt;Hey everyone!&lt;/p&gt;

&lt;p&gt;I'm excited to share some significant progress on the PolyDisease Predictor, a &lt;a class="mentioned-user" href="https://dev.to/streamlit"&gt;@streamlit&lt;/a&gt; web application I've been building to predict various diseases based on user input. In this update, we've laid some crucial groundwork for future enhancements and are actively expanding the application's capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Laying the Foundation: MySQL Backend Integration
&lt;/h2&gt;

&lt;p&gt;One of the key developments has been the successful integration of a MySQL backend into the PolyDisease Predictor. This marks a significant step forward, allowing the application to now persistently store user interactions and feedback across all prediction modules (Diabetes, Heart Disease, and Multiple Disease Prediction).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why a Backend?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Implementing a database opens up a world of possibilities for improving the application, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gathering Insights:&lt;/strong&gt; We can now collect valuable data on how users interact with the predictor, which symptoms are frequently entered, and the accuracy of the predictions based on user feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Refinement:&lt;/strong&gt; This data can be crucial for analyzing the performance of our prediction models and identifying areas for improvement and retraining.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Future Features:&lt;/strong&gt; Having a backend infrastructure in place will enable us to explore exciting new features in the future, such as personalized risk assessments and tracking disease prevalence trends.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Your Feedback Matters: Implementing a Feedback Mechanism
&lt;/h2&gt;

&lt;p&gt;To make the most of this new backend, we've also implemented a simple yet powerful feedback mechanism. After receiving a prediction for diabetes, heart disease, or multiple diseases, users can now indicate whether the prediction was "👍 Correct" or "👎 Incorrect." This direct feedback is now being stored in our MySQL database, providing us with valuable signals on the application's accuracy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expanding Our Knowledge: Adding More Symptoms and Diseases (Work in Progress!)
&lt;/h2&gt;

&lt;p&gt;The PolyDisease Predictor's core strength lies in its ability to predict multiple diseases based on user-provided symptoms. We're actively working on expanding the range of symptoms and the number of diseases the application can predict.&lt;/p&gt;

&lt;p&gt;While this is an ongoing process, the integration of the MySQL backend provides the necessary structure to manage and utilize this growing dataset effectively. We're continuously training and refining our models with this expanded information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Deep Dive: Streamlit Secrets for Database Configuration
&lt;/h2&gt;

&lt;p&gt;For those interested in contributing or running the application locally, the MySQL database connection details are managed securely using Streamlit's &lt;code&gt;secrets.toml&lt;/code&gt; file. This allows for easy configuration without hardcoding sensitive information directly into the application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example &lt;code&gt;secrets.toml&lt;/code&gt; Structure:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[mysql]&lt;/span&gt;
&lt;span class="py"&gt;host&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"your_mysql_host"&lt;/span&gt;
&lt;span class="py"&gt;user&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"your_mysql_user"&lt;/span&gt;
&lt;span class="py"&gt;password&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"your_mysql_password"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remember to replace the placeholder values with your actual MySQL credentials and ensure this file is not committed to any public repositories (add it to your .gitignore!).&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;We're continuing to focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expanding the database of symptoms and diseases.&lt;/li&gt;
&lt;li&gt;Analyzing the collected feedback to improve the accuracy of our prediction models.&lt;/li&gt;
&lt;li&gt;Exploring new features that leverage the backend infrastructure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay tuned for more updates as we continue to evolve the PolyDisease Predictor! Your feedback and contributions are always welcome.&lt;/p&gt;

&lt;p&gt;GitHub Repository:&lt;a href="https://github.com/Sudhanshu-Ambastha/Poly-Disease-Predictor" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Deployed Working Model:&lt;a href="https://poly-disease-predictor.streamlit.app/" rel="noopener noreferrer"&gt;Deployed Model&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mysql</category>
      <category>python</category>
      <category>streamlit</category>
      <category>render</category>
    </item>
    <item>
      <title>Python with mysql</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Mon, 21 Apr 2025 06:20:38 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/python-with-mysql-50md</link>
      <guid>https://dev.to/sudhanshuambastha/python-with-mysql-50md</guid>
      <description></description>
      <category>python</category>
      <category>mysql</category>
      <category>programming</category>
    </item>
    <item>
      <title>Pokémon-3D API v1.0.1 - Repository Restoration</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Sun, 23 Mar 2025 07:01:39 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/pokemon-3d-api-v101-repository-restoration-3blb</link>
      <guid>https://dev.to/sudhanshuambastha/pokemon-3d-api-v101-repository-restoration-3blb</guid>
      <description>&lt;p&gt;Hello Pokémon 3D Enthusiasts!&lt;/p&gt;

&lt;p&gt;We're excited to announce the release of v1.0.1 of the Pokémon-3D API! This release addresses a critical operational issue and brings some exciting updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Changes &amp;amp; What Happened:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Due to unforeseen technical challenges, we had to &lt;strong&gt;completely delete and recreate the Pokémon-3D API repository.&lt;/strong&gt; This was necessary to ensure the long-term stability and functionality of the API. We sincerely apologize for any downtime or confusion this may have caused.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's New in v1.0.1:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While this release primarily focuses on restoring the API, we've also included a few exciting additions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository Recreated:&lt;/strong&gt; The repository has been rebuilt from scratch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend Restarted:&lt;/strong&gt; The backend services are now running smoothly and reliably.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Functionality Restored:&lt;/strong&gt; The API is now fully operational, mirroring the functionality of v1.0.0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New Endpoint:&lt;/strong&gt; &lt;strong&gt;The API endpoint has changed!&lt;/strong&gt; Please update your integrations to use the new endpoint. &lt;strong&gt;The old endpoint will no longer function.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Added few New Pokémon:&lt;/strong&gt; We've expanded our collection with few new Pokémon models! You can now access these through the updated endpoint.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Support &amp;amp; Love:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We were incredibly grateful for the support and love you showed the previous repository, which garnered 13 stars. We hope you'll continue to support this new iteration of the Pokémon-3D API with the same enthusiasm!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Points:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Please update your API integrations to use the new endpoint.&lt;/li&gt;
&lt;li&gt;The old endpoint is no longer active.&lt;/li&gt;
&lt;li&gt;We have added few new pokemon models.&lt;/li&gt;
&lt;li&gt;This release ensures the API's stability and future development.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Where to Find More Information:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For details on the API's features and structure, please refer to the &lt;a href="https://github.com/Sudhanshu-Ambastha/Pokemon-3D-api/blob/main/docs/CHANGELOG.md" rel="noopener noreferrer"&gt;v1.0.0 Changelog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We're committed to continuously improving the Pokémon-3D API. Expect new features, models, and enhancements in future releases. We appreciate your patience and understanding.&lt;/p&gt;

&lt;p&gt;Thank you for your continued support!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Sudhanshu-Ambastha/Pokemon-3D-api" rel="noopener noreferrer"&gt;Pokémon-3D API GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Sudhanshu-Ambastha/Pokemon-3D-api/releases/tag/v1.0.1" rel="noopener noreferrer"&gt;v1.0.1 Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>pokemon</category>
      <category>github</category>
      <category>threejs</category>
    </item>
    <item>
      <title>🚀 Major Release! Pokémon 3D API v1.0.0: Breaking Changes, Models, and More!</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Sat, 22 Mar 2025 07:42:05 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/major-release-pokemon-3d-api-v100-breaking-changes-models-and-more-6o1</link>
      <guid>https://dev.to/sudhanshuambastha/major-release-pokemon-3d-api-v100-breaking-changes-models-and-more-6o1</guid>
      <description>&lt;p&gt;Hey Dev.to community!&lt;/p&gt;

&lt;p&gt;I'm excited to announce the release of v1.0.0 of the Pokémon 3D API! This is a significant milestone, packed with breaking changes, a ton of new 3D models, and a complete overhaul of the documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What's New in v1.0.0?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This isn't just a minor update – we've made some fundamental changes to how the API works, so if you're already using it, please pay close attention!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;💥 Breaking API Changes:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The JSON response structure has been completely revamped. We've introduced a nested structure to better organize Pokémon forms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why the change?&lt;/strong&gt; This new structure allows for more flexibility and easier access to different Pokémon forms (regular, shiny, etc.).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Migration is necessary!&lt;/strong&gt; If your applications rely on the previous API structure, you'll need to update your parsing logic. Here's a quick example of the new format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"forms"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bulbasaur"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://raw.githubusercontent.com/Sudhanshu-Ambastha/Pokemon-3D/main/models/opt/regular/1.glb"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"formName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"regular"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Shiny Bulbasaur"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://raw.githubusercontent.com/Sudhanshu-Ambastha/Pokemon-3D/main/models/opt/shiny/1.glb"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"formName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"shiny"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;more&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;forms&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;more&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Pokémon&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;objects&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📚 Comprehensive Documentation Overhaul:
&lt;/h3&gt;

&lt;p&gt;We've completely rewritten the documentation to reflect the new API structure and provide more detailed explanations.&lt;/p&gt;

&lt;p&gt;Key updates include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clearer explanations of the API endpoint and JSON response structure.&lt;/li&gt;
&lt;li&gt;Updated Pokémon category and count information.&lt;/li&gt;
&lt;li&gt;Practical Example: For a working example of how to use the new API, check out the &lt;code&gt;opt.html&lt;/code&gt; file in the repository. This page is using the new API to display the optimized 3D models.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✨ Significant Model Additions:
&lt;/h3&gt;

&lt;p&gt;We've added few new 3D models to the collection! Now you have even more Pokémon to display in your projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Release Matters
&lt;/h3&gt;

&lt;p&gt;This release marks a significant step forward in making Pokémon 3D models readily accessible for developers. Whether you're building a fan project, a game, or just experimenting with 3D graphics, this API provides a convenient way to integrate Pokémon models.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Get Started
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Check out the updated documentation: &lt;a href="https://documenter.getpostman.com/view/29725199/2sAYX8KMU8" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Review the &lt;code&gt;opt.html&lt;/code&gt; example: &lt;a href="https://github.com/Sudhanshu-Ambastha/Pokemon-3D/blob/v1.0.0/opt.html" rel="noopener noreferrer"&gt;OPT.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Update your code: If you're using a previous version, make sure to update your code to handle the new JSON structure.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  We Need Your Feedback!
&lt;/h3&gt;

&lt;p&gt;This is a community-driven project, and your feedback is invaluable. If you encounter any issues, have suggestions for improvements, or just want to share your projects, please let us know in the comments below! We're eager to see what you build.&lt;/p&gt;

</description>
      <category>restapi</category>
      <category>news</category>
      <category>newrelease</category>
      <category>pokemon</category>
    </item>
    <item>
      <title>3D Pokémon Models via API: JSX or GLB - What's Your Take?</title>
      <dc:creator>Sudhanshu Ambastha</dc:creator>
      <pubDate>Tue, 18 Mar 2025 15:15:00 +0000</pubDate>
      <link>https://dev.to/sudhanshuambastha/3d-pokemon-models-via-api-jsx-or-glb-whats-your-take-3i5c</link>
      <guid>https://dev.to/sudhanshuambastha/3d-pokemon-models-via-api-jsx-or-glb-whats-your-take-3i5c</guid>
      <description>&lt;p&gt;Hey Devs,&lt;/p&gt;

&lt;p&gt;I've been tinkering with the &lt;strong&gt;Pokémon 3D API&lt;/strong&gt;, and it's raised an interesting question: &lt;strong&gt;&lt;em&gt;how do we provide 3D models in the most developer-friendly way? Specifically, JSX components vs. GLB files&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Perspective (as a "Client"):&lt;/strong&gt;&lt;br&gt;
For me, as someone building an application using the API, &lt;strong&gt;JSX components&lt;/strong&gt; are incredibly appealing. Imagine rendering a Pokémon with just a few lines of code like they are simpler to render, whereas in &lt;strong&gt;glb&lt;/strong&gt; we have to preprocess each file or do a manual setup while rendering to make them visible on UI &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Reality Check:&lt;/strong&gt;&lt;br&gt;
We know direct browser execution of fetched JSX has security risks and they also need to be compiled at runtime because which it doesn't work else download them but when there are more then 1k+ which could possibly reach to 2mb+ but when crossed 2k+ it will lead to 4mb as it will still load the glb models i.e makes load as 2-4 MB on fetch on site as the jsx one is just to simplify things and handling that many jsx comp is not good to be present in local. GLB files are safer, but the setup and preprocessing for each file..😩 &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alternatives I've Explored:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Server-Side Rendering (SSR):&lt;/strong&gt; Processing JSX and GLBs on the server and provide it to user but need to setup &lt;strong&gt;webpack&lt;/strong&gt; I don't even know does this will work or not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom DSL (Domain-Specific Language):&lt;/strong&gt; Using JSON to describe 3D scenes, enabling safer and more controlled client-side rendering, yeah we can provide position, scale for models with api.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebAssembly (WASM):&lt;/strong&gt; Compiling 3D processing code to WASM for better performance and potential security enhancements but I don't even know what is 'W' of WASM like never worked with it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NPM Module Delivery:&lt;/strong&gt; Packaging JSX components and their dependencies as NPM modules for easy installation and import but is the ease of installation worth the increased bundle size?.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The Question For You:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which approach do you find simpler, and why?&lt;/li&gt;
&lt;li&gt;How do we balance security with developer experience?&lt;/li&gt;
&lt;li&gt;For beginners, does the simplicity of JSX outweigh the potential complexities of using GLB files?&lt;/li&gt;
&lt;li&gt;If the current GLB-only approach is sufficient, and we can effectively preprocess it, is there truly a need for JSX components?&lt;/li&gt;
&lt;li&gt;What solutions can we explore to make 3d model rendering easier for everyone?&lt;/li&gt;
&lt;li&gt;CDN Delivery: Providing GLB files via CDN links, like: &lt;a href="https://cdn.jsdelivr.net/gh/Sudhanshu-Ambastha/Pokemon-3D/models/glb/alolan/103.glb" rel="noopener noreferrer"&gt;https://cdn.jsdelivr.net/gh/Sudhanshu-Ambastha/Pokemon-3D/models/glb/alolan/103.glb&lt;/a&gt; or &lt;a href="https://raw.githubusercontent.com/Sudhanshu-Ambastha/Pokemon-3D/main/models/glb/alolan/103.glb" rel="noopener noreferrer"&gt;https://raw.githubusercontent.com/Sudhanshu-Ambastha/Pokemon-3D/main/models/glb/alolan/103.glb&lt;/a&gt; but still it is same or what we use to point to file in api (i.e I meant from githubusercontent one) but as i heard cdn one can improve performance as it provides caching &amp;amp; can only provide max to 15 MB etc so is it a good idea to switch from githubusercontent to cdn?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm genuinely curious to hear your thoughts! Let's discuss in the comments.&lt;/p&gt;

</description>
      <category>threejs</category>
      <category>react</category>
      <category>glb</category>
      <category>nextjs</category>
    </item>
  </channel>
</rss>
