<?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>Forem: Sanjay Kumar Negi</title>
    <description>The latest articles on Forem by Sanjay Kumar Negi (@sanjaynegi94).</description>
    <link>https://forem.com/sanjaynegi94</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%2F3712928%2F980eb644-f71a-4ec5-ada0-f8a0cf5522a9.png</url>
      <title>Forem: Sanjay Kumar Negi</title>
      <link>https://forem.com/sanjaynegi94</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sanjaynegi94"/>
    <language>en</language>
    <item>
      <title>I Built an AI Tool to Generate SEO Blogs &amp; Pages - Here’s What I Learned</title>
      <dc:creator>Sanjay Kumar Negi</dc:creator>
      <pubDate>Thu, 15 Jan 2026 15:01:53 +0000</pubDate>
      <link>https://forem.com/sanjaynegi94/i-built-an-ai-tool-to-generate-seo-blogs-pages-heres-what-i-learned-412g</link>
      <guid>https://forem.com/sanjaynegi94/i-built-an-ai-tool-to-generate-seo-blogs-pages-heres-what-i-learned-412g</guid>
      <description>&lt;p&gt;As developers, we love automation but content creation is still painfully manual for most teams.&lt;/p&gt;

&lt;p&gt;I kept seeing the same problem across founders, indie hackers, and agencies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing SEO blogs takes hours&lt;/li&gt;
&lt;li&gt;Landing pages are repetitive&lt;/li&gt;
&lt;li&gt;Social content is inconsistent&lt;/li&gt;
&lt;li&gt;Existing AI tools feel fragmented or overcomplicated&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I decided to build a tool to solve my own workflow problem first and that project became &lt;a href="https://minineo.com/" rel="noopener noreferrer"&gt;Minineo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post isn’t a promo.&lt;br&gt;
It’s a breakdown of what I built, what worked, what didn’t, and what I learned along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Original Problem
&lt;/h2&gt;

&lt;p&gt;My goal was simple:&lt;/p&gt;

&lt;p&gt;Go from keyword → published content with as little manual work as possible.&lt;/p&gt;

&lt;p&gt;But most tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate raw text only&lt;/li&gt;
&lt;li&gt;Don’t respect SEO structure&lt;/li&gt;
&lt;li&gt;Break when you try to scale&lt;/li&gt;
&lt;li&gt;Leave publishing &amp;amp; formatting to you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something developer-friendly, predictable, and automatable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Approach I Took
&lt;/h2&gt;

&lt;p&gt;Instead of one big AI prompt, I split the system into clear stages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Intent-first content planning&lt;/li&gt;
&lt;li&gt;Strict structure enforcement&lt;/li&gt;
&lt;li&gt;Usage limits handled server-side&lt;/li&gt;
&lt;li&gt;Publishing treated as a pipeline, not a button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That design decision saved me weeks later.&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%2Fyrn0dzyh1c0942dh6cto.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%2Fyrn0dzyh1c0942dh6cto.png" alt="Minineo" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture (High Level)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Next.js for the app layer&lt;/li&gt;
&lt;li&gt;Supabase for auth, data, and RPCs&lt;/li&gt;
&lt;li&gt;Server Actions for usage enforcement&lt;/li&gt;
&lt;li&gt;AI models only handle generation not business logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key rule I followed:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Never trust the client for usage limits&lt;/li&gt;
&lt;li&gt;Always enforce limits via server-side RPCs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This made the system production-safe early on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Content Generation Strategy
&lt;/h2&gt;

&lt;p&gt;Instead of “write a blog about X”, the AI gets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed heading hierarchy&lt;/li&gt;
&lt;li&gt;Explicit SEO constraints&lt;/li&gt;
&lt;li&gt;Word count bounds&lt;/li&gt;
&lt;li&gt;Section responsibilities&lt;/li&gt;
&lt;/ul&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%2Fhyl975xoywgfmgn8m31g.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%2Fhyl975xoywgfmgn8m31g.png" alt="Minineo" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This dramatically reduced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hallucinations&lt;/li&gt;
&lt;li&gt;Fluff&lt;/li&gt;
&lt;li&gt;Rewrites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The output became predictable enough to automate publishing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Media Was Harder Than Text
&lt;/h2&gt;

&lt;p&gt;Text was easy. Media wasn’t.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problems I hit:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hotlinking external images (bad idea)&lt;/li&gt;
&lt;li&gt;WordPress rejecting uploads&lt;/li&gt;
&lt;li&gt;Social platforms requiring different auth models&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download → upload → replace URLs at publish time&lt;/li&gt;
&lt;li&gt;Treat media as a post-processing step, not generation&lt;/li&gt;
&lt;li&gt;This separation kept the core clean.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Didn’t Work
&lt;/h2&gt;

&lt;p&gt;Being honest a few mistakes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trying to support every social platform early&lt;/li&gt;
&lt;li&gt;Overengineering UI before workflows were stable&lt;/li&gt;
&lt;li&gt;Letting AI decide structure (never again)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each rollback made the system simpler and more reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Worked Surprisingly Well
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Strict prompts &amp;gt; “creative freedom”&lt;/li&gt;
&lt;li&gt;Build-in-public feedback&lt;/li&gt;
&lt;li&gt;Treating content like data, not prose&lt;/li&gt;
&lt;li&gt;Shipping small, testable pieces&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I’m Sharing This Here
&lt;/h2&gt;

&lt;p&gt;Dev.to helped me countless times while building this.&lt;/p&gt;

&lt;p&gt;If you’re:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building an AI SaaS&lt;/li&gt;
&lt;li&gt;Automating content workflows&lt;/li&gt;
&lt;li&gt;Enforcing usage limits properly&lt;/li&gt;
&lt;li&gt;Publishing to platforms programmatically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope something here saves you time or mistakes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next
&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.amazonaws.com%2Fuploads%2Farticles%2F32kj3627rh169gz5j2m0.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%2F32kj3627rh169gz5j2m0.png" alt="Minineo" width="800" height="498"&gt;&lt;/a&gt;&lt;br&gt;
Next on my list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smarter media enrichment&lt;/li&gt;
&lt;li&gt;Better scheduling reliability&lt;/li&gt;
&lt;li&gt;Even stricter content validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still learning. Still iterating.&lt;/p&gt;

&lt;p&gt;If you’ve built something similar or hit the same challenges, I’d genuinely love to hear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What broke for you?&lt;/li&gt;
&lt;li&gt;What scaled unexpectedly?&lt;/li&gt;
&lt;li&gt;What would you do differently?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy to answer technical questions in the comments&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>beginners</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
