<?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: 410110謝宗恩</title>
    <description>The latest articles on DEV Community by 410110謝宗恩 (@410110_45616cadd9afa7c).</description>
    <link>https://dev.to/410110_45616cadd9afa7c</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%2F4131777%2F2a31f44d-87f3-4310-969a-a84e964c47a0.png</url>
      <title>DEV Community: 410110謝宗恩</title>
      <link>https://dev.to/410110_45616cadd9afa7c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/410110_45616cadd9afa7c"/>
    <language>en</language>
    <item>
      <title>I built my AI stack on 'free' quotas. Here's the math nobody publishes</title>
      <dc:creator>410110謝宗恩</dc:creator>
      <pubDate>Sun, 20 Sep 2026 04:28:52 +0000</pubDate>
      <link>https://dev.to/410110_45616cadd9afa7c/i-built-my-ai-stack-on-free-quotas-heres-the-math-nobody-publishes-3dic</link>
      <guid>https://dev.to/410110_45616cadd9afa7c/i-built-my-ai-stack-on-free-quotas-heres-the-math-nobody-publishes-3dic</guid>
      <description>&lt;p&gt;I ran out of paid quota three times this year, and each time the "free" backup I planned for didn't behave the way the word "free" promised. It took me a while to notice that "free" in the AI world is actually four completely different things wearing the same label.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four kinds of free
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Harness-locked free.&lt;/strong&gt; OpenCode's free pool (MiMo-V2.5, HY3, Ling 3.0 Flash Fin, Nemotron 3 Ultra / 3.5 Lightning, Muse Spark 1.2) works, but only through OpenCode's own agent harness — not through its OpenAI-compatible API, even though the docs page still lists API endpoints. If you need to call these models from your own code, they don't exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Dev-only, quota-unpublished.&lt;/strong&gt; NVIDIA's Build endpoints are free, but there is no single number that says how many requests you get. Quota depends on the model, your account, and how much traffic the endpoint is seeing. "For development and testing" is doing a lot of heavy lifting in that sentence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Rotating promotions.&lt;/strong&gt; Cline's free model pool changes without a schedule. A model that was free last month may not be this month, and the pool is only usable from Cline's IDE extension or CLI — not from its API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. "User-reported sufficient."&lt;/strong&gt; Some API resellers list free DeepSeek or GLM endpoints and say the rate limit is "sufficient, per user reports." That's not a quota. That's a rumor with a URL attached.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math you should actually do
&lt;/h2&gt;

&lt;p&gt;When someone says "you get 100 requests a day on the free tier," multiply it out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;100 requests/day × ~4k tokens average = ~400k tokens/day&lt;/li&gt;
&lt;li&gt;× 30 = ~12M tokens/month&lt;/li&gt;
&lt;li&gt;At a typical list price of $2/M input, that's ~$24/month of value&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But two of those numbers are lies by construction. The "4k tokens average" is not yours — it's whatever the provider decides each request includes. And the "$2/M" only holds if the free tier is priced like the paid tier, which it usually isn't: free tiers are capacity that would otherwise sit empty, so they're the first thing cut when real customers show up.&lt;/p&gt;

&lt;p&gt;The number that decides whether you can build on a free tier is not its dollar value. It's the &lt;strong&gt;rotation interval&lt;/strong&gt;: how often does the "free" list change? I track a small changelog precisely because the gap between "announced reset" and "the reset actually landed" is where free plans quietly stop being free.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did with this
&lt;/h2&gt;

&lt;p&gt;I maintain a small site (biased source, full disclosure: it's mine) called &lt;a href="https://alca-navy.vercel.app/en/models" rel="noopener noreferrer"&gt;Alca&lt;/a&gt; that keeps one row per provider, links every claim to its original source post, and marks each row &lt;code&gt;verified&lt;/code&gt; or &lt;code&gt;unverified&lt;/code&gt; — so when a number looks too good, you can see in one click whether someone checked the source or copied a tweet. There's a dated reset log for each provider, and the Codex feed in particular regenerates about hourly from a public announcements API.&lt;/p&gt;

&lt;p&gt;The practical takeaway is not "use free tiers." It's: &lt;strong&gt;pick your stack on the kind of free, not the amount of free.&lt;/strong&gt; Harness-locked is fine for personal agent use and worthless for an API. Dev-only is fine for a side project and a landmine for anything you'll ship on. Rotating is a treadmill — you have to re-verify every month, and that's the whole reason the changelog exists.&lt;/p&gt;

&lt;p&gt;I've stopped planning around any single free pool. The free layer is my overflow, not my foundation — and I re-check its terms every time a reset lands, which is now just a diff of one file instead of a day of tab-shuffling through four provider docs.&lt;/p&gt;

&lt;p&gt;The site has a public JSON API under &lt;code&gt;/api/v1&lt;/code&gt; if you want the raw rows instead of the pages.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why I track every AI quota reset announcement (and why the site has no admin panel)</title>
      <dc:creator>410110謝宗恩</dc:creator>
      <pubDate>Sat, 19 Sep 2026 01:21:44 +0000</pubDate>
      <link>https://dev.to/410110_45616cadd9afa7c/why-i-track-every-ai-quota-reset-announcement-and-why-the-site-has-no-admin-panel-1g3i</link>
      <guid>https://dev.to/410110_45616cadd9afa7c/why-i-track-every-ai-quota-reset-announcement-and-why-the-site-has-no-admin-panel-1g3i</guid>
      <description>&lt;p&gt;This month my Codex plan hit 0% for the third time, and each time I found out the reset schedule had quietly moved. I was the kind of person who kept screenshots of the docs in a notes app, but the docs never said when an &lt;em&gt;announced&lt;/em&gt; reset actually landed, or which tier was on which clock. So I stopped taking notes and started building a log instead.&lt;/p&gt;

&lt;p&gt;That log became &lt;a href="https://alca-navy.vercel.app/en/models" rel="noopener noreferrer"&gt;Alca&lt;/a&gt;: a read-only, anonymous, no-signup site comparing AI model access, pricing, free quotas and rate limits across providers. The part I use most is the reset log: a dated list of every announced reset and limit change, each entry linked back to the original post.&lt;/p&gt;

&lt;h2&gt;
  
  
  The unglamorous part
&lt;/h2&gt;

&lt;p&gt;All the content is typed TypeScript files in a repo: &lt;code&gt;models.ts&lt;/code&gt;, &lt;code&gt;offers.ts&lt;/code&gt;, &lt;code&gt;codexResets.ts&lt;/code&gt;. A "content editor" is just a pull request. I edit a file, CI checks referential integrity (an offer can't reference a model slug that doesn't exist, every URL must be http/https, slugs are unique), and the change deploys. No admin panel, no database for public data, no CMS.&lt;/p&gt;

&lt;p&gt;I chose that on purpose. When a row says some provider's free tier gets you X requests a day, I want to be able to point at exactly where that came from. Every row carries a &lt;code&gt;verification_status&lt;/code&gt;: &lt;code&gt;verified&lt;/code&gt; means I checked a source link, and I paste it in. &lt;code&gt;unverified&lt;/code&gt; means "this is a placeholder, replace me." Showing the honesty level of the data beats hiding it behind a clean table.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Codex feed runs itself
&lt;/h2&gt;

&lt;p&gt;The reset feed regenerates about hourly from a public API: fetch, validate, typecheck and test, commit only when the data actually changed, push, and the deploy happens. The upstream blocks datacenter IPs, so it runs on a consumer machine, with a manual workflow as the backup. "Watch" entries — forecasts, not confirmed events — are clearly marked &lt;code&gt;unconfirmed&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback that doesn't land in my inbox
&lt;/h2&gt;

&lt;p&gt;The site has a feedback form, but I didn't want it pointing at a personal email address. Submissions pass size and rate checks, then sit in a queue that an outbound-only agent I run pulls from: it heartbeats, leases up to 20 items, saves them durably, and acks idempotently. Expired leases get redelivered. In practice: at-least-once delivery, no browser-visible tracking of visitors.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm not sure about
&lt;/h2&gt;

&lt;p&gt;Is "linked back to the original post" actually useful to anyone besides me? Do you cross-check a claim against its source, or just trust the table? I keep the links because a stale limit number cost me a week of guessing once. A dated, cited reset log turns a schedule change from a rumor into an event.&lt;/p&gt;

&lt;p&gt;The site is at &lt;a href="https://alca-navy.vercel.app/en/models" rel="noopener noreferrer"&gt;https://alca-navy.vercel.app/en/models&lt;/a&gt;. There's a feedback form, and a public JSON API under &lt;code&gt;/api/v1&lt;/code&gt; if you want the data instead of the pages.&lt;/p&gt;

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