<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[How I Built and Run an AI-Powered Tool for Almost $0/Month]]></title><description><![CDATA[How I Built and Run an AI-Powered Tool for Almost $0/Month]]></description><link>https://my-blogvbr.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6a2ebb22376413080f55f5fc/652d2a39-185b-4be6-9993-e371721962a3.svg</url><title>How I Built and Run an AI-Powered Tool for Almost $0/Month</title><link>https://my-blogvbr.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 10 Nov 2026 15:16:20 GMT</lastBuildDate><atom:link href="https://my-blogvbr.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How I Built and Run an AI-Powered Tool for Almost $0/Month]]></title><description><![CDATA[A practical breakdown of how I built a Reddit keyword research tool using Claude API, Vercel, and Upstash Redis — running for under $2/month.]]></description><link>https://my-blogvbr.hashnode.dev/how-i-built-and-run-an-ai-powered-tool-for-almost-0-month</link><guid isPermaLink="true">https://my-blogvbr.hashnode.dev/how-i-built-and-run-an-ai-powered-tool-for-almost-0-month</guid><category><![CDATA[webdev]]></category><category><![CDATA[AI]]></category><category><![CDATA[Build In Public]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[Vardhana]]></dc:creator><pubDate>Sun, 14 Jun 2026 14:55:05 GMT</pubDate><content:encoded><![CDATA[<p><em>A practical guide to cost-efficient AI infrastructure for indie developers</em></p>
<hr />
<h2>The Tool</h2>
<p>I built a <strong>Reddit Keyword Research Tool</strong> — it analyzes Reddit posts and comments to surface high-value keywords for content creators, marketers, and SEO professionals.</p>
<p>The stack:</p>
<ul>
<li><p><strong>Frontend + Hosting</strong> — Vercel</p>
</li>
<li><p><strong>AI Engine</strong> — Anthropic Claude API</p>
</li>
<li><p><strong>Caching</strong> — Upstash Redis</p>
</li>
<li><p><strong>Built with</strong> — Claude Code</p>
</li>
</ul>
<p>Live, functional, and serving real users. Here's how much it costs to run.</p>
<hr />
<h2>The Infrastructure Cost Breakdown</h2>
<table>
<thead>
<tr>
<th>Service</th>
<th>Plan</th>
<th>Monthly Cost</th>
</tr>
</thead>
<tbody><tr>
<td>Vercel</td>
<td>Hobby (Free)</td>
<td>$0</td>
</tr>
<tr>
<td>Upstash Redis</td>
<td>Free Tier</td>
<td>$0</td>
</tr>
<tr>
<td>Anthropic Claude API</td>
<td>Pay-as-you-go</td>
<td>~$1.64</td>
</tr>
<tr>
<td><strong>Total</strong></td>
<td></td>
<td><strong>~$1.64/month</strong></td>
</tr>
</tbody></table>
<p>Yes, a live AI-powered SaaS tool for under $2/month. Here's exactly how.</p>
<hr />
<h2>Vercel — Free Tier is More Than Enough</h2>
<p>Vercel's Hobby plan gives you:</p>
<ul>
<li><p>100 GB Fast Data Transfer</p>
</li>
<li><p>10 GB Fast Origin Transfer</p>
</li>
<li><p>1M Edge Requests/month</p>
</li>
</ul>
<p>My current usage after launch:</p>
<pre><code class="language-plaintext">Fast Data Transfer:  15.19 MB / 100 GB   ✅
Fast Origin Transfer: 1.51 MB / 10 GB    ✅
Edge Requests:        1.4K / 1M          ✅
</code></pre>
<p>For a tool in early stages, you won't come close to these limits.</p>
<blockquote>
<p><strong>Note:</strong> Vercel's Hobby plan prohibits commercial use. Once you start monetizing, upgrade to Pro ($20/month). For a solo project, that's still very manageable.</p>
</blockquote>
<hr />
<h2>Upstash Redis — The Free Tier Workhorse</h2>
<p>Upstash gives you:</p>
<ul>
<li><p>10,000 commands/day</p>
</li>
<li><p>256 MB storage</p>
</li>
<li><p>1 free database</p>
</li>
</ul>
<p>I use Redis for caching Reddit API responses. This alone significantly reduces how many times the Claude API gets called — saving money on both ends.</p>
<p><strong>Critical tip:</strong> Always set a TTL (time-to-live) on your cached keys:</p>
<pre><code class="language-python"># Cache Reddit results for 1 hour
redis.setex("keyword:python", 3600, json.dumps(results))
</code></pre>
<p>Without TTL, your 256 MB fills up and caching breaks silently.</p>
<hr />
<h2>The Biggest Mistake — Wrong Claude Model</h2>
<p>This one cost me money unnecessarily.</p>
<p>My tool was running on <strong>Claude Opus</strong> — Anthropic's most powerful and most expensive model. For a keyword research tool that analyzes text patterns, Opus is massive overkill.</p>
<p><strong>Model comparison:</strong></p>
<table>
<thead>
<tr>
<th>Model</th>
<th>Output Cost per 1M tokens</th>
<th>Best For</th>
</tr>
</thead>
<tbody><tr>
<td>Claude Opus</td>
<td>~$15</td>
<td>Complex reasoning, agents</td>
</tr>
<tr>
<td>Claude Sonnet</td>
<td>~$3</td>
<td>Balanced tasks</td>
</tr>
<tr>
<td><strong>Claude Haiku</strong></td>
<td><strong>~$1.25</strong></td>
<td><strong>High-volume, simple tasks</strong></td>
</tr>
</tbody></table>
<p>A single line change fixed it:</p>
<pre><code class="language-python"># Before — expensive
model="claude-opus-4-..."

# After — 20x cheaper, same quality for this use case
model="claude-haiku-4-5-20251001"
</code></pre>
<p><strong>Rule of thumb:</strong> Match the model to the task complexity. Keyword extraction and text analysis doesn't need Opus-level intelligence.</p>
<hr />
<h2>Protecting Yourself — Spend Limits</h2>
<p>Anthropic's API default spend limit is <strong>$500/month</strong> — which sounds fine until you realize a misconfigured loop or unexpected traffic spike could drain your credits fast.</p>
<p>Two things I set up immediately:</p>
<ol>
<li><p><strong>Reduced monthly spend limit</strong> from \(500 → \)5</p>
<ul>
<li>Go to: <code>platform.anthropic.com</code> → Settings → Limits → Adjust limit</li>
</ul>
</li>
<li><p><strong>Added email notification</strong> at $3 threshold</p>
<ul>
<li>You get alerted before you run out, not after</li>
</ul>
</li>
</ol>
<p>This is especially important because the API uses <strong>prepaid credits</strong> — once your credit runs out, the tool stops working. Better to know at $3 than to find out when users start complaining.</p>
<hr />
<h2>What I Did NOT Do (But Should)</h2>
<p><strong>Prompt Caching</strong> — Anthropic offers prompt caching that can reduce input token costs by 50–90% for repeated system prompts. My tool uses the same system prompt on every call. Enabling this is next on my list.</p>
<hr />
<h2>Summary — The Optimization Checklist</h2>
<p>✅ Use Vercel Hobby tier for early-stage tools<br />✅ Cache API responses with Upstash Redis (always set TTL)<br />✅ Pick the right Claude model — Haiku for most tasks, Sonnet for complex ones<br />✅ Set a spend limit well below your credit balance<br />✅ Add an email alert at 80% of your credit<br />✅ Keep auto-reload OFF until you're generating revenue</p>
<hr />
<h2>The Numbers</h2>
<p>Starting cost: <strong>~\(1.64/month</strong> (on the wrong model)<br />After optimization: <strong>~\)0.10–0.20/month</strong> (estimated at Haiku rates)<br />Remaining credit: <strong>$3.38</strong><br />Projected runway: <strong>15–30 months</strong></p>
<hr />
<h2>What's Next</h2>
<p>Once the tool gains traction:</p>
<ul>
<li><p>Enable prompt caching</p>
</li>
<li><p>Move to Vercel Pro for commercial use</p>
</li>
<li><p>Add a paid tier — even $5/month from 10 users covers 2+ years of API costs</p>
</li>
</ul>
<p>Building lean from day one is not just about saving money. It's about buying yourself time to find product-market fit without burning budget on infrastructure.</p>
<hr />
<p><em>Built using Claude Code. Hosted on Vercel. Cached with Upstash. Running on almost nothing.</em></p>
<p><em>Follow along as I build more tools and document what actually works.</em></p>
<p>Try the tool here: [<a href="https://keywords.innerfuel.live/%5C%5D">https://keywords.innerfuel.live/\]</a></p>
]]></content:encoded></item></channel></rss>