<?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: Kareem Rufai </title>
    <description>The latest articles on DEV Community by Kareem Rufai  (@iqbii).</description>
    <link>https://dev.to/iqbii</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%2F4007033%2F16996b5f-a14a-4efc-b3bb-dd2abd06c9e8.png</url>
      <title>DEV Community: Kareem Rufai </title>
      <link>https://dev.to/iqbii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iqbii"/>
    <language>en</language>
    <item>
      <title>I built an AI code documentation tool to clean messy code with zero documentation.</title>
      <dc:creator>Kareem Rufai </dc:creator>
      <pubDate>Sun, 28 Jun 2026 22:17:24 +0000</pubDate>
      <link>https://dev.to/iqbii/i-built-an-ai-code-documentation-tool-to-clean-messy-code-with-zero-documentation-1dhm</link>
      <guid>https://dev.to/iqbii/i-built-an-ai-code-documentation-tool-to-clean-messy-code-with-zero-documentation-1dhm</guid>
      <description>&lt;p&gt;If you've ever inherited someone else's code with zero documentation, you know the pain. You spend hours just figuring out what a function does before you can even touch it.&lt;/p&gt;

&lt;p&gt;I built legacydoc to fix that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is legacydoc?
&lt;/h2&gt;

&lt;p&gt;legacydoc is a tool that takes any undocumented code and generates clean, professional documentation for it instantly. You paste your code, click a button, and get structured docs back in seconds.&lt;/p&gt;

&lt;p&gt;No setup. No configuration. Just paste and go.&lt;/p&gt;

&lt;p&gt;👉 Try it here: &lt;a href="https://legacydoc.io" rel="noopener noreferrer"&gt;https://legacydoc.io&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;You paste your code into the input box. The code gets sent to an API running on AWS Lambda, which processes it and returns structured documentation. The whole round trip takes a few seconds.&lt;/p&gt;

&lt;p&gt;Here's a simple example. You paste this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_discount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;price&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;percentage&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;percentage&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you get back something like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;br&gt;
Calculates the final price after applying a percentage discount.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;price: The original price before discount&lt;/li&gt;
&lt;li&gt;percentage: The discount percentage to apply&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Returns&lt;/strong&gt;&lt;br&gt;
The discounted price as a float&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
calculate_discount(100, 20) → 80.0&lt;/p&gt;

&lt;h2&gt;
  
  
  The tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AWS Lambda — handles the API requests&lt;/li&gt;
&lt;li&gt;GCP Cloud Run — backup API layer&lt;/li&gt;
&lt;li&gt;GitHub Pages — hosts the frontend&lt;/li&gt;
&lt;li&gt;Vanilla HTML/CSS/JS — no framework needed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I learned building this
&lt;/h2&gt;

&lt;p&gt;Deploying to AWS Lambda for the first time was intimidating. I kept running into CORS errors and IAM permission issues. But once it clicked, it clicked. The free tier covers everything for a small tool like this.&lt;/p&gt;

&lt;p&gt;The biggest lesson: ship early. I spent too long trying to make it perfect before anyone had even used it. The first version was rough. That's fine.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I'm working on adding usage tracking and eventually a paid tier for teams who want unlimited documentation. If you're interested in following along, I'm building this in public.&lt;/p&gt;

&lt;p&gt;Try legacydoc at &lt;a href="https://legacydoc.io" rel="noopener noreferrer"&gt;https://legacydoc.io&lt;/a&gt; and let me know what you think in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
