<?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: Fahad Shah</title>
    <description>The latest articles on DEV Community by Fahad Shah (@fahad_shah_da911d8eda3338).</description>
    <link>https://dev.to/fahad_shah_da911d8eda3338</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%2F3929397%2Fe042b282-c568-4762-9a5d-24ca593ed52b.jpg</url>
      <title>DEV Community: Fahad Shah</title>
      <link>https://dev.to/fahad_shah_da911d8eda3338</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fahad_shah_da911d8eda3338"/>
    <language>en</language>
    <item>
      <title>I built an AI-powered comparison tool with Next.js and Claude API</title>
      <dc:creator>Fahad Shah</dc:creator>
      <pubDate>Wed, 13 May 2026 13:16:35 +0000</pubDate>
      <link>https://dev.to/fahad_shah_da911d8eda3338/i-built-an-ai-powered-comparison-tool-with-nextjs-and-claude-api-1kin</link>
      <guid>https://dev.to/fahad_shah_da911d8eda3338/i-built-an-ai-powered-comparison-tool-with-nextjs-and-claude-api-1kin</guid>
      <description>&lt;p&gt;I kept Googling "X vs Y" and getting the same SEO-spam listicles &lt;br&gt;
that say nothing useful. So I built Simily — type any two things &lt;br&gt;
and get an actual AI-powered breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Category-by-category scores (Performance, Price, Ease of Use, etc.)&lt;/li&gt;
&lt;li&gt;Pros &amp;amp; cons for each option&lt;/li&gt;
&lt;li&gt;A clear winner with reasoning&lt;/li&gt;
&lt;li&gt;FAQ section for common questions&lt;/li&gt;
&lt;li&gt;You can add up to 5 items to compare at once&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try it: &lt;a href="https://simily.org/compare/chatgpt-vs-claude?a=ChatGPT&amp;amp;b=Claude" rel="noopener noreferrer"&gt;ChatGPT vs Claude&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js 16 App Router, Tailwind CSS v4, TypeScript&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI:&lt;/strong&gt; Anthropic Claude API (claude-sonnet) — I send a structured &lt;br&gt;
prompt and ask it to return JSON with scores, pros/cons, and FAQs. &lt;br&gt;
Works surprisingly well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Caching:&lt;/strong&gt; Upstash Redis with a 7-day TTL. First person to run a &lt;br&gt;
comparison pays the API cost, everyone after gets it instantly for free. &lt;br&gt;
This keeps costs very low.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment:&lt;/strong&gt; Vercel&lt;/p&gt;

&lt;h2&gt;
  
  
  The interesting part — the prompt
&lt;/h2&gt;

&lt;p&gt;Getting Claude to return consistent JSON was the main challenge. &lt;br&gt;
The trick that worked was being very explicit about the schema and &lt;br&gt;
adding a rule like "return only valid JSON, no markdown." &lt;/p&gt;

&lt;p&gt;I also version the cache keys (compare:v3:...) so when I update &lt;br&gt;
the prompt structure I can invalidate old cached responses without &lt;br&gt;
touching Redis directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I just added
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Of guides&lt;/strong&gt; — ranked lists like 
&lt;a href="https://simily.org/best/best-ai-chatbot" rel="noopener noreferrer"&gt;Best AI Chatbot&lt;/a&gt; or 
&lt;a href="https://simily.org/best/best-code-editor" rel="noopener noreferrer"&gt;Best Code Editor&lt;/a&gt; 
using the same AI engine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Related comparisons&lt;/strong&gt; — shows up to 6 "people also compare" 
links at the bottom of each page for internal linking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limiting&lt;/strong&gt; — 10 requests per IP per hour using 
@upstash/ratelimit to protect the API budget&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Working on getting more traffic via SEO — the 160+ pages in the &lt;br&gt;
sitemap are slowly getting indexed by Google. Would love any feedback &lt;br&gt;
on what's useful vs what's noise.&lt;/p&gt;

&lt;p&gt;Check it out: &lt;a href="https://simily.org" rel="noopener noreferrer"&gt;simily.org&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>ai</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
