<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Devanshu Verma — Blog</title>
    <link>https://www.devanshuverma.in/blog</link>
    <description>Thoughts on web development, React, Next.js, CSS, and building things for the web.</description>
    <language>en-US</language>
    <lastBuildDate>Sat, 05 Sep 2026 16:25:15 GMT</lastBuildDate>
    <atom:link href="https://www.devanshuverma.in/blog/feed.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>TanStack npm Supply Chain Attack: What Happened and How to Protect Your Projects</title>
      <link>https://www.devanshuverma.in/blog/tanstack-npm-supply-chain-attack-complete-guide</link>
      <guid isPermaLink="true">https://www.devanshuverma.in/blog/tanstack-npm-supply-chain-attack-complete-guide</guid>
      <pubDate>Wed, 19 Aug 2026 15:21:45 GMT</pubDate>
      <description>TanStack packages were compromised in a mass npm supply chain attack. Here&apos;s a deep-dive into what happened, how the attack worked, and the concrete steps every JavaScript developer must take to protect their projects right now.</description>
      <category>javascript</category>
        <category>security</category>
        <category>npm</category>
        <category>supply-chain</category>
        <category>tanstack</category>
    </item>
    <item>
      <title>How to Set Minimum Release Age for Your Package Manager (npm, pnpm, Yarn, Bun &amp; Deno)</title>
      <link>https://www.devanshuverma.in/blog/minimum-release-age-package-managers-complete-guide</link>
      <guid isPermaLink="true">https://www.devanshuverma.in/blog/minimum-release-age-package-managers-complete-guide</guid>
      <pubDate>Sun, 19 Jul 2026 17:21:40 GMT</pubDate>
      <description>No package manager supports minimum release age natively — but you can enforce it. Here&apos;s a complete guide for npm, pnpm, Yarn, Bun, and Deno, plus a universal CI script that works everywhere.</description>
      <category>javascript</category>
        <category>npm</category>
        <category>security</category>
        <category>package-management</category>
        <category>devops</category>
        <category>pnpm</category>
        <category>yarn</category>
    </item>
    <item>
      <title>npm RFC: Making Install Scripts Opt-In — A Deep Dive into What It Means for JavaScript Security</title>
      <link>https://www.devanshuverma.in/blog/npm-rfc-install-scripts-opt-in-deep-dive</link>
      <guid isPermaLink="true">https://www.devanshuverma.in/blog/npm-rfc-install-scripts-opt-in-deep-dive</guid>
      <pubDate>Mon, 01 Jun 2026 17:49:31 GMT</pubDate>
      <description>A landmark npm RFC proposes making install scripts opt-in by default. This deep-dive covers how the current system works, why it&apos;s dangerous, what the RFC proposes, the tradeoffs involved, and how you can protect yourself right now.</description>
      <category>javascript</category>
        <category>npm</category>
        <category>security</category>
        <category>rfc</category>
        <category>supply-chain</category>
        <category>devops</category>
    </item>
    <item>
      <title>JavaScript Has No Reliable Tail Call Optimization: What Actually Happens at Runtime</title>
      <link>https://www.devanshuverma.in/blog/javascript-tail-call-optimization-runtime-reality</link>
      <guid isPermaLink="true">https://www.devanshuverma.in/blog/javascript-tail-call-optimization-runtime-reality</guid>
      <pubDate>Sun, 17 May 2026 04:38:35 GMT</pubDate>
      <description>ES6 promised tail call optimization — but V8 and Firefox never delivered. Here&apos;s what actually happens in Node.js when you write tail-recursive code, and the patterns (trampolining, iteration, generators) that actually work everywhere.</description>
      <category>javascript</category>
        <category>recursion</category>
        <category>performance</category>
        <category>optimization</category>
        <category>functional-programming</category>
        <category>node</category>
    </item>
    <item>
      <title>BlueJS: Compiling JavaScript to 1.2MB Native Binaries Without V8</title>
      <link>https://www.devanshuverma.in/blog/bluejs-native-binaries-without-v8-deep-dive</link>
      <guid isPermaLink="true">https://www.devanshuverma.in/blog/bluejs-native-binaries-without-v8-deep-dive</guid>
      <pubDate>Sat, 16 May 2026 07:12:52 GMT</pubDate>
      <description>BlueJS is a groundbreaking new compiler that turns JavaScript into tiny native binaries without bundling V8. We explore how it works, what it&apos;s good for, and where it fits in the future of JavaScript deployment.</description>
      <category>javascript</category>
        <category>compilation</category>
        <category>native</category>
        <category>performance</category>
        <category>tooling</category>
        <category>webdev</category>
    </item>
    <item>
      <title>Building My Portfolio with Next.js 15 — What I Learned</title>
      <link>https://www.devanshuverma.in/blog/building-my-portfolio-with-nextjs-15</link>
      <guid isPermaLink="true">https://www.devanshuverma.in/blog/building-my-portfolio-with-nextjs-15</guid>
      <pubDate>Fri, 15 May 2026 16:00:05 GMT</pubDate>
      <description>Every developer rewrites their portfolio eventually. Here&apos;s the stack I chose, what surprised me about Next.js 15&apos;s App Router, and a few things I&apos;d do differently.</description>
      <category>Next.js</category>
        <category>React</category>
        <category>TypeScript</category>
        <category>CSS</category>
    </item>
  </channel>
</rss>