<?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: Alisa Amiella</title>
    <description>The latest articles on DEV Community by Alisa Amiella (@godeater2579).</description>
    <link>https://dev.to/godeater2579</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%2F4095392%2F379decc1-c337-4485-a80d-9dc7733559d2.jpg</url>
      <title>DEV Community: Alisa Amiella</title>
      <link>https://dev.to/godeater2579</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/godeater2579"/>
    <language>en</language>
    <item>
      <title>One Tiny Go Binary in Front of Every Free(or not) LLM Tier (15–40MB RAM, No Database)</title>
      <dc:creator>Alisa Amiella</dc:creator>
      <pubDate>Wed, 26 Aug 2026 09:23:04 +0000</pubDate>
      <link>https://dev.to/godeater2579/one-tiny-go-binary-in-front-of-every-freeor-not-llm-tier-15-40mb-ram-no-database-39g2</link>
      <guid>https://dev.to/godeater2579/one-tiny-go-binary-in-front-of-every-freeor-not-llm-tier-15-40mb-ram-no-database-39g2</guid>
      <description>&lt;h2&gt;
  
  
  Guvna
&lt;/h2&gt;

&lt;p&gt;Most LLM gateways sit at two extremes: TypeScript services eating hundreds of MB&lt;br&gt;
of RAM to forward HTTP, or enterprise platforms that need a database, a dashboard,&lt;br&gt;
and an ops budget. For a single developer using free-tier providers, both are wrong-sized.&lt;/p&gt;

&lt;p&gt;This post introduces &lt;a href="https://github.com/creamy-ghost/guvna" rel="noopener noreferrer"&gt;Guvna&lt;/a&gt; — a ~16MB static&lt;br&gt;
Go binary that gives you one OpenAI-compatible endpoint with automatic provider failover,&lt;br&gt;
running in 15–40MB of RAM.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: free tiers fail constantly
&lt;/h2&gt;

&lt;p&gt;Rate limits, expired keys, provider outages — usually mid-stream.&lt;br&gt;
Your app shouldn't know or care. Tried deploying 9router and omniroute on my vps but the amount of ram they took felt so overwhelming. So did my research but the enterprise built new-route didn't click in for me either. So why not just make my own?&lt;/p&gt;

&lt;h2&gt;
  
  
  Chains: failover as configuration
&lt;/h2&gt;

&lt;p&gt;Show the curl from the README creating &lt;code&gt;myfree&lt;/code&gt; with groq → mistral steps,&lt;br&gt;
then the chat call. Explain: clients call chain names; real model names never&lt;br&gt;
leak into your apps; failed providers cool off 60s→10min and recover on their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key pools: one dead key never burns the pool
&lt;/h2&gt;

&lt;p&gt;Rotation strategies (round-robin / least-used / sequential) + class-based quarantine.&lt;br&gt;
Auth failures bench a key hard; transient failures get retried later.&lt;/p&gt;

&lt;h2&gt;
  
  
  When you don't need a chain
&lt;/h2&gt;

&lt;p&gt;Provider-prefixed passthrough: &lt;code&gt;"model": "groq/llama-3.3-70b-versatile"&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running it
&lt;/h2&gt;

&lt;p&gt;Docker Compose quickstart + go install alternative + env-only secrets, YAML config-as-code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it deliberately isn't
&lt;/h2&gt;

&lt;p&gt;Single-user. No multi-tenancy, no web dashboard, no database. That's the feature —&lt;br&gt;
it's why the binary is 16MB. If you need team features, LiteLLM et al are great. But in the mean while I'm having ideas that they all those functionality can be developed on top of the lean smart core, maybe as a plugin or even shipped inside lazy-loaded only on demand!&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it / feedback
&lt;/h2&gt;

&lt;p&gt;Repo link, issues welcome, README quickstart is 4 commands.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>go</category>
      <category>llm</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
