<?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[Pikmova Build Notes]]></title><description><![CDATA[Pikmova Build Notes]]></description><link>https://pikmova.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 09:01:26 GMT</lastBuildDate><atom:link href="https://pikmova.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[A $200 loss cap: how I budget the free tier of an AI video tool]]></title><description><![CDATA[Every free AI video costs real money. When I launched a small image-to-video tool, I gave myself one hard rule before writing any code: the free tier may…]]></description><link>https://pikmova.hashnode.dev/a-200-loss-cap-how-i-budget-the-free-tier-of-an-ai-video-tool</link><guid isPermaLink="true">https://pikmova.hashnode.dev/a-200-loss-cap-how-i-budget-the-free-tier-of-an-ai-video-tool</guid><category><![CDATA[startup]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[pricing]]></category><category><![CDATA[indiehackers]]></category><dc:creator><![CDATA[Jeff Li]]></dc:creator><pubDate>Thu, 05 Nov 2026 00:31:53 GMT</pubDate><content:encoded><![CDATA[<p>Every free AI video costs real money. When I launched a small image-to-video tool, I gave myself one hard rule before writing any code: <strong>the free tier may lose at most $200 in total over 12 weeks.</strong> Everything else, from the daily limits and the choice of model to the prices and even the watermark decision, follows from that rule.</p>
<h2>What a clip costs</h2>
<p>These are the prices on fal.ai when I measured them (they change, so always check before you build):</p>
<table>
<thead>
<tr>
<th>Model</th>
<th>Used for</th>
<th>Cost per 5-second clip</th>
</tr>
</thead>
<tbody><tr>
<td>Boreal (Creatify)</td>
<td>free videos</td>
<td>~$0.05</td>
</tr>
<tr>
<td>MiniMax H3 Turbo, 480P</td>
<td>backup for free videos</td>
<td>~$0.09</td>
</tr>
<tr>
<td>Grok Imagine Video Lite, 720p</td>
<td>paid HD</td>
<td>$0.16</td>
</tr>
<tr>
<td>Grok Imagine Video Lite, 1080p</td>
<td>paid, top plan</td>
<td>$0.71</td>
</tr>
<tr>
<td>An image NSFW check</td>
<td>every upload and result</td>
<td>$0.001</td>
</tr>
</tbody></table>
<p>I also benchmarked several famous models. Some cost $0.14 per <em>second</em>, and one higher-end model came out around $1.50 per clip. Those don't work for a free tier. One model returned 10.9-second clips when I asked for 5 and billed me for all of them, so always read the bill after a test run, not just the price list.</p>
<h2>The daily budget</h2>
<p>The rule is turned into a number each day:</p>
<pre><code>today's free budget = (cap − (free spend so far − net revenue so far)) ÷ days left
</code></pre>
<p>At launch that's $200 ÷ 84 days ≈ $2.38 a day, or roughly 45 free videos.</p>
<ul>
<li>A quiet day leaves more for the days after it.</li>
<li>Revenue raises the budget. Net revenue is payments minus the payment provider's 3.9% + $0.50, minus what the paid videos cost.</li>
<li>When today's budget is spent, free videos pause until midnight UTC with a polite message, while paid videos keep working.</li>
</ul>
<p>Revenue has to be counted net of every cost, or the formula lies to you. My first version read revenue from a table that nothing ever wrote to. I only noticed when I made the first real purchase myself.</p>
<h2>Limits per visitor</h2>
<ul>
<li>2 free videos per device per day (a random ID kept in localStorage), and 4 per network (a salted hash of the IP).</li>
<li>Failed and refused attempts don't count. People hate losing a try to a model error.</li>
<li>No account, no email. Signing up is a real cost for the user, and I wanted the free tier to be truly free.</li>
</ul>
<h2>Why no watermark</h2>
<p>I planned a watermark at first. Then I checked the competitors I'd actually be compared with. The one that AI assistants were recommending most gave one 480p video a day <em>without</em> a watermark, and another tool's free exports were 480p <em>with</em> one.</p>
<p>So free videos are 480p and have no watermark. Paid plans are about quality instead: HD with a stronger model, sound, and longer clips. A shared free video without a logo is still an advertisement, because people ask where it came from.</p>
<h2>The paid side</h2>
<table>
<thead>
<tr>
<th>Option</th>
<th>Price</th>
<th>Clips</th>
<th>Margin if every clip is used</th>
</tr>
</thead>
<tbody><tr>
<td>One-time pack</td>
<td>$4.99</td>
<td>8</td>
<td>~32%</td>
</tr>
<tr>
<td>Starter</td>
<td>$9.99/mo</td>
<td>20</td>
<td>~54%</td>
</tr>
<tr>
<td>Pro</td>
<td>$19.99/mo</td>
<td>50</td>
<td>~48%</td>
</tr>
<tr>
<td>Max (10 s and 1080p)</td>
<td>$39.99/mo</td>
<td>120</td>
<td>~40%</td>
</tr>
</tbody></table>
<p>Yearly plans cost 70% of twelve months. The margins assume every clip gets used, which is the worst case. 1080p costs 5 clips per 5 seconds because it costs over four times as much to make. Margins are thin compared with normal SaaS, and that's simply the nature of reselling GPU time. That makes the pack interesting: it's the easiest way to say yes, and it's still profitable.</p>
<h2>When to stop</h2>
<p>The other half of the rule is a kill switch. From the break-even conversion rate I worked out how many free users without a single purchase should make me stop, roughly 3 ÷ the conversion rate needed to cover the free tier. The cap makes this calm: the worst case is known in advance, so I don't need to panic about one bad week.</p>
<p>The tool is <a href="https://pikmova.com">Pikmova</a>, if you want to see the free tier this budget pays for. I'd love to hear how others budget free tiers for GPU-heavy products.</p>
<p><em>Drafted with AI assistance.</em></p>
]]></content:encoded></item></channel></rss>