<?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: Rut Shah</title>
    <description>The latest articles on DEV Community by Rut Shah (@rutpshah88).</description>
    <link>https://dev.to/rutpshah88</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%2F3691888%2F3c12f376-d765-4817-8dd3-46f82baac39e.png</url>
      <title>DEV Community: Rut Shah</title>
      <link>https://dev.to/rutpshah88</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rutpshah88"/>
    <language>en</language>
    <item>
      <title>How to Debug React Prop Drilling with PropFlow</title>
      <dc:creator>Rut Shah</dc:creator>
      <pubDate>Thu, 05 Feb 2026 09:43:28 +0000</pubDate>
      <link>https://dev.to/rutpshah88/how-to-debug-react-prop-drilling-with-propflow-10n2</link>
      <guid>https://dev.to/rutpshah88/how-to-debug-react-prop-drilling-with-propflow-10n2</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You're debugging a React application. A button's theme color is wrong. You need to find where &lt;code&gt;type&lt;/code&gt; is coming from.&lt;/p&gt;

&lt;p&gt;You search your codebase. 47 results. 😫&lt;/p&gt;

&lt;p&gt;You start tracing manually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;NotificationBanner&lt;/code&gt; receives it from &lt;code&gt;WelcomeCard&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WelcomeCard&lt;/code&gt; receives it from &lt;code&gt;MainContent&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;MainContent&lt;/code&gt; receives it from &lt;code&gt;Dashboard&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And so on...&lt;/p&gt;

&lt;p&gt;20 minutes later, you find the issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There has to be a better way.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing PropFlow
&lt;/h2&gt;

&lt;p&gt;PropFlow is a VS Code extension that traces React props instantly.&lt;/p&gt;

&lt;p&gt;Hover over any prop → see its complete journey from source to usage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqgtv4xmn6b593qtwr5s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqgtv4xmn6b593qtwr5s.gif" alt=" " width="720" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔍 Instant Prop Tracing
&lt;/h3&gt;

&lt;p&gt;Place your cursor on any prop and run "PropFlow: Show PropFlow Lineage" (or use the CodeLens button).&lt;/p&gt;

&lt;p&gt;PropFlow analyzes your component tree and shows you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;SOURCE&lt;/strong&gt;: Where the prop originates&lt;/li&gt;
&lt;li&gt;🔵 &lt;strong&gt;USAGE&lt;/strong&gt;: Components passing it through
&lt;/li&gt;
&lt;li&gt;🟣 &lt;strong&gt;DEFINITION&lt;/strong&gt;: Where you're currently viewing it&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🗺️ Visual Flowcharts
&lt;/h3&gt;

&lt;p&gt;Hover over any prop to see an inline ASCII flowchart:&lt;/p&gt;

&lt;p&gt;🟢 App (SOURCE)&lt;br&gt;
└─ prop: "notificationVariant"&lt;br&gt;
↓&lt;br&gt;
🔵 Dashboard (USAGE)&lt;br&gt;
└─ prop: "alertType"&lt;br&gt;
...&lt;br&gt;
↓&lt;br&gt;
🟣 NotificationBanner (DEFINITION)&lt;br&gt;
└─ prop: "type"&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Click-to-Navigate
&lt;/h3&gt;

&lt;p&gt;Every component in the chain is clickable. Jump directly to the file and line where it's defined.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Real-Time Updates
&lt;/h3&gt;

&lt;p&gt;As you edit your code, PropFlow updates instantly. No need to save files.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 PropFlow Lineage Panel
&lt;/h3&gt;

&lt;p&gt;View the complete prop chain in a dedicated sidebar panel. Click any component to navigate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open VS Code&lt;/li&gt;
&lt;li&gt;Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)&lt;/li&gt;
&lt;li&gt;Search for "PropFlow"&lt;/li&gt;
&lt;li&gt;Click Install&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Or install from the [VS Code Marketplace] - &lt;a href="https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: Command Palette
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Place cursor on a prop name&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Ctrl+Shift+P&lt;/code&gt; (Cmd+Shift+P on Mac)&lt;/li&gt;
&lt;li&gt;Type "PropFlow: Show Prop Lineage"&lt;/li&gt;
&lt;li&gt;View results in PropFlow Lineage panel&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Method 2: CodeLens
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Look for "⬆ Trace Props" above component definitions&lt;/li&gt;
&lt;li&gt;Click it&lt;/li&gt;
&lt;li&gt;Select prop from dropdown&lt;/li&gt;
&lt;li&gt;View trace&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Method 3: Hover
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Hover over any prop in your component&lt;/li&gt;
&lt;li&gt;See inline flowchart&lt;/li&gt;
&lt;li&gt;Click components to navigate&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;PropFlow uses TypeScript's Compiler API (ts-morph) to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Parse React components into Abstract Syntax Trees&lt;/li&gt;
&lt;li&gt;Extract prop definitions from function parameters&lt;/li&gt;
&lt;li&gt;Search workspace for JSX usages&lt;/li&gt;
&lt;li&gt;Build complete prop lineage chains&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All processing happens locally. Your code never leaves your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🐛 Debugging
&lt;/h3&gt;

&lt;p&gt;Quickly find where a prop value is set or why it's the wrong value.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Understanding Codebases
&lt;/h3&gt;

&lt;p&gt;New to a project? Trace props to understand component relationships.&lt;/p&gt;

&lt;h3&gt;
  
  
  ♻️ Refactoring
&lt;/h3&gt;

&lt;p&gt;See all components affected by a prop before making changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎓 Learning
&lt;/h3&gt;

&lt;p&gt;Understand how data flows through React applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supported Features
&lt;/h2&gt;

&lt;p&gt;✅ Function components&lt;br&gt;&lt;br&gt;
✅ Arrow function components&lt;br&gt;&lt;br&gt;
✅ TypeScript &amp;amp; JavaScript&lt;br&gt;&lt;br&gt;
✅ JSX &amp;amp; TSX files&lt;br&gt;&lt;br&gt;
✅ Props destructuring&lt;br&gt;&lt;br&gt;
✅ Interface/Type definitions&lt;br&gt;&lt;br&gt;
✅ Spread operators (marked as ambiguous)&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Server Component awareness&lt;/li&gt;
&lt;li&gt;[ ] Multi-prop tracing&lt;/li&gt;
&lt;li&gt;[ ] Context API support
&lt;/li&gt;
&lt;li&gt;[ ] Redux/Zustand state tracing&lt;/li&gt;
&lt;li&gt;[ ] Export flow diagrams&lt;/li&gt;
&lt;li&gt;[ ] Graph visualization mode&lt;/li&gt;
&lt;li&gt;[ ] Full-stack data flow visualization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;PropFlow is completely free and open source.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VS Code Marketplace&lt;/strong&gt;: &lt;a href="https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/rutpshah/propflow" rel="noopener noreferrer"&gt;https://github.com/rutpshah/propflow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt;: MIT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find it useful, a ⭐ on GitHub helps!&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback
&lt;/h2&gt;

&lt;p&gt;What would make PropFlow more useful for you?&lt;/p&gt;

&lt;p&gt;Leave a comment below or &lt;a href="https://github.com/rutpshah/propflow/issues" rel="noopener noreferrer"&gt;open an issue on GitHub&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Happy prop tracing! 🚀&lt;/p&gt;

</description>
      <category>react</category>
      <category>tutorial</category>
      <category>vscode</category>
      <category>beginners</category>
    </item>
    <item>
      <title>PropFlow: Visual Prop Tracing for React, Next.js &amp; Remix</title>
      <dc:creator>Rut Shah</dc:creator>
      <pubDate>Wed, 04 Feb 2026 09:48:27 +0000</pubDate>
      <link>https://dev.to/rutpshah88/propflow-trace-react-props-through-your-component-hierarchy-in-vs-code-18m3</link>
      <guid>https://dev.to/rutpshah88/propflow-trace-react-props-through-your-component-hierarchy-in-vs-code-18m3</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You're debugging a React application. A button's theme color is wrong. You need to find where &lt;code&gt;type&lt;/code&gt; is coming from.&lt;/p&gt;

&lt;p&gt;You search your codebase. 47 results. 😫&lt;/p&gt;

&lt;p&gt;You start tracing manually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;NotificationBanner&lt;/code&gt; receives it from &lt;code&gt;WelcomeCard&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WelcomeCard&lt;/code&gt; receives it from &lt;code&gt;MainContent&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;MainContent&lt;/code&gt; receives it from &lt;code&gt;Dashboard&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And so on...&lt;/p&gt;

&lt;p&gt;20 minutes later, you find the issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There has to be a better way.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing PropFlow
&lt;/h2&gt;

&lt;p&gt;PropFlow is a VS Code extension that traces React props instantly.&lt;/p&gt;

&lt;p&gt;Hover over any prop → see its complete journey from source to usage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqgtv4xmn6b593qtwr5s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqgtv4xmn6b593qtwr5s.gif" alt=" " width="720" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔍 Instant Prop Tracing
&lt;/h3&gt;

&lt;p&gt;Place your cursor on any prop and run "PropFlow: Show PropFlow Lineage" (or use the CodeLens button).&lt;/p&gt;

&lt;p&gt;PropFlow analyzes your component tree and shows you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;SOURCE&lt;/strong&gt;: Where the prop originates&lt;/li&gt;
&lt;li&gt;🔵 &lt;strong&gt;USAGE&lt;/strong&gt;: Components passing it through
&lt;/li&gt;
&lt;li&gt;🟣 &lt;strong&gt;DEFINITION&lt;/strong&gt;: Where you're currently viewing it&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🗺️ Visual Flowcharts
&lt;/h3&gt;

&lt;p&gt;Hover over any prop to see an inline ASCII flowchart:&lt;/p&gt;

&lt;p&gt;🟢 App (SOURCE)&lt;br&gt;
└─ prop: "notificationVariant"&lt;br&gt;
↓&lt;br&gt;
🔵 Dashboard (USAGE)&lt;br&gt;
└─ prop: "alertType"&lt;br&gt;
...&lt;br&gt;
↓&lt;br&gt;
🟣 NotificationBanner (DEFINITION)&lt;br&gt;
└─ prop: "type"&lt;/p&gt;

&lt;h3&gt;
  
  
  🔗 Click-to-Navigate
&lt;/h3&gt;

&lt;p&gt;Every component in the chain is clickable. Jump directly to the file and line where it's defined.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Real-Time Updates
&lt;/h3&gt;

&lt;p&gt;As you edit your code, PropFlow updates instantly. No need to save files.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 PropFlow Lineage Panel
&lt;/h3&gt;

&lt;p&gt;View the complete prop chain in a dedicated sidebar panel. Click any component to navigate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open VS Code&lt;/li&gt;
&lt;li&gt;Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)&lt;/li&gt;
&lt;li&gt;Search for "PropFlow"&lt;/li&gt;
&lt;li&gt;Click Install&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Or install from the [VS Code Marketplace] - &lt;a href="https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: Command Palette
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Place cursor on a prop name&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Ctrl+Shift+P&lt;/code&gt; (Cmd+Shift+P on Mac)&lt;/li&gt;
&lt;li&gt;Type "PropFlow: Show Prop Lineage"&lt;/li&gt;
&lt;li&gt;View results in PropFlow Lineage panel&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Method 2: CodeLens
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Look for "⬆ Trace Props" above component definitions&lt;/li&gt;
&lt;li&gt;Click it&lt;/li&gt;
&lt;li&gt;Select prop from dropdown&lt;/li&gt;
&lt;li&gt;View trace&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Method 3: Hover
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Hover over any prop in your component&lt;/li&gt;
&lt;li&gt;See inline flowchart&lt;/li&gt;
&lt;li&gt;Click components to navigate&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;PropFlow uses TypeScript's Compiler API (ts-morph) to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Parse React components into Abstract Syntax Trees&lt;/li&gt;
&lt;li&gt;Extract prop definitions from function parameters&lt;/li&gt;
&lt;li&gt;Search workspace for JSX usages&lt;/li&gt;
&lt;li&gt;Build complete prop lineage chains&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All processing happens locally. Your code never leaves your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🐛 Debugging
&lt;/h3&gt;

&lt;p&gt;Quickly find where a prop value is set or why it's the wrong value.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Understanding Codebases
&lt;/h3&gt;

&lt;p&gt;New to a project? Trace props to understand component relationships.&lt;/p&gt;

&lt;h3&gt;
  
  
  ♻️ Refactoring
&lt;/h3&gt;

&lt;p&gt;See all components affected by a prop before making changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎓 Learning
&lt;/h3&gt;

&lt;p&gt;Understand how data flows through React applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supported Features
&lt;/h2&gt;

&lt;p&gt;✅ Function components&lt;br&gt;&lt;br&gt;
✅ Arrow function components&lt;br&gt;&lt;br&gt;
✅ TypeScript &amp;amp; JavaScript&lt;br&gt;&lt;br&gt;
✅ JSX &amp;amp; TSX files&lt;br&gt;&lt;br&gt;
✅ Props destructuring&lt;br&gt;&lt;br&gt;
✅ Interface/Type definitions&lt;br&gt;&lt;br&gt;
✅ Spread operators (marked as ambiguous)&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Server Component awareness&lt;/li&gt;
&lt;li&gt;[ ] Multi-prop tracing&lt;/li&gt;
&lt;li&gt;[ ] Context API support
&lt;/li&gt;
&lt;li&gt;[ ] Redux/Zustand state tracing&lt;/li&gt;
&lt;li&gt;[ ] Export flow diagrams&lt;/li&gt;
&lt;li&gt;[ ] Graph visualization mode&lt;/li&gt;
&lt;li&gt;[ ] Full-stack data flow visualization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;PropFlow is completely free and open source.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VS Code Marketplace&lt;/strong&gt;: &lt;a href="https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/rutpshah/propflow" rel="noopener noreferrer"&gt;https://github.com/rutpshah/propflow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt;: MIT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find it useful, a ⭐ on GitHub helps!&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback
&lt;/h2&gt;

&lt;p&gt;What would make PropFlow more useful for you?&lt;/p&gt;

&lt;p&gt;Leave a comment below or &lt;a href="https://github.com/rutpshah/propflow/issues" rel="noopener noreferrer"&gt;open an issue on GitHub&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Happy prop tracing! 🚀&lt;/p&gt;

</description>
      <category>react</category>
      <category>vscode</category>
      <category>nextjs</category>
      <category>productivity</category>
    </item>
    <item>
      <title>PropFlow: A VSCode Extension to Visualize React Prop Drilling</title>
      <dc:creator>Rut Shah</dc:creator>
      <pubDate>Tue, 27 Jan 2026 15:56:00 +0000</pubDate>
      <link>https://dev.to/rutpshah88/propflow-a-vscode-extension-to-visualize-react-prop-drilling-19dj</link>
      <guid>https://dev.to/rutpshah88/propflow-a-vscode-extension-to-visualize-react-prop-drilling-19dj</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkv2fv4z4yofih4i3gjst.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkv2fv4z4yofih4i3gjst.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  PropFlow: End the Prop Drilling Detective Work
&lt;/h1&gt;

&lt;h2&gt;
  
  
  The Problem: The 10-File Treasure Hunt
&lt;/h2&gt;

&lt;p&gt;You're debugging a React app. A prop has the wrong value. You know &lt;em&gt;where&lt;/em&gt; it's used, but not &lt;em&gt;where it comes from&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;So you start clicking:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;Button&amp;gt;&lt;/code&gt; receives &lt;code&gt;variant&lt;/code&gt; → Check parent&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;Card&amp;gt;&lt;/code&gt; passes &lt;code&gt;variant={variant}&lt;/code&gt; → Check its parent
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;Dashboard&amp;gt;&lt;/code&gt; passes &lt;code&gt;variant={type}&lt;/code&gt; → Wait, it's renamed! Check its parent&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;App&amp;gt;&lt;/code&gt; passes &lt;code&gt;type="primary"&lt;/code&gt; → Finally found it!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;10 minutes later&lt;/strong&gt;, you've mentally reconstructed a component tree just to trace one prop.&lt;/p&gt;

&lt;p&gt;There had to be a better way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: Hover and See
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;PropFlow&lt;/strong&gt; is a VS Code extension that shows you the complete propflow lineage in a hover tooltip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🟢 App (SOURCE)
    └─ prop: "primary"
        ↓
    🔵 Dashboard  
        └─ prop: "type" → renamed to "variant"
            ↓
    🔵 Card
        └─ prop: "variant" (passed through)
            ↓
    🟣 Button
        └─ prop: "variant" (CURRENT)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;One hover. Complete visibility.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Instant Prop Tracing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Hover over any prop in a React component to see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where it originates (the SOURCE)&lt;/li&gt;
&lt;li&gt;Every component in the chain&lt;/li&gt;
&lt;li&gt;How it's renamed or transformed&lt;/li&gt;
&lt;li&gt;Which components just pass it through&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Visual Flowchart&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Color-coded nodes make it obvious:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🟢 &lt;strong&gt;SOURCE&lt;/strong&gt; = Where the data originates (literal value)&lt;/li&gt;
&lt;li&gt;🔵 &lt;strong&gt;USAGE&lt;/strong&gt; = Pass-through component&lt;/li&gt;
&lt;li&gt;🟣 &lt;strong&gt;DEFINITION&lt;/strong&gt; = Current component receiving the prop&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Click-to-Navigate&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Each component in the flowchart is clickable. Jump directly to the file and line where the prop is passed.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Handles Edge Cases&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Prop renaming: &lt;code&gt;&amp;lt;Child title={props.name} /&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;✅ Spread operators: &lt;code&gt;&amp;lt;Child {...props} /&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;✅ Destructured props: &lt;code&gt;function Button({ label, onClick })&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;✅ Default exports, named exports, aliases&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;Sidebar Tree View&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For deeper analysis, open the &lt;strong&gt;PropFlow Lineage&lt;/strong&gt; sidebar to see the full tree structure with expand/collapse.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;PropFlow uses &lt;strong&gt;static analysis&lt;/strong&gt; to trace props:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;AST Parsing&lt;/strong&gt; with &lt;code&gt;ts-morph&lt;/code&gt; to understand component structure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workspace Search&lt;/strong&gt; to find JSX usages: &lt;code&gt;&amp;lt;ComponentName prop={...} /&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph Building&lt;/strong&gt; to construct the parent → child chain recursively&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code APIs&lt;/strong&gt; for hover providers, tree views, and navigation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;No runtime overhead.&lt;/strong&gt; It only analyzes when you hover or request a trace.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  From Marketplace
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Search for "PropFlow" in the Extensions panel.&lt;/li&gt;
&lt;li&gt;Visit: &lt;a href="https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: Hover (Fastest)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open a React component file&lt;/li&gt;
&lt;li&gt;Hover over any prop in the function parameters&lt;/li&gt;
&lt;li&gt;See the complete flow instantly&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Method 2: Command Palette
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Place cursor on a prop&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Ctrl+Shift+P&lt;/code&gt; → "PropFlow: Show Lineage"&lt;/li&gt;
&lt;li&gt;View the tree in the sidebar&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Method 3: CodeLens
&lt;/h3&gt;

&lt;p&gt;Click the "⬆ Trace Props" link that appears above component definitions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;File: Button.tsx&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;label&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;label&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;File: Card.tsx&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Button&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Card&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;buttonLabel&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt; &lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;buttonLabel&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;File: App.tsx&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Card&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Card&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Card&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Welcome"&lt;/span&gt; &lt;span class="na"&gt;buttonLabel&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Click Me"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Hover over &lt;code&gt;label&lt;/code&gt; in Button.tsx:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🟢 App (SOURCE)
    └─ prop: "Click Me"
        ↓
    🔵 Card
        └─ prop: "buttonLabel" → renamed to "label"
            ↓
    🟣 Button
        └─ prop: "label" (CURRENT)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Performance
&lt;/h2&gt;

&lt;p&gt;PropFlow is designed for &lt;strong&gt;large codebases&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ Sub-second tracing for chains up to 5 levels deep&lt;/li&gt;
&lt;li&gt;🔋 Pull-based model (only analyzes on demand)&lt;/li&gt;
&lt;li&gt;🎯 Leverages VS Code's native language server for fast lookups&lt;/li&gt;
&lt;li&gt;📦 Minimal memory footprint (~2-3 MB)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tested on projects with 10,000+ files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Known Limitations (v1.0)
&lt;/h2&gt;

&lt;p&gt;PropFlow currently does &lt;strong&gt;not&lt;/strong&gt; trace:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context API (&lt;code&gt;useContext&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Redux/Zustand store connections&lt;/li&gt;
&lt;li&gt;Class components (function components only)&lt;/li&gt;
&lt;li&gt;Dynamic/runtime prop values&lt;/li&gt;
&lt;li&gt;Props from external libraries (stops at the boundary)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are on the roadmap for future releases!&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; for type safety&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ts-morph&lt;/strong&gt; for AST parsing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code Extension API&lt;/strong&gt; for IDE integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mocha&lt;/strong&gt; for testing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;PropFlow is open source (MIT License) and welcomes contributions!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/rutpshah/propflow" rel="noopener noreferrer"&gt;https://github.com/rutpshah/propflow&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ideas for Contribution:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add Context API tracing&lt;/li&gt;
&lt;li&gt;Support Vue/Angular components&lt;/li&gt;
&lt;li&gt;Add "Find all usages of this prop" command&lt;/li&gt;
&lt;li&gt;Improve spread operator detection&lt;/li&gt;
&lt;li&gt;Add configuration options&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

&lt;h3&gt;
  
  
  v1.1
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Context API support&lt;/li&gt;
&lt;li&gt;[ ] Redux store tracing&lt;/li&gt;
&lt;li&gt;[ ] Performance improvements for monorepos&lt;/li&gt;
&lt;li&gt;[ ] Customizable color schemes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v1.2
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Class component support&lt;/li&gt;
&lt;li&gt;[ ] Prop documentation in hover&lt;/li&gt;
&lt;li&gt;[ ] Export flow diagrams as images&lt;/li&gt;
&lt;li&gt;[ ] Multi-root workspace support&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.0
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Vue.js support&lt;/li&gt;
&lt;li&gt;[ ] Angular component tracing&lt;/li&gt;
&lt;li&gt;[ ] Real-time collaboration features&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;After 16+ years in frontend development, I've spent countless hours tracing props through component trees. Every team I've worked with has faced this challenge. &lt;/p&gt;

&lt;p&gt;Most solutions require external tools, browser extensions, or runtime instrumentation. I wanted something &lt;strong&gt;native to VS Code, zero-configuration, and instant&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;PropFlow is my attempt to save every React developer those frustrating 10-minute debugging sessions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Today
&lt;/h2&gt;

&lt;p&gt;If you've ever:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lost time tracing prop drilling&lt;/li&gt;
&lt;li&gt;Wished you could see data flow at a glance&lt;/li&gt;
&lt;li&gt;Struggled onboarding to a large React codebase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Give PropFlow a try. I'd love your feedback!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt; &lt;a href="https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=rutpshah.propflow&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://github.com/rutpshah/propflow" rel="noopener noreferrer"&gt;https://github.com/rutpshah/propflow&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Issues/Feature Requests:&lt;/strong&gt; &lt;a href="https://github.com/rutpshah/propflow/issues" rel="noopener noreferrer"&gt;https://github.com/rutpshah/propflow/issues&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your biggest pain point with React component data flow? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;




</description>
      <category>react</category>
      <category>vscode</category>
      <category>webdev</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
