<?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: Neil Okikiolu</title>
    <description>The latest articles on DEV Community by Neil Okikiolu (@neil_okikiolu).</description>
    <link>https://dev.to/neil_okikiolu</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%2F3470677%2F6c79fc00-580f-4654-9c1e-eec1f870ba47.png</url>
      <title>DEV Community: Neil Okikiolu</title>
      <link>https://dev.to/neil_okikiolu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neil_okikiolu"/>
    <language>en</language>
    <item>
      <title>Stop Writing Your Own Validators</title>
      <dc:creator>Neil Okikiolu</dc:creator>
      <pubDate>Wed, 10 Sep 2025 18:30:00 +0000</pubDate>
      <link>https://dev.to/neil_okikiolu/stop-writing-your-own-validators-188o</link>
      <guid>https://dev.to/neil_okikiolu/stop-writing-your-own-validators-188o</guid>
      <description>&lt;p&gt;Every AI dev eventually hits this wall:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;json.decoder.JSONDecodeError: Expecting ',' delimiter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So you write a validator. Then another. Then you realize half your project is glue code just to catch malformed outputs.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Validator Tax
&lt;/h3&gt;

&lt;p&gt;Here's what "rolling your own" usually looks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A dozen &lt;code&gt;try/except json.loads()&lt;/code&gt; blocks&lt;/li&gt;
&lt;li&gt;Manual type checks (&lt;code&gt;if not isinstance(data["age"], int)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Retry loops with &lt;code&gt;time.sleep&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Ad-hoc logging sprinkled everywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now multiply that across every agent, every project. That's the &lt;strong&gt;validator tax&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What If It Were One Line?
&lt;/h3&gt;

&lt;p&gt;Instead of reinventing validation every time, what if you could just do this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agent_validator&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;validate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Schema&lt;/span&gt;

&lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;validate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent_output&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;retries&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Features That Replace Your Boilerplate
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/agent-validator/" rel="noopener noreferrer"&gt;Agent Validator&lt;/a&gt; handles the ugly stuff for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔍 &lt;strong&gt;Schema Validation&lt;/strong&gt; → define with plain Python dicts&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;Automatic Retries&lt;/strong&gt; → exponential backoff &amp;amp; timeouts&lt;/li&gt;
&lt;li&gt;🔧 &lt;strong&gt;Type Coercion&lt;/strong&gt; → &lt;code&gt;"42"&lt;/code&gt; → 42, &lt;code&gt;"true"&lt;/code&gt; → True&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Logging&lt;/strong&gt; → JSONL logs with automatic redaction&lt;/li&gt;
&lt;li&gt;☁️ &lt;strong&gt;Dashboard&lt;/strong&gt; → optional cloud monitoring for teams&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. CLI Included
&lt;/h3&gt;

&lt;p&gt;Not just a library — it ships with a CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Validate inputs&lt;/span&gt;
agent-validator &lt;span class="nb"&gt;test &lt;/span&gt;schema.json input.json &lt;span class="nt"&gt;--mode&lt;/span&gt; COERCE

&lt;span class="c"&gt;# View recent logs&lt;/span&gt;
agent-validator logs &lt;span class="nt"&gt;-n&lt;/span&gt; 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. For Indie Devs &amp;amp; Small Teams
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Free tier → SDK + local logs&lt;/li&gt;
&lt;li&gt;$9/mo Starter → indie devs get cloud logging &amp;amp; dashboard&lt;/li&gt;
&lt;li&gt;$29/mo Pro → small teams with alerts &amp;amp; templates&lt;/li&gt;
&lt;li&gt;$99/mo Team → larger projects with RBAC &amp;amp; analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. TL;DR
&lt;/h3&gt;

&lt;p&gt;Stop burning hours on custom validators.&lt;br&gt;
Drop in one SDK, validate everything, move on.&lt;/p&gt;

&lt;p&gt;👉 Install today:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;agent-validator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo: &lt;a href="https://github.com/agent-validator/agent-validator" rel="noopener noreferrer"&gt;github.com/agent-validator/agent-validator&lt;/a&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>python</category>
      <category>opensource</category>
      <category>openai</category>
    </item>
    <item>
      <title>Why JSON Mode Fails (and How to Fix It)</title>
      <dc:creator>Neil Okikiolu</dc:creator>
      <pubDate>Tue, 09 Sep 2025 18:30:00 +0000</pubDate>
      <link>https://dev.to/neil_okikiolu/why-json-mode-fails-and-how-to-fix-it-502</link>
      <guid>https://dev.to/neil_okikiolu/why-json-mode-fails-and-how-to-fix-it-502</guid>
      <description>&lt;p&gt;LLMs are powerful… until you ask them to return JSON.&lt;/p&gt;

&lt;p&gt;Suddenly, you're staring at this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"John"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"john@example.com"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Missing bracket. Invalid JSON. Pipeline crashes.&lt;/p&gt;

&lt;p&gt;Sound familiar? Let's break down &lt;strong&gt;why this happens&lt;/strong&gt; and how you can actually fix it.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Why "JSON Mode" Isn't Enough
&lt;/h3&gt;

&lt;p&gt;Some LLMs (like OpenAI) let you request &lt;code&gt;response_format="json"&lt;/code&gt;. Sounds perfect, right?&lt;/p&gt;

&lt;p&gt;Except:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Models still hallucinate comments or stray text.&lt;/li&gt;
&lt;li&gt;Outputs truncate mid-string when token limits hit.&lt;/li&gt;
&lt;li&gt;Complex schemas (nested dicts, lists) still break.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"Guaranteed JSON" isn't guaranteed.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Hidden Costs
&lt;/h3&gt;

&lt;p&gt;Most devs end up writing &lt;strong&gt;custom validators&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regex hacks to strip trailing commas&lt;/li&gt;
&lt;li&gt;Manual try/except loops with &lt;code&gt;json.loads&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Silent &lt;code&gt;None&lt;/code&gt; returns that mask real errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You spend hours debugging glue code instead of shipping features.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The Real Fix: Schema Validation + Retries
&lt;/h3&gt;

&lt;p&gt;Instead of hoping the model behaves, enforce a &lt;strong&gt;schema&lt;/strong&gt; and automatically retry malformed outputs.&lt;/p&gt;

&lt;p&gt;Here's how with &lt;a href="https://github.com/agent-validator/agent-validator" rel="noopener noreferrer"&gt;Agent Validator&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agent_validator&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;validate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Schema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ValidationMode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ValidationError&lt;/span&gt;

&lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Schema&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;validate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;agent_output&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;retries&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ValidationMode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COERCE&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;ValidationError&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;❌ Validation failed:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;STRICT mode&lt;/strong&gt; → exact type/shape match&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;COERCE mode&lt;/strong&gt; → safe conversions (&lt;code&gt;"42"&lt;/code&gt; → 42, &lt;code&gt;"true"&lt;/code&gt; → True)&lt;/li&gt;
&lt;li&gt;Automatic retries with exponential backoff&lt;/li&gt;
&lt;li&gt;Local logs for debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Observability Included
&lt;/h3&gt;

&lt;p&gt;Every attempt is logged to &lt;code&gt;~/.agent_validator/logs/&lt;/code&gt; with correlation IDs.&lt;br&gt;
No more "why did this break?" at 2 AM.&lt;/p&gt;

&lt;p&gt;Need monitoring? Turn on cloud logging:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;AGENT_VALIDATOR_LOG_TO_CLOUD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and you get a dashboard of validation attempts.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. TL;DR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JSON mode ≠ reliable JSON&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Stop hacking validators by hand&lt;/li&gt;
&lt;li&gt;Use a schema + retries → your pipeline won't break on malformed outputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Try it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;agent-validator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo: &lt;a href="https://github.com/agent-validator/agent-validator" rel="noopener noreferrer"&gt;github.com/agent-validator/agent-validator&lt;/a&gt;&lt;/p&gt;

</description>
      <category>openai</category>
      <category>opensource</category>
      <category>python</category>
      <category>llm</category>
    </item>
    <item>
      <title>Investors Just Wasted $13B on Anthropic Because They Don’t Get AI Is Regional</title>
      <dc:creator>Neil Okikiolu</dc:creator>
      <pubDate>Wed, 03 Sep 2025 12:30:00 +0000</pubDate>
      <link>https://dev.to/neil_okikiolu/investors-just-wasted-13b-on-anthropic-because-they-dont-get-ai-is-regional-e2l</link>
      <guid>https://dev.to/neil_okikiolu/investors-just-wasted-13b-on-anthropic-because-they-dont-get-ai-is-regional-e2l</guid>
      <description>&lt;p&gt;Every AI pitch deck right now uses the same line:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"We're building the AWS of intelligence. Foundational infra. Picks and shovels for the AI gold rush."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That framing is why valuations are sky-high, OpenAI, Anthropic, Mistral, xAI, everyone's being priced like they'll own the entire world's cognition layer.&lt;/p&gt;

&lt;p&gt;But here's the reality: &lt;strong&gt;AI isn't SaaS. It's strategic infrastructure.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 No Country Will Outsource Its Brain
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Would China let an American telco own its 5G towers?&lt;/li&gt;
&lt;li&gt;Would Russia let a U.S. company run its power grid?&lt;/li&gt;
&lt;li&gt;Would India let foreign firms control its satellites?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HELL NO&lt;/strong&gt;. Those are &lt;em&gt;national sovereignty issues&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;AI is the same. A nation's "thought layer", how its population, military, and corporations interface with cognition, is too important to outsource.&lt;/p&gt;

&lt;p&gt;That's why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;China is banned from OpenAI and they are building Baidu/Alibaba/Huawei stacks.&lt;/li&gt;
&lt;li&gt;The EU is funding LLaMA distillations and Mistral.&lt;/li&gt;
&lt;li&gt;The UAE launched Falcon.&lt;/li&gt;
&lt;li&gt;India is openly talking about &lt;strong&gt;AI sovereignty&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🪓 The Coming Fracture
&lt;/h2&gt;

&lt;p&gt;So let's be blunt: the "global monopoly" story is fantasy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best case:&lt;/strong&gt; U.S. firms dominate the U.S./allied bloc (NATO, Japan, South Korea).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real case:&lt;/strong&gt; the world fragments into blocs, each with their own sovereign stacks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think telecom, energy grids, or even chip fabs. Strategic, bloc-bound, heavily regulated.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤪 Why Are Valuations Still Insane?
&lt;/h2&gt;

&lt;p&gt;Because capital markets don't care, yet.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They want exposure to AI at any price.&lt;/li&gt;
&lt;li&gt;Scarcity of investable names means money piles into the same 5 - 6 firms.&lt;/li&gt;
&lt;li&gt;Investors are betting they can &lt;strong&gt;IPO or flip before the physics hit&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's the dot-com playbook: &lt;em&gt;sell the dream now, let the next guy 🫵 eat the hangover.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧨 The Knife Edge
&lt;/h2&gt;

&lt;p&gt;Once sovereign distillation stacks mature, cheap, local, trained on domestic data, the "picks and shovels" narrative dies.&lt;/p&gt;

&lt;p&gt;OpenAI doesn't become &lt;em&gt;the&lt;/em&gt; AWS of cognition. It becomes &lt;em&gt;the &lt;em&gt;American&lt;/em&gt; AWS of cognition&lt;/em&gt;. Still huge, but not global.&lt;/p&gt;

&lt;p&gt;And that's a very different valuation story.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔑 Takeaway
&lt;/h3&gt;

&lt;p&gt;If you're a dev or founder, don't build assuming one company will run the world's AI layer.&lt;br&gt;
Build for a fractured landscape: U.S. bloc, China bloc, EU bloc, Middle East bloc, Global South bloc.&lt;/p&gt;

&lt;p&gt;The winners won't just be who trained the biggest model. They'll be who &lt;strong&gt;own distribution, compliance, and trust inside their bloc.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;😊 Hot-take over. Curious what you think: Do you buy the dream of a &lt;strong&gt;single AI brain for humanity&lt;/strong&gt;, or the &lt;strong&gt;reality of many smaller, walled-off brains&lt;/strong&gt;?&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;Twitter: &lt;a href="https://x.com/neil_okikiolu" rel="noopener noreferrer"&gt;https://x.com/neil_okikiolu&lt;/a&gt; 👈 follow me&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>news</category>
      <category>openai</category>
    </item>
    <item>
      <title>Stop leaking .env files - try Secretsnap (free CLI)</title>
      <dc:creator>Neil Okikiolu</dc:creator>
      <pubDate>Sun, 31 Aug 2025 07:51:22 +0000</pubDate>
      <link>https://dev.to/neil_okikiolu/stop-leaking-env-files-try-secretsnap-free-cli-4cko</link>
      <guid>https://dev.to/neil_okikiolu/stop-leaking-env-files-try-secretsnap-free-cli-4cko</guid>
      <description>&lt;p&gt;If you’ve ever:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;emailed &lt;code&gt;.env&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;pasted secrets into Slack&lt;/li&gt;
&lt;li&gt;or accidentally committed them to GitHub...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…then you’ll get why I built this.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;secretsnap&lt;/code&gt; is a lightweight CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;secretsnap init
secretsnap bundle .env
secretsnap unbundle secrets.envsnap
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it, your secrets are safe.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free:&lt;/strong&gt; local encrypt/decrypt/run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro:&lt;/strong&gt; push/pull bundles, team sharing, audit logs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Install:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sSL&lt;/span&gt; https://get.secretsnap.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Landing: &lt;a href="https://secretsnap.dev" rel="noopener noreferrer"&gt;https://secretsnap.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/secret-snap/cli" rel="noopener noreferrer"&gt;https://github.com/secret-snap/cli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback welcome, especially if you’ve had &lt;code&gt;.env&lt;/code&gt; pain in CI/CD.&lt;/p&gt;

</description>
      <category>security</category>
      <category>opensource</category>
      <category>cli</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
