<?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: PrajwalTheCoder</title>
    <description>The latest articles on DEV Community by PrajwalTheCoder (@prajwalthecoder).</description>
    <link>https://dev.to/prajwalthecoder</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4196292%2F22c8f52a-9daa-42b7-a878-9b0ebb1aa7e5.png</url>
      <title>DEV Community: PrajwalTheCoder</title>
      <link>https://dev.to/prajwalthecoder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prajwalthecoder"/>
    <language>en</language>
    <item>
      <title>How I Built an Autonomous Website Audit &amp; Discovery Tool with FastAPI, React 19 &amp; Google Gemini</title>
      <dc:creator>PrajwalTheCoder</dc:creator>
      <pubDate>Tue, 20 Oct 2026 14:28:08 +0000</pubDate>
      <link>https://dev.to/prajwalthecoder/how-i-built-an-autonomous-website-audit-discovery-tool-with-fastapi-react-19-google-gemini-2l1l</link>
      <guid>https://dev.to/prajwalthecoder/how-i-built-an-autonomous-website-audit-discovery-tool-with-fastapi-react-19-google-gemini-2l1l</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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9sl00yxzo30mbr0954ch.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9sl00yxzo30mbr0954ch.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopwubxamonbko5ov48sn.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopwubxamonbko5ov48sn.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgsd5o04pc70glot5jj1n.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgsd5o04pc70glot5jj1n.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgkfcr72vqmr7ycdo0g6f.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgkfcr72vqmr7ycdo0g6f.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrjbtrao9133zv9ejzll.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrjbtrao9133zv9ejzll.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhe4987fb03t58qk9p2mv.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhe4987fb03t58qk9p2mv.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cold outreach in 2026 is broken. Business owners get flooded every day with generic template spam like &lt;em&gt;"Hey, I noticed your website could use an upgrade..."&lt;/em&gt;—with zero proof and zero personalization.&lt;/p&gt;

&lt;p&gt;I spent the last month building an open-source alternative: &lt;strong&gt;Leddro&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;Instead of spamming businesses, Leddro discovers authentic local businesses, runs deep server-side diagnostics (DNS, TLS/SSL, TTFB speed, mobile responsiveness), and drafts fact-checked proposals that cite authentic audit findings.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/5XIetvU-NII" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The Architecture &amp;amp; Command Center
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ekjaq07iok7o0k3aild.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4ekjaq07iok7o0k3aild.png" alt="Command Center &amp;amp; Tactical Radar Overview" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Deterministic Local Discovery (OpenStreetMap)
&lt;/h3&gt;

&lt;p&gt;Rather than scraping bloated or stale lead databases, Leddro queries public geographic registries (&lt;strong&gt;OpenStreetMap Overpass API&lt;/strong&gt;) by commercial category and locality. It pinpoints real, verified businesses that either have &lt;strong&gt;zero web footprint&lt;/strong&gt; or have broken websites.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqh1bjxqzbjhj0vs646au.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqh1bjxqzbjhj0vs646au.png" alt="Autonomous Business Discovery" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Deep Diagnostic Probes
&lt;/h3&gt;

&lt;p&gt;For businesses with a website, Leddro runs automated multi-vector checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DNS Records&lt;/strong&gt;: Resolves A, AAAA, MX, and NS records to identify deliverability risks (missing SPF and DMARC policies).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TLS Handshake&lt;/strong&gt;: Inspects certificate validity, cipher suites, and flags legacy protocols (TLS 1.0/1.1).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TTFB &amp;amp; HTTP Speed&lt;/strong&gt;: Measures raw socket latency and Time-to-First-Byte down to milliseconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DOM &amp;amp; Mobile Check&lt;/strong&gt;: Evaluates HTML viewport declarations and broken links.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Evidence-Grounded AI Proposals
&lt;/h3&gt;

&lt;p&gt;Powered by &lt;strong&gt;Google Gemini 2.5 Flash&lt;/strong&gt; (via free Google AI Studio keys), OpenAI, or local Ollama. The AI draft engine is strictly constrained to cite authentic finding IDs from the audit—eliminating hallucinated marketing claims.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Interactive Force-Directed Knowledge Graph
&lt;/h3&gt;

&lt;p&gt;Built with &lt;strong&gt;D3.js force simulation&lt;/strong&gt;, mapping real-time physical links between target businesses, DNS nameservers, AI engines, and Gmail dispatch gateways.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Python 3.12+, FastAPI, SQLAlchemy ORM, SQLite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React 19, TypeScript, Vite, Tailwind CSS, D3.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrations&lt;/strong&gt;: OpenStreetMap Overpass, Google Gemini API, Gmail OAuth 2.0&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌟 Try It Out &amp;amp; Source Code
&lt;/h2&gt;

&lt;p&gt;The entire project is 100% open source under the MIT License:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭐ &lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/PrajwalTheCoder/Leddro" rel="noopener noreferrer"&gt;github.com/PrajwalTheCoder/Leddro&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Interactive Demo Sandbox&lt;/strong&gt;: &lt;a href="https://prajwalthecoder.github.io/Leddro/" rel="noopener noreferrer"&gt;prajwalthecoder.github.io/Leddro&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📺 &lt;strong&gt;Full Video Walkthrough&lt;/strong&gt;: &lt;a href="https://youtu.be/5XIetvU-NII" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Would love to hear your feedback on the architecture, crawler safeguards, and scoring model in the comments!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>fastapi</category>
      <category>python</category>
      <category>react</category>
    </item>
  </channel>
</rss>
