<?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" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ankita Tripathi on Medium]]></title>
        <description><![CDATA[Stories by Ankita Tripathi on Medium]]></description>
        <link>https://medium.com/@writertripathi?source=rss-607ff582a360------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*knnhN9J4WGkwmqAlnn_zHQ.jpeg</url>
            <title>Stories by Ankita Tripathi on Medium</title>
            <link>https://medium.com/@writertripathi?source=rss-607ff582a360------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 18:24:58 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@writertripathi/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[What is the Hype around Jev?]]></title>
            <link>https://medium.com/@writertripathi/what-is-the-hype-around-jev-6392b3c51585?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/6392b3c51585</guid>
            <category><![CDATA[jevs]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[classification]]></category>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Sun, 20 Sep 2026 17:47:40 GMT</pubDate>
            <atom:updated>2026-09-20T17:47:40.355Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aZDCcJPb0JLFHzwQDvGrNg.png" /></figure><p>Typesafe’s Jev is around everywhere and people have built at least a thousands of projects and use cases. But what makes it so special?</p><p>Let’s uncover that.</p><p>In the last few years, we have spent time teaching machines how to talk.</p><p>We give a large language model a prompt and it can write code, summarize a paper, explain quantum mechanics, draft an email, or imitate a style. The entire interface is built around generation: <strong>token after token after token, until an answer appears</strong>.</p><blockquote>That makes perfect sense when what we want is language.</blockquote><p>But a surprising amount of software does not actually need language.</p><ul><li>A fraud system does not need an essay about whether a transaction looks suspicious.</li><li>A support router does not need three paragraphs explaining why a ticket belongs to billing.</li><li>An agent supervisor does not need beautifully worded prose about whether an action looks risky.</li></ul><p>It needs a decision.</p><pre>Fraud?<br>YES / NO</pre><pre>Where should this ticket go?<br>BILLING / TECHNICAL / SALES</pre><pre>Should this agent continue?<br>CONTINUE / REPLAN / ESCALATE</pre><p>And yet our default architecture is often something closer to this:</p><pre>Unstructured input<br>       ↓<br>Large language model<br>       ↓<br>Generate tokens<br>       ↓<br>Produce JSON<br>       ↓<br>Parse JSON<br>       ↓<br>Validate schema<br>       ↓<br>Retry when it breaks<br>       ↓<br>Extract the one decision we wanted</pre><p>We built extraordinarily powerful generative systems, then started using them for almost every fuzzy decision in software, even when the final output was just a boolean, a label, or one option from a small list.</p><p>That is the problem Jev is trying to attack.</p><p>Jev, from TypeSafe AI, belongs to a category the company calls <strong>System One Models</strong>. Instead of asking a model to generate an answer, you give it some unstructured state and ask it to make bounded decisions with probabilties.</p><p>Conceptually, the difference is simple.</p><pre>GENERATION</pre><pre>&quot;What should I say?&quot;<br>        ↓<br>token → token → token → token<br></pre><pre>DECISION</pre><pre>&quot;Which of these is true?&quot;<br>        ↓<br>A  0.08<br>B  0.87<br>C  0.05</pre><p>And when you look at this, you realise that agents who call tools, inspect state, decide whether to continue, retry, escalate, bla bla to make even a tiny semantic decision, are not always needed!</p><blockquote>Imagine, if every one of those decisions requires a full generative-model round trip, how the economics and latency increase and we are charged a bomb!!</blockquote><p>So with Jev, the question is effectively asking whether we have been using the wrong computational primitive for a large part of AI software.</p><p>I wanted to understand whether that argument actually holds up.</p><h3>A little about Jev!</h3><p>Jev is our cute, tiny friend introduced to us by TypeSafe, which, I will clear now itself, is not another LLM!</p><blockquote>In their own words: TypeSafe’s defines it is “unstructured state in, typed probabilistic decisions out.”</blockquote><p><strong>Imagine, for example</strong>, that an AI coding agent has just edited twenty files and run a test suite. At that moment the surrounding system may need to know several things:</p><blockquote><em>Did the task actually succeed?</em></blockquote><blockquote><em>Does this change look risky?</em></blockquote><blockquote><em>Should the agent continue working?</em></blockquote><blockquote><em>Does a human need to review this?</em></blockquote><p>So instead of asking a model to generate something like:</p><blockquote><em>“The changes appear mostly correct, although there may be some risk associated with the authentication code, so I recommend human review.”</em></blockquote><p>the application could define the possible decisions directly:</p><pre>TASK COMPLETE?<br>Yes / No</pre><pre>RISK LEVEL?<br>Low / Medium / High / Critical</pre><pre>NEXT ACTION?<br>Continue / Retry / Human review</pre><p>Jev evaluates those questions against the same underlying state and gives the application numbers it can work with.</p><p>Conceptually:</p><pre>CURRENT STATE</pre><pre>          code changes, logs, test output,<br>         user request, tool results, context<br>                         │<br>                         ▼<br>                        JEV<br>                         │<br>              ┌──────────┼──────────┐<br>              ▼          ▼          ▼<br>         Complete?     Risk?    Next action?<br>            .94       High .71   Review .82<br>              │          │          │<br>              └──────────┼──────────┘<br>                         ▼<br>                    APPLICATION<br>                         │<br>              rules / thresholds / policy<br>                         │<br>                         ▼<br>                       ACTION</pre><p><strong>Remember: </strong>Jev doesn’t decide what 0.82 should mean for your business. Your software does.</p><h3>Why call this “System One”?</h3><p>The name comes from the familiar distinction between two kinds of thinking: one fast and immediate, the other slower and more deliberative.</p><p>TypeSafe is borrowing that metaphor for AI systems.</p><p>So, unlike a large reasoning model where the system needs to work through an open-ended problem, construct an argument, plan, generate code, or synthesize new information; a System One Model takes the current state and make a fast judgment about it.</p><p>You can think of an eventual AI system as having both kinds of operations:</p><pre>Something happened<br>       │<br>       ▼<br>   FAST JUDGMENT<br>       │<br>   Is this routine?<br>   Is it risky?<br>   Where should it go?<br>       │<br>       ├──────────── routine ───────→ code / action<br>       │<br>       └──────────── difficult ─────→ reasoning model</pre><p>It suggests that <strong>not every step in an intelligent system should require reasoning or generation in the first place.</strong></p><h3>What does Jev actually receive?</h3><p>To break it down, how it works, let’s look at its architecture once.</p><p>The first is the <strong>state where </strong>the information describes what Jev is supposed to judge.</p><p>That might be:</p><ul><li>a support conversation,</li><li>an agent trajectory,</li><li>a document,</li><li>application logs,</li><li>a security event,</li><li>a product review,</li><li>or, in our experiment later, the extracted contents of a bookmark.</li></ul><p>The second is the set of <strong>questions</strong> which the application wants answered.</p><p>And when I looked at TypeSafe’s technical documents, I came across how they expose their answer shapes. TypeSafe currently exposes three of them as <strong>Choice, Score, and Noul</strong>.</p><ol><li>A <strong>Choice</strong> means:</li></ol><blockquote><em>Which one of these possibilities is it?</em></blockquote><pre>Which team owns this ticket?</pre><pre>Billing<br>Shipping<br>Returns<br>Technical</pre><p>Jev returns the most likely option with the probability assigned to every option and a confidence value. <strong>Choice supports up to 255 options.</strong></p><p>2. A <strong>Score</strong> means:</p><blockquote><em>Where does this fall on an ordered scale?</em></blockquote><pre>How severe is this bug?</pre><pre>0  Cosmetic<br>1  Feature degraded<br>2  Blocking</pre><p>Jev doesn’t have to return only 1 or 2. It returns the probability distribution across the levels and a probability-weighted score. So if it places 70% probability on level 1 and 30% on level 2, the score is 1.3.</p><p>3. And <strong>Noul</strong> is the simplest one:</p><blockquote><em>Is this true?</em></blockquote><pre>Does this require human escalation?</pre><pre>YES / NO</pre><p>The answer is one probability between 0 and 1. A result near 1 means strong evidence for yes, near 0 means strong evidence for no, and around 0.5 means the model is unsure.</p><p>So Jev is not generating a new schema every time.</p><p>And there is one architectural detail here that TypeSafe emphasizes heavily: if you ask several of these questions about the same state in one request, Jev is designed to evaluate them in parallel rather than generating each answer sequentially. In fact, TypeSafe’s documentation clearly says that adding several questions to a call generally does not add latency in the same way as adding generated output does.</p><p>So this:</p><pre>Customer conversation<br>        │<br>        ▼<br>       JEV<br>        │<br>  ┌─────┼────────┬───────────┐<br>  ▼     ▼        ▼           ▼<br>Intent  Risk   Churn?      Escalate?</pre><p>is closer to the mental model than:</p><pre>question → answer<br>question → answer<br>question → answer</pre><p>Now, just like me, you might also be thinking, isn’t this just Classification? Well well well. It is kind of that but not really!</p><h4>The idea behind Jev did not begin with Jev</h4><p>To understand this, let’s take a step back when our tiny little friend was not even born.</p><p>It all started when in March 2025, Indian researcher <strong>Nandakishor M</strong> published a paper called <a href="https://arxiv.org/abs/2503.23303"><em>SalesRLAgent: A Reinforcement Learning Approach for Real-Time Sales Conversion Prediction and Optimization</em></a>. The problem he was working on was narrow: Sales Conversions!</p><p>What his paper conceptualised was that a salesperson did not always need another paragraph of generated advice. Just like a normal sales person, the obvious question they wanted an answer to was:</p><blockquote><strong><em>How likely is this deal to convert now?</em></strong></blockquote><p>So SalesRLAgent treated the conversation as a sequential state and trained a specialized reinforcement-learning system to estimate conversion probability as the conversation evolved. Instead of producing prose, it produced a number representing the model’s current judgment about the state of the deal.</p><p>And then a few months later, Nandakishor explored another version of the same idea.</p><p>His 2025 paper <a href="https://arxiv.org/abs/2510.01237"><em>Confidence-Aware Routing for Large Language Model Reliability Enhancement</em> </a>starts one step earlier in the AI pipeline.</p><p>Instead of letting a model generate an answer and then asking whether that answer was trustworthy, the system tries to assess reliability <strong>before generation happens</strong>.</p><p>It combines several signals into a confidence estimate and then routes the request accordingly:</p><pre>Incoming query<br>      ↓<br>Estimate confidence first<br>      ↓<br>┌───────────────┬──────────────┬──────────────┐<br>High            Medium         Low            Very low<br>↓               ↓              ↓              ↓<br>Local model     RAG         Larger model   Human review</pre><p>In fact, for years, we have had models that take an input and predict a label: spam or not spam, positive or negative sentiment, one document type among many. More recently, BERT-style encoders, zero-shot classifiers, GLiNER, constrained decoding, DSPy signatures, Instructor, and structured-output LLMs have all attacked different versions of the same problem.</p><p>What differentiates TypeSafe’s Jev here is <strong>how they have bundled it around the old problem of classifiers.</strong></p><p>A traditional classifier is usually trained for a fixed task. You might train one model to detect spam, another to classify support tickets, and another to predict whether a customer is likely to churn. The label space is often baked into training.</p><p>Jev is trying to preserve something we got used to with LLMs: <strong>runtime flexibility</strong>.</p><p>You can give it a new state and define a new set of questions without retraining a task-specific classifier.</p><p>Today you can ask:</p><pre>Does this support message indicate churn risk?<br>YES / NO</pre><p>and tomorrow:</p><pre>Which team should own this?<br>BILLING / TECHNICAL / SALES / OTHER</pre><p>and then:</p><pre>How severe is the issue?<br>LOW / MEDIUM / HIGH / CRITICAL</pre><p>That part looks much more like prompting than classical supervised classification.</p><p>So Jev sits in an interesting middle ground:</p><pre>TASK-SPECIFIC CLASSIFIER</pre><pre>cheap + fast<br>but usually fixed around one task<br></pre><pre>GENERAL LLM</pre><pre>flexible at runtime<br>but generates text sequentially<br></pre><pre>JEV</pre><pre>classification-like output<br>+<br>runtime-defined questions<br>+<br>probabilities<br>+<br>parallel evaluation</pre><p>As per the company, Jev really is a new model architecture, a parallel sampler, and a training method <strong>Reinforcement Learning for Calibrated Decisions</strong>, or RLCD. So, what Nandkishor did, they build it something larger with that.</p><h3>So I tried to build it</h3><p>All of this sounded convincing on paper. But Jev is still new, TypeSafe has not published a full technical paper on the model, and most of what we know publicly comes from its own documentation and early experiments.</p><p>So I wanted to see what happens to create one.</p><p>I built a small project called <strong>Curiosity</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7Mkbp8XTkmntz6U2L0ZwXQ.png" /><figcaption>Fig: Home screen of Curiosity</figcaption></figure><p>The idea was simple: I save things everywhere from X posts, GitHub repositories, YouTube videos, articles, random web pages but I rarely organize them properly. And even when I do, folders such as AI, Research, or Read Later are usually too broad to tell me what I am actually becoming interested in.</p><p>So instead of asking me to create folders first, Curiosity tries to infer the themes that are emerging from what I save.</p><p>The first version of the architecture looked roughly like this:</p><pre>Saved resources<br>      ↓<br>Extract + normalize content<br>      ↓<br>LLM<br>discover possible concepts<br>      ↓<br>Jev<br>evaluate membership repeatedly<br>      ↓<br>Application policy<br>      ↓<br>Curiosity map</pre><p>I passed each normalized resource, along with the frozen definition of the concept, through the decision model. Within a few seconds, the collection started separating itself. So, suppose one of the buckets is:</p><p><strong>AI agents</strong></p><p>And I add a link or it takes it from Bookmarks tab which is a Twitter Post.</p><iframe src="https://cdn.embedly.com/widgets/media.html?type=text%2Fhtml&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;schema=twitter&amp;url=https%3A//x.com/businessbarista/status/2099565601312166157&amp;image=https%3A//i.embed.ly/1/image%3Furl%3Dhttps%253A%252F%252Fpbs.twimg.com%252Famplify_video_thumb%252F2099488668948045824%252Fimg%252Fm0BEAubVH2mPKXPC%253Fformat%253Dwebp%2526name%253Dlarge%26key%3Da19fcc184b9711e1b4764040d3dc5c07" width="500" height="281" frameborder="0" scrolling="no"><a href="https://medium.com/media/8c14ccc1e6cf48ca266bcbd748daec93/href">https://medium.com/media/8c14ccc1e6cf48ca266bcbd748daec93/href</a></iframe><p>Now, looking at the tweet, it is clearly around evals. Jev’s job is not to summarize the post or explain what evals are. It only has to answer a bounded question:</p><blockquote><strong><em>Does this resource belong to the “AI agents” bucket?</em></strong></blockquote><p>And because the same resource can be relevant to more than one concept, we can ask the same question against several candidate buckets.</p><p>For example:</p><pre>AI agents                     0.94<br>Building Software             0.98<br>Mind and Learning            0.08</pre><p>Within milliseconds, the tweet now has a semantic position in the map.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*42ey1ByDwr9iDdvX5RL_5Q.png" /></figure><p>This is the part that makes Jev feel very different from manually creating folders.</p><p>I did not tell the system:</p><blockquote><em>“Put this tweet under AI evaluation.”</em></blockquote><p>I only gave it the resource and the available concepts. Jev estimated the relationship between them.</p><pre>Tweet<br>  ↓<br>Jev compares it against existing concepts<br>  ↓<br>AI evaluation       0.98<br>AI agents            0.94<br>Decision models      0.41<br>  ↓<br>Product policy<br>  ↓<br>Automatically placed</pre><p>And this happens every time a new resource arrives.</p><p>For example, I gave it a YouTube video and it classified it automatically:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dnjndvPdFRYNcvdxUZR92Q.png" /></figure><p>That resource could be a tweet today, a GitHub repository tomorrow, and a YouTube video after that. As long as we can extract enough useful text from it, Jev can evaluate it against the same concept definitions.</p><h3>But I also wanted to know what happened before Jev gave me that answer</h3><p>A probability like 0.98 looks convincing, but by itself it tells us very little.</p><p>Did Jev actually see the video? Did we manage to extract a transcript? Was it classifying from the title alone? Which concepts did we compare it against? Which version of Jev made the decision? How many tokens did we send? And, most importantly, did Jev decide where the resource went, or did our application make that decision afterward?</p><p>So alongside Curiosity, I built a small trace for every classification run.</p><p>This is what one of those traces looks like for a YouTube video:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M4nOQhYubjUicmllmdWUcg.png" /><figcaption>Fig: Trace for a particular YT video</figcaption></figure><ol><li>The first step has nothing to do with AI. From the URL pattern, the system can deterministically identify the resource as a <strong>YouTube video</strong>.</li><li>The next step is more interesting: <strong>what information about the video can we actually recover? <br></strong>For this run, YouTube did not expose a transcript to our unauthenticated extractor, but the system still had a reasonable amount of context to work with. It combined the video title, roughly 900 characters of description, channel information, tags, and other available metadata into a normalized 1,040-character representation. That exact text, visible in the trace under <strong>“Text the router saw”, </strong>is what Jev classified.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vCHfzCsqKxkoEWriaATFFQ.png" /></figure><p>From that representation, Jev evaluated all 12 concepts in a single routing call and returned Mind &amp; Learning = 0.98, while every other concept remained far lower.</p><pre>Mind &amp; Learning       0.98<br>Culture &amp; Media       0.11<br>Health &amp; Body         0.09<br>Product &amp; Business    0.08<br>Design &amp; Creativity   0.06<br>Science &amp; Nature      0.04<br>AI &amp; Agents           0.01</pre><p>3. And also the tokens used with the latency:</p><pre>Latency       910 ms<br>Input         1,852 tokens<br>Output          221 tokens<br>Attempts           1<br>Cost        not reported</pre><p>We can see the <strong>actual computational path</strong>: what we extracted, how much context reached the model, which model version ran, how many candidate concepts were evaluated, how many tokens the request consumed, and how long the decision took.</p><p>But even then, Jev had still not technically put the video into a bucket.</p><p>It had only said:</p><blockquote><em>Mind &amp; Learning = 0.98</em></blockquote><p>The next line in the trace belongs to <strong>our code</strong>, not Jev.</p><p>We created a policy called threshold-v1:</p><pre>confirm ≥ 0.80<br>reject  ≤ 0.20</pre><p>So the sequence was actually:</p><pre>YouTube page<br>      ↓<br>extract usable evidence<br>      ↓<br>normalize into model input<br>      ↓<br>Jev evaluates 12 concepts<br>      ↓<br>Mind &amp; Learning = 0.98<br>      ↓<br>our policy: 0.98 ≥ 0.80<br>      ↓<br>CONFIRMED<br>      ↓<br>MATCHED_EXISTING</pre><p>So, if tomorrow we decide that 0.80 is too aggressive and move the threshold to 0.90, it means our original model output remains 0.98; only the product policy changed.</p><p>With this trace, I had a proper <strong>audit trail for an AI decision rather than just depending on its own knwoledge base or decision matrix.</strong></p><p>With the trace, I wanted to evolve it more which I will do in the upcoming days. But for now, you might ask:</p><h3>So, should you use Jev everywhere?</h3><p>No.</p><p>Because Jev becomes compelling when the shape of the problem is already constrained.</p><p>That is exactly what made it useful in the Curiosity experiment.</p><ol><li>First, if you have some messy state, a known set of decisions, and you need to make those decisions repeatedly, quickly, and cheaply, Jev is the answer.</li><li>Second, TypeSafe currently lists Jev 1.13 at <strong>$0.042 per million input tokens</strong>, with output tokens uncharged, and advertises end-to-end latency around <strong>70–500 ms</strong>.</li></ol><p>With these 2 factors, Jev becomes the go-to place for all our use cases. BUT!</p><h3>The failure modes are also worth noticing</h3><p>Let’s look at them:</p><ul><li><strong>Jev can still be wrong: </strong>Jev’s typed output solves one problem very well: it keeps the model inside the decision space you define. If the only valid answers are Billing, Technical, Sales, and Other, it cannot suddenly invent a fifth category. <br>That also means the quality of the decision space becomes your responsibility. If the real case is something your schema does not represent well, say a refund dispute, account abuse, or a new issue you never anticipated. Jev still has to choose among the options you provided and the output could become wrong.</li><li><strong>Bad state construction: </strong>In our experiment, if you would have noticed, Jev never watched a YouTube video. But our system extracted a title, description, metadata, tags, and sometimes a transcript, normalized those into text, and Jev judged that representation.<br>If the extractor gives it the wrong page, a login wall, a poor snippet, or incomplete context, then a perfectly reasonable model decision can still produce a terrible product result.</li><li><strong>Question design: </strong>Jev can only judge within the decision space you give it. If the question is vague, labels overlap, or an important option is missing, the model may return a perfectly valid answer to a poorly designed question.</li><li><strong>Calibration: </strong>TypeSafe’s central claim is that Jev is trained for calibrated decisions using RLCD. That is potentially very important, because software can only sensibly threshold probabilities if those probabilities mean something.<br>Although, TypeSafe has not yet published the full RLCD training runs or a broad independent calibration benchmark So a production system should not interpret:</li></ul><pre>0.92</pre><p>as:</p><blockquote><em>there is objectively a 92% chance this is correct.</em></blockquote><p>It should mean:</p><blockquote><em>this model returned 0.92 on this task; now let us see how scores around 0.92 actually behave on our labelled data.</em></blockquote><p>That is why our harness ended up mattering almost as much as the model itself.</p><h3>And Jev is not the only way to solve this problem</h3><p>There is not yet another model that is obviously a drop-in equivalent to Jev, particularly because TypeSafe has not released Jev’s weights or RLCD training method.</p><p>But there are several adjacent approaches.</p><p>If your categories are fixed and you have labelled data, a <strong>fine-tuned encoder classifier</strong> may still be the simpler and cheaper solution.</p><p>If what you really need is valid JSON from an LLM, <strong>structured output and constrained-decoding systems</strong> already solve that problem without introducing a new model class.</p><p>Tools such as <strong>Outlines</strong> constrain generation to a schema. <strong>Instructor</strong> provides typed structured extraction. <strong>DSPy</strong> lets developers define typed signatures and optimize LLM programs. Zero-shot classifiers such as <strong>GLiClass</strong>, as well as BERT-style encoders, tackle overlapping parts of the same decision problem.</p><p>There are also already community projects attempting to reproduce Jev-like interfaces on open models, although none reproduces Jev itself because the underlying TypeSafe architecture and training recipe remain private.</p><pre>Fixed task + labelled data<br>        ↓<br>fine-tuned classifier</pre><pre>Need valid structured generation<br>        ↓<br>constrained / structured-output LLM</pre><pre>Open-ended reasoning or writing<br>        ↓<br>generative LLM</pre><pre>High-volume, runtime-defined,<br>bounded semantic decisions<br>        ↓<br>Jev becomes interesting</pre><h3>The part I find more interesting than Jev itself</h3><p>After building with it, I am less interested in whether the phrase <strong>“System One Model”</strong> becomes a permanent category.</p><p>Maybe it will.</p><p>Maybe the industry eventually decides that Jev is simply a very capable zero-shot decision model with a particularly good interface or it is another story!</p><p>Jev is only days old, and many of TypeSafe’s strongest claims still need independent testing. There are unanswered questions around calibration, architecture, training and how well the model holds up outside carefully shaped decision tasks.</p><p>So I would not build a critical system around Jev simply because it is fast and cheap.</p><p>I would benchmark it against the alternatives, label real examples, inspect failures, keep explicit fallback paths, and let code control what happens next.</p><p>But Jev did change one assumption for me:</p><blockquote><strong><em>Maybe generating language should not be the default way software asks AI to make a decision.</em></strong></blockquote><p>And for now, I am happily latching on to it!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6392b3c51585" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Million-Token Context Window Should Have Killed the Memory Industry. Did it?]]></title>
            <link>https://medium.com/@writertripathi/a-million-token-context-window-should-have-killed-the-memory-industry-did-it-9c617a799937?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/9c617a799937</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Sun, 30 Aug 2026 17:33:05 GMT</pubDate>
            <atom:updated>2026-08-30T17:33:05.403Z</atom:updated>
            <content:encoded><![CDATA[<p>I went into the tech report to answer that and found how and why there is a billion dollar industry around memory systems. A first-principles map of where AI memory actually lives.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8c8uzS7ppBm3oB8XHnhquw.png" /></figure><p>On July 16, a month back, Moonshot AI released Kimi K3–2.8 trillion parameters, and a context window of one million tokens. So, I took time to understand everything, dig deeper into their tech reports, architecture, and compare them with the best of the exisiting models to understand what Changes!!</p><p>Kimi K3 can read one million tokens in a single context window.</p><p>That is enough room for an enormous amount of conversation history, documents, code, decisions, corrections, and instructions to sit in front of the model at once.</p><p>Which raises an important question for an entire category of AI infrastructure:</p><blockquote><strong><em>If the model can simply read everything, why do Mem0, Zep, Letta, Supermemory and half a dozen other AI-memory companies need to exist?</em></strong></blockquote><p>Thousands of production agents now have some form of memory layer attached to them. These systems extract facts such as <em>“prefers dark mode,” “works in fintech,” “rejected the first design,”</em> or <em>“asked not to receive email updates,”</em> store them somewhere, and retrieve them later.</p><p>But if a model can carry the equivalent of several books of history in a single request, why bother?</p><p>That question sent me into Kimi K3’s architecture and what I found is that the distinction is not really <em>Kimi versus Mem0</em>.</p><p>It is something much more fundamental:</p><blockquote><strong><em>What should a model remember while it is thinking, and what should a system remember after the thinking is over?</em></strong></blockquote><h3>Kimi K3 is really an information-management machine</h3><p>Kimi K3 has approximately 2.8 trillion parameters, but only about 104 billion are active for a given token. So, if we strip away the benchmark numbers then we really have seven to eight engineering decisions left and I have planned this post to take you through it all.</p><ol><li><strong>The 69/24 split: </strong>Interestingly, K3 has 93 layers but all of them are not of the same kind. The 69 layers internally use Kimi Delta Attention (KDA) which is a linear attention mechanism that’s cheap over long sequence and the other 24 layers use Gated MLA (full attention) which is expensive but precise. <br>Now, we want to understand what does this mix mean? When we see other models, they have a linear attention which comes with a known flaw: it can’t attend precisely across the whole context. <br>Moonshot pays for periodic full-attention layers rather than going all-in on the cheap mechanism: The <em>cheap-but-lossy interleaved with expensive-but-exact.</em></li><li><strong>KDA’s fine-grained forgetting: </strong>We know that Linear attention works by maintaining a fixed-size state that decays over time where an old information fades to make room for new. In the earlier design systems, they controlled the decay by adding one global knob for “how fast do I forget.” <br>With the new Kimi model, KDA replaces the scalar functionality with a diagonal matrix: a per-channel decay rate. So now, different feature channels can retain information at different speeds where some channels hold on and others let go.</li><li><strong>Attention Residuals (AttnRes): </strong>Instead of every layer uniformly accumulating everything computed before it, layers can selectively retrieve representations from earlier depths. Because of this Moonshot reports ~25% training-efficiency gain for under 2% extra cost.<br>Again, the theme is familiar:<br><strong>What information should survive? What should be accessible later? What should be compressed?</strong></li><li><strong>Stable LatentMoE + Quantile Balancing:</strong> Kimi model has approximately 2.8 trillion parameters but only 104 billion (16 of 896 experts) wake up for any given token. And instead of the usual heuristic load-balancing losses, routing uses quantile-based allocation which is amazing!<br><strong><em>I have written a detailed article on how “Mixture of Experts” work, do give it a read to understand this in depth.</em></strong></li><li><strong>Training for length, not just with length: </strong>The model wasn’t thrown at million-token sequences on day one. What Moonshot did differently was to increase the context length progressively during training, and built synthetic datasets where solving the task genuinely requires attending across the entire window; not just the local neighborhood.</li><li><strong>The serving story: </strong>The model itself is quantization-aware training from the SFT stage with MXFP4 weights &amp; MXFP8 activations so the low-precision model is the model making it cost efficient.</li></ol><p><strong>And one most important one: </strong>Moonshot states that K3 was trained to preserve reasoning history across a session or the performance degrades during multi-turn agent use. In fact, even the model’s <em>usage contract</em> is about what gets remembered between turns.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3ju3wMJwkzotcj6puqk3hQ.png" /><figcaption>Fig: Kimi K3 Architecture</figcaption></figure><p><em>(There’s also Per-Head Muon on the training side and a native 401M-parameter vision encoder. These fascinating stories for another day.)</em></p><p>Now, that we have listed down all the factors one by one, let’s revisit them slowly:</p><ul><li>Per-channel decay rates tells us <em>what to forget, and how fast</em>.</li><li>Gated MLA and a compressed KV path tells us as to <em>how to store what we’ve read, cheaply</em>.</li><li>AttnRes tells as to <em>what to retrieve from what you’ve already computed</em>.</li><li>Sparse routing tells as to <em>what to activate out of everything you know</em>.</li><li>Progressive length training tells as to <em>how to actually use a huge span of history</em>.</li><li>Quantization tells us as to <em>how to afford holding all of it</em>.</li></ul><p>If we analyse, almost every major decision in this architecture is a decision about <strong>memory, what to keep, what to compress, what to retrieve, or what to let fade</strong>. This entire architecture built by Moonshot is really a multi-level memory management system that operates inside a single request.</p><p>Some of the very famous companies built on that like very scenario need to justify their existence. For example,</p><p><strong>Mem0</strong> which is probably the most popular memory layer for AI apps right now raising $24 million to solve exactly this problem, <strong>Zep</strong> built a whole temporal knowledge graph for it, <strong>Letta</strong> spun out of the MemGPT paper for it, <strong>Supermemory</strong>, <strong>LangMem</strong>, half a dozen others are solving the exact problem.</p><p>On the other hand, thousands of production agents ship with a memory layer bolted on, extracting little facts about users like “prefers dark mode”, “works in fintech”, “asked for a refund once” storing them in a database, and injecting them back into prompts later.</p><p>When we have all such tools and agents, here comes a model that can hold roughly ten novels of raw conversation history in a single request.</p><h4><strong>So one of two things must be true:</strong></h4><ul><li>Either the memory-layer industry is a dead or lost industry (which I don’t really want to conclude), or</li><li>my intuition about what “1M context” means is wrong.</li></ul><p>So, instead of guessing, I decided to understand: <strong>what is memory for a language model, mechanically? Where can state actually live? And what does each option really cost?</strong></p><p>Let’s get started:</p><h3>A language model forgets everything at the request boundary</h3><p>Let’s look at what actually happens when we send a request to any LLM like K3, Fable, Sol, doesn’t matter.</p><blockquote>When our prompt arrives, it gets broken into tokens, and the tokens get converted into embeddings. Then the model does its work, layer by layer, attention and the feed-forward ones that produces activations, and along the way the model builds something called a KV cache. The keys and values of every token it has read so far is kept around so it doesn’t have to re-read the whole sequence for every new token that it generates. The cache works exactly how we think.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*s1hIUqOojRpRh4vu0xrLMw.png" /></figure><p>And then the request ends. The output is returned, and everything from the activations, the KV cache, all of it, is discarded. Shredded.</p><p>But if we see closely, in this workflow, <strong>nothing actually was written back to the weights</strong>.</p><blockquote><strong>In fact, at inference time, the weights are strictly read-only, learning only ever happens during training, and your conversation is not training.</strong></blockquote><p>So when we say “the model remembers me”, that sentence is false. The model cannot remember you. Something around the model is remembering you, and putting it back in front of the model every single time.</p><p>So, if the state has to survive between two calls to a stateless function, there are only four places it can possibly live:</p><ol><li><strong>First</strong>, in the weights themselves which means training or fine-tuning. But imagine fine-tuning a model per user, how economically absurd it would be because you would be maintaining one model copy per customer, updates would take hours instead of milliseconds, and there’s no way to delete a specific fact once it has dissolved into the weights (Parametric memory matters enormously, but it is where general knowledge lives, not where “this user prefers dark mode” should live.)</li><li><strong>Second</strong>, in the prompt where we simply feed the history back in as input.</li><li><strong>Third</strong>, in a compressed note where we summarize the history and feed the summary back in.</li><li><strong>Fourth</strong>, in an external store where we keep the information outside, and retrieve selected pieces when they seem relevant.</li></ol><p>So every memory product, every context window announcement, every “personalization” feature we have ever seen is one of these four moves, or a combination of them.</p><p>So the real question is <strong>what does each of these three moves actually cost and when does that cost become worth paying?</strong></p><h3>Move one: put everything back in the prompt</h3><p>Feeding the entire history back has one advantage no other approach can match which is that “nothing is lost”.</p><p>So why doesn’t everyone just do this? <br>Because when we price it out, the bill arrives in four different currencies.</p><p><strong>Tokens, and they recur: </strong>We pay for the history on <em>every single call as we keep resending it</em>. A 400,000-token history across thirty messages in a day is roughly twelve million input tokens billed to answer questions that might each be one line long. This is why context caching exists: Anthropic, OpenAI, and Moonshot all cache repeated context, and K3’s is automatic and free with flat pricing across the window.</p><p><strong>Compute, and it grows quadratically: </strong>Full attention compares every token with every token before it, so doubling the history roughly quadruples the attention work.</p><p><strong>Serving memory: </strong>That KV cache from the last section has to physically sit in GPU memory for the entire duration of the request, and it grows with every token you stuffed in, for every concurrent user at once.</p><p><strong>Attention itself: </strong>A million-token window is a <em>capacity</em> number and it tells us how much the model can accept, and promises nothing about how well it recalls any of it. Recall across long contexts is not uniform: information in the middle of a long sequence is retrieved less reliably than information at the edges which we also know as the well-documented “lost in the middle” problem. And raw history carries its issues. The fact from January (“works at Company A”) sits in the window with the same authority as its correction from June (“now works at Company B”), and we are trusting the model to referee that conflict correctly, on every request, forever.</p><p>Which points somewhere very naturally. If forgetting and compression are how you survive a long context <em>inside</em> the model, why not do the same thing <em>outside</em> it, at the application level, where we actually control what gets kept?</p><p>That is move two and it is exactly what the most sophisticated agent systems already do.</p><h4>Move two: compress the history into notes</h4><p>The obvious cheaper alternative is to stop carrying the transcript and keep a running note instead of goals, decisions, preferences. The cost problem vanishes. But we’ve traded it for a worse one: compression is a prediction about what will matter later, made before we know what we’ll be asked and when it drops a detail, it is a failure. A summarizer folds “refunds must go to the original payment method — legal requirement” into “built the payments module,” and forty sessions later the agent ships store-credit refunds. The bug isn’t in the code; it’s in a compression that happened five weeks earlier, and nobody will trace it back. A missing memory and a memory that never existed look identical from inside the model.</p><h4>Move three: extract and retrieve from an external store</h4><p>This is the move the whole memory industry is built on, so let’s understand it as an engineering pipeline because once we see the pipeline, we see exactly where each company lives and exactly where each one can fail.</p><p>There are four stages, and every one of them is a place where things can go wrong.</p><p><strong>Stage one is extraction:<br></strong>As the conversation happens, something has to decide which parts are worth remembering and write them down as discrete memories.</p><p><strong>Stage two is storage</strong>, and the choice of <em>how</em> we store shapes what we can later ask. Store memories as embeddings in a vector database, and we can retrieve by semantic similarity but we cannot easily ask “what changed about this user over time.”</p><p><strong>Stage three is retrieval:</strong> When a new message comes in, the system has to pull the <em>relevant</em> memories back into the prompt. Most systems bet on semantic similarity: find the stored memories whose embeddings are closest to the current query. But “semantically similar” is not the same as “actually relevant to this decision.”</p><p><strong>Stage four is lifecycle: </strong>The user who worked at Company A now works at Company B. The preference for email updates becomes a preference against them. So the store must handle updates, resolve conflicts between old and new memories, invalidate stale facts.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cenwxocTKdcYQz2TUCvEWw.png" /><figcaption>Fig: How memory system works?</figcaption></figure><p>That fourth stage is where the tools genuinely differ and each company is really a bet on which stage matters most.</p><ul><li><a href="https://mem0.ai/">Mem0</a> is the general-purpose extract-and-retrieve layer, scoped across user, session, and agent levels.</li><li><a href="https://www.getzep.com/">Zep</a> made temporal lifecycle its whole thesis: every fact gets a validity window, so “works at Company A” isn’t wrong, it is <em>expired and </em>the one thing a naive vector store cannot represent.</li><li><a href="https://www.letta.com/">Letta</a> (from the MemGPT lineage) treats memory as tiered state the agent manages itself, paging information in and out of context like an operating system.</li><li><a href="https://supermemory.ai/">Supermemory</a> leans into cross-application memory over MCP.</li><li>And LangMem is the LangChain-native option.</li></ul><p>When you understand now how the memory layer really works and how every company treats it differently, understanding the memory types might just help you to take a decision.</p><h3>Kimi vs Memory Models</h3><p>When we say a system has “memory,” we are pointing at one word that is actually covering at least seven different things and now we will understand why is “Kimi versus Mem0” a valid question.</p><p><strong>Parametric memory</strong> is what the model learned during training, stored in the weights. K3 knows what a binary search is because of parametric memory. This is the deepest and most permanent layer, and no memory tool touches it. <strong>Mem0 cannot write here; only training can.</strong></p><p><strong>Working memory</strong> is the active context window where everything the model can see right now. K3’s million-token window is a very large working memory. This is the layer long-context models are expanding.</p><p><strong>Computational memory</strong> is the KV cache: the intermediate state the model maintains <em>while processing</em> the current sequence. This is where KDA and Gated MLA operate on how to hold the current sequence affordably. When people conflate “1M context” with “remembers me,” they are confusing this layer and the next.</p><p>Those first three live <em>inside</em> the model. The next four are what the memory industry actually works on and they live <em>outside</em> it.</p><p><strong>Episodic memory</strong> is the record of specific events: “on Monday, the user rejected the first design.” A log of things that happened, with their particulars intact.</p><p><strong>Semantic memory</strong> is the consolidated fact distilled from those events: “the user prefers minimal interfaces.”</p><p><strong>Procedural memory</strong> is how-to knowledge the agent should apply: “always run the tests before proposing a patch.” These are behavorial instructions.</p><p><strong>Temporal memory</strong> is the understanding that facts have a time dimension like that “works at Company A” was true then and “works at Company B” is true now, and that the system must know which is current. This is the layer Zep built its whole product around.</p><p>Now, K3’s innovations, every one of them, operate on <strong>working and computational memory</strong>. The million-token window expands the working memory; KDA, Gated MLA, and the KV-cache work make computational memory affordable. That is the entire footprint of what a long-context model improves. It makes the <em>inside-the-model</em> layers bigger and cheaper.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HVWGaJ54op7M9fmQyJEz4w.png" /><figcaption>Fig: Where does the state really live?</figcaption></figure><p>Mem0, Zep, Letta and the rest operate on <strong>episodic, semantic, and temporal memory: </strong>the <em>outside-the-model</em> layers. They persist events, consolidate facts, and track change over time, across sessions, across applications.</p><p>So look at what we actually asked at the start of this post. “Kimi K3 can read a million tokens, so why does Mem0 exist?” We were comparing a working-memory improvement to an episodic-and-temporal-memory product. They are not competitors. So, let’s see through some comparison, the valid ones:</p><h3>Two comparisons</h3><p>The taxonomy gives us a rule that the models and the memory products are not on the same axis, so we do not get to put them in one table.</p><p><strong>Table A: Model-side memory (working + computational)</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5ifq5CxBVKLrSpxdKfsuog.png" /></figure><p>One line of interpretation goes here: bigger windows are converging across labs, so the real differentiator is recall and cost <em>structure</em>, not the window number everyone quotes.</p><p><strong>Table B: Product-side memory (episodic + semantic + temporal)</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7qnnnOGhz0cNEYbVblrl-g.png" /></figure><p>One line of interpretation goes here: notice there is no “context window” row and no “recall” row because these tools compete on lifecycle, not on length.</p><p>The two tables together say what eight sections of prose have been building toward: <strong>you are not choosing between a model and a memory tool. You are choosing a model for one layer and, separately, deciding whether you need a product for the other.</strong> Most real systems end up wanting both:<br>a capable context window <em>and</em> a thin persistence layer.</p><h3>So what should you actually build?</h3><p>Let’s start by asking one question: <strong>does your state need to cross a session boundary?</strong> Almost everything follows from the answer.</p><ol><li><strong>If it does not</strong>, the corpus is small, it lives in one session, and getting the details exactly right matters. No memory layer, no vector database, no extraction pipeline. Feed the model the actual material and let it read.</li><li><strong>If your state lives inside one long-running project</strong> that you control like a coding agent, a research assistant working a single problem over days, then a structured working note is usually enough. Keep a file with fixed sections (decisions, constraints, open questions), let the model read it each turn, and keep a pointer back to the raw history so nothing is truly gone.</li><li>You only reach for an<strong> external memory layer like </strong>the Mem0/Zep/Letta tier when memory must persist across <em>separate</em> sessions, be shared across <em>multiple</em> users or agents, survive for months or years, get <em>deleted</em> on request, or track facts that <em>change over time</em>.</li></ol><p>So, Sol or Kimi models really handle the long-context model which is the <strong>reasoning engine</strong>, holding the active working set.</p><p>The memory layer sits beside it as <strong>persistence</strong>, holding the durable, cross-session facts and at the start of each session it injects only the handful that matter back into the model’s context.</p><p>Let’s take an example:</p><p>Take a user with fifty sessions of history, say 500,000 tokens accumulated and one new one-line question, priced on K3’s real rate of $3 per million input tokens.</p><p>Move one, replay everything: you send ~500K tokens to answer one question. That is roughly $1.50 per message on a cache miss and if the session is active, that history reloads on every turn.</p><p>Move two, summarized note: the 500K history is compressed to a ~2K working note. You send ~2K tokens that is a fraction of a cent per message.</p><p>Move three, external layer: you retrieve maybe five relevant facts which is a few hundred tokens and inject those. <br>Also a fraction of a cent, but now you own an extraction pipeline, a store, and a retrieval step, each of which can fail. You did not pay in tokens; you paid in system complexity and moving parts.</p><p>The long-context camp oversells a capacity number: a million-token window tells us how much a model <em>can</em> accept, not how reliably it recalls the middle of that window, resists a stale fact, or stays affordable at real volume. And the memory-tools camp oversells its benchmarks: most of them measure whether a stored fact was <em>retrieved</em>, not whether it was the <em>right</em> fact, still <em>current</em>, or <em>safe</em> to surface.</p><p>Neither long context nor external memory has actually <em>solved</em> memory. They fail in opposite directions, which is precisely why the good architectures uses both.</p><p>So we can finally answer the question this whole post started from. Kimi K3 can read a million tokens, and Mem0 still exists, and both of those facts are correct.</p><p>I wanted to cover this story to explain as more and more of us need to understand memory systems in depth. In the upcoming posts, we will reverse engineer how were these built and work in our context.</p><p>Thank you for reading!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9c617a799937" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[LangChain and LangGraph are DEAD? So what to USE!!]]></title>
            <link>https://medium.com/@writertripathi/langchain-and-langgraph-are-dead-so-what-to-use-4a6033621fce?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/4a6033621fce</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Sat, 06 Jun 2026 14:34:35 GMT</pubDate>
            <atom:updated>2026-06-06T14:37:34.372Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J_6dYPutKcgCqddkd8js0Q.png" /></figure><p>It is no more a hidden secret that the use case why Langraph and Langchain came into picture and solved the problems for us, have become 2X complicated. So what is next?</p><iframe src="https://cdn.embedly.com/widgets/media.html?type=text%2Fhtml&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;schema=twitter&amp;url=https%3A//x.com/kenwuuuu/status/2058778353822228960%3Fs%3D20&amp;image=" width="500" height="281" frameborder="0" scrolling="no"><a href="https://medium.com/media/bfb55008f558d5855dce330f655db274/href">https://medium.com/media/bfb55008f558d5855dce330f655db274/href</a></iframe><h3>How did the existence happen?</h3><p>Let’s take a step back and go to the year 2023 when ChatGPT had just blown up. Every developer suddenly wanted to build “an app with AI in it.” But when you actually sat down to build something beyond a basic chatbot, you were stuck.</p><p>Calling an LLM API is easy which meant sending one HTTP request and getting a response back. The problem is that real applications need a lot more than one request. Think about what a useful AI app actually needs to do:</p><ul><li>Take a user’s question, but first look up relevant information from a company’s internal documents before answering, basically a RAG pipeline (Will cover RAG in detail in the next article).</li><li>Remember what the user said three messages ago (that’s memory).</li><li>Decide whether to search the web, query a database, or just answer from its own knowledge (that’s tool use).</li><li>If the first answer isn’t good enough, try again with a different approach (that’s a loop).</li><li>Connect to OpenAI today, but maybe swap to Anthropic tomorrow without rewriting everything (that’s abstraction over providers).</li></ul><p>Sounds good, right?</p><p>But in early 2023, none of this was built into the model APIs. OpenAI gave you a chat.completions endpoint. If you wanted any of the above, you had to write it yourself, from scratch, every time. And everyone was writing the same boilerplate → connect to vector DB, chunk documents, format prompts, parse outputs, handle retries.</p><p>This is the problem statement that Langchain wanted to solve.</p><h3>How did it come into picture?</h3><p>In late 2022, Harrison Chase who was an ML engineer at Robust Intelligence, a Bay Area company did the critical work of testing and validating machine learning models in production. For three years, Chase confronted the gap between research prototypes and production systems.</p><p>He’d spent years watching ML systems break in messy real-world ways, which turns out to be excellent preparation for what was about to happen.</p><p>In October, 2022, at a company hackathon, he built a bot capable of querying internal data from Notion and Slack. The same October month when ChatGPT was about to drop, and Chase had stumbled into the exact pattern of connecting an LLM to your own data and tools that the entire industry was about to need. His first tweet about the project went out on October 24, 2022. He called it <strong>LangChain, </strong>short for<strong> Language Model Chains, and open-sourced it under MIT</strong>.</p><p>Interestingly, ChatGPT launched roughly a month later and every developer suddenly who wanted to build “an app with AI in it” had LangChain sitting on GitHub with exactly what was needed.</p><h3>What LangChain actually is?</h3><p>To explain what they had really built, we can understand in one line that LangChain is a Python (and later JavaScript) library that gave developers pre-built Lego blocks for all those repetitive pieces. The core idea is right there in the name that you chain together a sequence of steps that involve an LLM.</p><p><strong><em>A typical chain might look like: </em></strong><br>take user input → pull relevant docs from a vector database → stuff those docs into a prompt template → send it to the LLM → parse the output → return it to the user. LangChain gave you a class or a function for every one of those steps, and a way to glue them together.</p><p>It also gave you adapters. For example:</p><ul><li>Want to use Pinecone as your vector DB? There’s a wrapper.</li><li>Want to switch to Weaviate next week? Same interface, different wrapper underneath.</li><li>Same for LLM providers (OpenAI, Anthropic, Cohere, local models), document loaders (PDF, Notion, Google Drive, web scraping), and output parsers.</li></ul><h3>But things eventually changed..</h3><p>Even though Langchain was a huge buzz amongst developers, by mid-2024, Chase and his team had a problem they couldn’t fix by shipping more integrations.</p><p>LangChain’s success had pulled it into use cases it was never designed for. If we understood from the previous section, the original mental model was a chain, a straight line of steps from input to output that would fit the 2023 wave of “chat with your PDFs” apps almost perfectly.</p><p><strong>But teams had started building something more ambitious</strong>: agents that could think for several minutes, call tools repeatedly, hand work off to other agents, pause for a human to approve a decision, and resume from where they left off. Now, when you see this, this doesn’t quite fit in the single line working model!</p><p>And eventually complaints started rolling in.</p><ul><li><strong>Octomind,</strong> a YC company that had built its entire product on LangChain, published a postmortem in 2024 explaining why they ripped it out. Their core issue was that they needed to dynamically change which tools an agent could use based on what the agent had already discovered, and LangChain gave them no way to inspect or modify the agent’s state mid-run. They had to dumb down their product to fit the framework. That story landed hard in the developer community because everyone building serious agents was hitting some version of the same wall.</li></ul><blockquote>Chase’s team saw it too and understood the linear shape of the model needed to change.</blockquote><p><strong>LangGraph </strong>was that different shape. <br>It launched in early 2024 and went publically available in October 2025, and the shift in the name is the shift in the entire idea. Chase shifted the model from <em>chain</em> (a straight line) to <em>graph </em>which is a network of nodes connected by arrows that can loop, branch, and have conditions.</p><h4>Here’s the mental model:</h4><p>In LangChain, you describe your app as a recipe: do step A, then step B, then step C, return the result.</p><p>In LangGraph, you describe your app as a map. <br>There are nodes (each node does some piece of work, often involving an LLM call) and edges (rules about which node to go to next). <br>The arrows can point backwards telling that node B can route back to node A if the LLM’s output wasn’t good enough. <br>They can branch like node A might send work to B, C, or D depending on what the user asked for. <br>They can pause where a node can stop everything and wait for a human to click “approve” before the agent continues.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RFN4iQtg5KCG-GMy6o4Pog.png" /><figcaption>Fig: LangChain vs LangGraph</figcaption></figure><blockquote>Imagine a customer support agent for a healthcare app. <br><strong>A user writes in with a vague complaint. </strong><br>In a LangChain world, you’d build a linear flow:</blockquote><blockquote>classify the issue → look up the user → fetch their recent history → generate a response → send it. <br>In this model, even if the classification was wrong, the chain wouldn’t stop and has probably already moved on.</blockquote><p>In a LangGraph world, you’d model the same thing as a graph. <br>1. A “triage” node classifies the issue and routes to one of three specialist nodes.</p><p>2. The specialist node fetches data, drafts a response, and routes to an “approval” node that pauses the entire agent until a human reviews it. <br>3. If the human rejects the draft, the graph routes back to the specialist with the rejection reason in state, and it tries again.</p><p>If anything fails, you can pull up the agent two days later, see exactly what it did at every step, and resume it from any checkpoint. That is the power of LangGraph!</p><p><strong>Where LangGraph gets used today:</strong></p><ul><li><strong>Multi-agent systems, where one agent hands off to another</strong>: a research agent passes findings to a writing agent, which passes a draft to a critic agent that sends it back for revisions.</li><li><strong>Long-running agents that work on a task for minutes or hours rather than seconds</strong>: Anthropic’s Claude Code, Cognition’s Devin-style coding agents, and OpenAI’s deep research products all use LangGraph-style architectures (some literally on LangGraph, some on their own re-implementations of the same idea).</li><li><strong>Anything with human-in-the-loop approval steps</strong>: This matters enormously in regulated domains like healthcare, finance, legal, where you legally cannot have an AI take certain actions without a human signing off.</li><li><strong>Customer support flows</strong> where the agent has to escalate, retry, or branch based on conditions in ways a simple chain can’t express.</li><li><strong>Research and analysis</strong> agents that need to plan a task, execute parts of it, evaluate the results, and decide whether to keep going or change strategy.</li></ul><p>Anthropic released the Claude Agent SDK with native state management, tool use, and sub-agents. OpenAI shipped the Agents SDK with built-in handoffs and guardrails. AWS open-sourced Strands.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rI1oxQaEOwwDJDmiaxnHlQ.png" /></figure><h3>But why do we say it is DEAD?</h3><p>If you’ve been on developer Twitter in the last six months, you’ve seen some version of the same claim: LangChain is dead, LangGraph is bloated, everyone serious is ripping it all out. The replies are full of alternatives like Pydantic AI, CrewAI, the Claude Agent SDK, the OpenAI Agents SDK, “just use the raw API.”</p><p>While everyone was arguing about which framework would replace LangChain, LangChain the company built something else.</p><blockquote>In October 2025, they raised $125 million at a $1.25 billion valuation. The product driving that round wasn’t LangChain. It wasn’t LangGraph either.</blockquote><blockquote>It was LangSmith, their observability platform and it works with frameworks they don’t own.</blockquote><p><strong>Now, what is Langsmith and why is it important for us to know, I will cover the deep-dive in the next blog post!</strong></p><h3>The 2026 framework landscape: what people are actually using</h3><p>Below are the seven frameworks I’d actually consider if I were starting a new LLM project today, grouped by category, with honest notes on when each one fits and when it doesn’t.</p><p>I’ll be opinionated.</p><p>You should disagree where your context differs from mine.</p><h3>Category 1: Provider-native SDKs</h3><p>This is the new default starting point for most teams. The model providers have built enough first-party tooling into their own SDKs that you can skip the framework layer entirely for a lot of use cases.</p><h4><strong>Claude Agent SDK</strong></h4><p>Anthropic’s official SDK for building agents on Claude. Extracted from Claude Code (the coding agent powering Anthropic’s own product), it ships with native support for tool use, MCP, computer use, extended thinking, and context management. Released as a standalone SDK in 2025 after Claude Code proved out the patterns.</p><p><strong>Why to use it?<br></strong>Best-in-class for long-horizon agents that need to operate in an execution environment like read files, run code, use computers, manage their own context over many turns. The MCP integration is native, which means plugging in tools is genuinely a few lines of code. If you’ve committed to Claude as your model, this is the lowest-friction path to a production agent.</p><p><strong>Why not to use it?</strong><br>You’re locked into Anthropic. If you need to switch model providers or run multiple in parallel, you’ll be re-implementing the harness for each. Also overkill for simple chatbots or single-turn applications — for those, just call the Messages API directly.</p><p><strong>How to start?</strong></p><p>pip install claude-agent-sdk</p><p>The <a href="https://code.claude.com/docs/en/agent-sdk/overview">Anthropic docs have a quickstart</a> that gets you to a working agent with tool use in under fifty lines of code.</p><p>The <a href="https://github.com/anthropics/claude-cookbooks/tree/main/patterns/agents">Claude Cookbooks repo</a> on GitHub has reference implementations for the five common agent patterns.</p><p><strong>OpenAI Agents SDK</strong></p><p><strong>What it is:</strong></p><p>OpenAI’s production-grade agent framework, evolved from their earlier experimental Swarm project. Launched in March 2025.</p><p>Designed specifically around multi-agent coordination where one agent hands off to another, sessions get tracked automatically, and guardrails validate inputs and outputs.</p><p><strong>Why use it:</strong></p><p>Because this is the cleanest multi-agent ergonomics in the field if you’re on OpenAI models. Handoffs between specialized agents are first-class primitives where you declare a triage agent that routes to a billing agent or a tech-support agent and the SDK handles the protocol.</p><p>Built-in tracing means you can debug agent runs without bolting on a separate observability tool, at least initially.</p><p><strong>Why not:</strong></p><p>Because it is restricted to OpenAI. The handoff model is opinionated and may not fit your architecture if you want a different shape (say, a graph instead of a tree of agents). And the built-in tracing is fine for development but most production teams will still want a dedicated observability layer on top.</p><p><strong>How to start:</strong></p><p>pip install openai-agents.</p><p>OpenAI&#39;s docs walk through building a multi-agent customer support bot in about thirty minutes, which is a good first project because it exercises the handoff pattern directly.</p><h4><strong>AWS Strands Agents</strong></h4><p>This is AWS’s open-source agent framework, integrated with Amazon Bedrock for inference and AgentCore for managed deployment. Despite the AWS branding, it’s genuinely model-agnostic as it supports Bedrock, Anthropic, OpenAI, Ollama, and anything OpenAI-compatible.</p><p><strong>Why use it</strong></p><p>The right pick if your infrastructure already lives in AWS.</p><ul><li>AgentCore handles the operational layer from deployment, scaling, monitoring that you’d otherwise have to wire up yourself.</li><li>Model-agnostic design means you’re not locked in even though it’s an AWS product.</li></ul><p><strong>Why not</strong></p><p>If you’re not on AWS, the integration story loses most of its value and you’d be picking it for the framework alone, where other options have more momentum. Documentation is improving but still thinner than Claude Agent SDK or OpenAI Agents SDK.</p><p><strong>How to start</strong></p><p>pip install strands-agents.</p><p>The <a href="https://tutorialsdojo.com/aws-strands-agents/">Strands docs on AWS have a tutorial</a> that uses Bedrock for inference, but you can swap the model layer to any provider in the configuration.</p><h4>Category 2: Orchestration frameworks</h4><p>These are for when a single agent loop isn’t enough and when you need explicit state, branching logic, human approval gates, or coordination between multiple specialized agents. The provider SDKs handle the simple cases. These handle the cases that get hard.</p><h4><strong>LangGraph</strong></h4><p>This is the graph-based orchestration framework from the LangChain team. Models your agent as a network of nodes (work) and edges (transitions), with explicit state that you can checkpoint, inspect, and resume and is over 47 million monthly downloads already.</p><p><strong>Why use it</strong></p><ul><li>The cleanest answer in the field for stateful, branching workflows with human-in-the-loop steps.</li><li>If your agent needs to pause for approval before taking an irreversible action, route conditionally based on what it has discovered, or persist its state to disk and resume hours later, LangGraph models all of this as first-class primitives.</li><li>Used in production by Anthropic’s Claude Code (for portions of the architecture), Cognition’s Devin, OpenAI’s deep research, and many enterprise agent platforms.</li></ul><p><strong>Why not</strong></p><ul><li>Could be an overkill if your application is a single loop.</li><li>The learning curve is real and you have to think in terms of nodes, edges, and state schemas, which is a step up from just calling an SDK.</li><li>Also, the integration with LangChain itself can pull in more dependencies than you want if you’re not careful about which packages you import.</li></ul><p><strong>How to start</strong></p><p>pip install langgraph.</p><p>The LangGraph docs have a tutorial that walks through building a customer support agent with handoffs and approval steps, which exercises the framework&#39;s strengths better than a toy example.</p><h4><strong>Pydantic AI</strong></h4><p>It is a typed, lightweight agent framework from the team behind Pydantic — the type-validation library most Python developers already use. It was released in late 2024 and has been rapidly adopted by teams who wanted control without ceremony.</p><p><strong>Why use it</strong></p><p>Because it is the “I’d rather have types than magic” choice.</p><ul><li>You describe your agent’s inputs and outputs as typed Python objects, define tools as typed functions, and the framework handles the LLM interaction.</li><li>No chains, no graphs, no abstractions you have to learn. Just typed code that happens to call an LLM.</li><li>If you’ve ever debugged a LangChain output parser, Pydantic AI is what you wished you’d been using.</li></ul><p><strong>Why not</strong></p><ul><li>No first-class multi-agent graph model.</li><li>If you need explicit state machines or human-in-the-loop branching, you’ll be building those patterns on top yourself.</li><li>Also Python-only at the moment, so no good for TypeScript-first teams.</li></ul><p><strong>How to start</strong></p><p>pip install pydantic-ai.</p><p>The <a href="https://pydantic.dev/docs/ai/overview/">Pydantic AI docs have a first-agent example</a> that takes about ten minutes to work through and gives you a feel for the typed approach immediately.</p><h4><strong>CrewAI</strong></h4><p>It is a role-based multi-agent framework.</p><p>You define a “crew” of agents with specific roles like researcher, writer, critic and CrewAI handles the coordination. It has already reached version <a href="https://docs.crewai.com/en/learn/a2a-agent-delegation">1.14 in 2025 with A2A protocol support.</a></p><p><strong>Why use it</strong></p><ul><li>This is probably the fastest way to prototype a multi-agent idea.</li><li>The role abstraction matches how people naturally think about teams of agents, which means you can go from concept to working demo in an afternoon.</li><li>Good fit for content workflows, research tasks, and anything where the “team of specialists” mental model fits the problem.</li></ul><p><strong>Why not:</strong></p><p>The role abstraction that makes it fast to prototype also limits how much control you have over execution at scale. Production teams sometimes hit the same wall they hit with LangChain that is the framework’s opinions don’t match what they need their agents to do and migrate to LangGraph or raw SDKs.</p><p><strong>How to start:</strong></p><p>pip install crewai.</p><p>The CrewAI docs have a starter that builds a research-and-writing crew, which is the use case the framework was built for and where you&#39;ll feel its strengths most directly.</p><h3>Category 3: The research-first option</h3><p>Worth knowing if your work bridges research and production.</p><h4><strong>CAMEL-AI (with OWL)</strong></h4><p>Originally an academic research project out of KAUST in 2023, asking “what happens when LLM agents talk to each other in defined roles, and can we study that interaction at scale?”</p><p>Is now a production-capable framework with up to a million-agent simulation support. <br><a href="https://github.com/camel-ai/OWL">OWL</a> is the practical layer built on top and has hit #1 on the GAIA benchmark among open-source general agents in 2025, accepted to NeurIPS 2025.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BurYP3NQgTSYAqGZIslhtA.png" /></figure><p><strong>Why use it:</strong></p><p>It is probably the strongest fit when your problem looks like a <strong>society of agents</strong> rather than a <strong>pipeline with agents in it</strong><em>.</em></p><p>Synthetic data generation at scale, large-scale agent simulation, multi-agent research workloads, cross-environment automation is where you’ll need OWL. The synthetic data pipelines are genuinely useful even if you don’t care about the simulation side because they ship with Chain-of-Thought, Self-Instruct, and Source2Synth methods with verifiers, which is closer to a real research workflow than what most frameworks offer.</p><p><strong>Why not:</strong></p><p>It could be an <strong>Overkill for product engineering</strong>. If you’re building a customer-facing agent that needs to ship in three weeks, this is not the framework to pick. It’s a research-first tool that happens to be production-capable, not the other way around.</p><p><strong>How to start:</strong></p><p>pip install camel-ai.</p><p>The <a href="https://www.camel-ai.org/">CAMEL-AI docs</a> have a role-playing example that demonstrates the original concept (two agents collaborating on a task) and a separate OWL quickstart for the production-oriented features.</p><blockquote>You’ll notice I didn’t include AG2, Semantic Kernel, smolagents, Haystack, or LlamaIndex. They’re real and some teams use them well, but they either occupy specialized niches (Haystack for EU compliance, LlamaIndex for RAG-heavy applications, Semantic Kernel for .NET shops) or haven’t shown the production momentum of the seven above. If your context maps cleanly to one of those niches, those frameworks are worth looking at.</blockquote><p>Hope this article helps you and genuinely gives you enough alternatives!</p><p>What we have build using these alternatives, I will be posting that next along with Observability options. Thank you for reading :)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4a6033621fce" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How DeepSeek or Kimi were built: Models shaped by constraints]]></title>
            <link>https://medium.com/@writertripathi/how-deepseek-or-kimi-were-built-models-shaped-by-constraints-6a6d7164746d?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/6a6d7164746d</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Sun, 15 Mar 2026 17:39:54 GMT</pubDate>
            <atom:updated>2026-11-10T14:00:16.136Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Why the US trying to slow China down may have accidentally sped them up!</em></p><p>When DeepSeek dropped in January 2025, my first reaction was the same as everyone else’s: <em>wait, how?</em></p><p>Not just “how did they build something this good” but how did they build it <em>cheaper</em>, <em>leaner</em>, and in some ways <em>more elegantly</em> than labs with ten times the resources? So, I went down the rabbit hole.</p><p>Research papers, technical reports, chip specs, US export policy documents. Everything!</p><p>And the more I read, the more I realized this wasn’t a story about a Chinese lab catching up but something that emerged from constraints.</p><h4>Here is where it all began..</h4><p>In October 2022, the US government made a move that would try to reshape the AI industry.</p><p>The Bureau of Industry and Security, the same agency that controls exports of weapons and dual-use technology <a href="https://www.bis.gov/press-release/commerce-strengthens-export-controls-restrict-chinas-capability-produce-advanced-semiconductors-military">restricted the export of advanced NVIDIA chips to China</a>.</p><p>It was obvious why they did it but the reasoning they gave for this step was that it could:</p><ul><li>Improve the speed and accuracy of Chinese military decision-making and logistics</li><li>Power autonomous weapons systems,</li><li>Enable large-scale surveillance and human rights abuses</li></ul><p>And underneath all of it, a bigger fear that if China leapfrogged the US in chip technology, it could gain the upper hand as a <a href="https://en.wikipedia.org/wiki/United_States_New_Export_Controls_on_Advanced_Computing_and_Semiconductors_to_China">2021 US National Security Commission report</a> put it <em>“in every domain of warfare.”</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hMYf7CFkKqanaXUDbnSx_A.png" /></figure><p>Due to this entire restriction plans, the H100: the GPU that had become the backbone of every major frontier model training run was off limits and so was the A100.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*W3RkEfpOqKwLfpvzgi7hLA.png" /><figcaption>Fig: How GPUs architecturally powers all the models</figcaption></figure><p>What DeepSeek could legally access were export-compliant variants that NVIDIA had specifically engineered for the Chinese market: the <strong>H800</strong> (a modified Hopper chip) and the <strong>A800</strong> (a restricted Ampere chip). <br>Both were stockpiled before a second round of bans arrived in <a href="https://www.csis.org/analysis/deepseek-deep-dive">October 2023</a>, which were blocked too. :(</p><p>The H800 looked almost identical to the H100 on paper. <br>Same memory. <br>Same core compute. <br>But one number was different:</p><p><strong>NVLink bandwidth was cut from 900 GB/s down to 400 GB/s.</strong></p><p>This was a big deal!<br>To understand why this is such a big deal, you need to understand how large models are actually trained.</p><p>— — <br>Nobody trains a 671 billion parameter model on a single GPU. <br>You run hundreds, sometimes thousands of GPUs in parallel, and they need to talk to each other constantly.</p><blockquote>To understand this in depth, read my article on how <a href="https://medium.com/@writertripathi/how-is-claudes-100m-bet-quietly-breaking-nvidia-s-ai-monopoly-89def9068c2c">Nvidia built the AI chips</a>.</blockquote><p>Every step of training involves synchronising gradients and passing data across the cluster and NVLink is the highway that makes this possible and InfiniBand connects the nodes to each other. So, if you halve the bandwidth, the whole cluster slows down and the more GPUs you add, <a href="https://slviki.org/nvidia-a100-vs-h100-vs-h800-comparison/">the worse the bottleneck gets</a>.</p><p>— —</p><blockquote>DeepSeek confirmed this directly. <br><a href="https://huggingface.co/deepseek-ai/DeepSeek-V3">Their own technical report</a> states that DeepSeek-V3: a 671B parameter model was trained on just 2,048 H800 GPUs, completing pre-training on 14.8 trillion tokens in 2.664 million GPU hours. <br><strong>For reference, training GPT-4 is estimated to have cost somewhere between $50–100 million. DeepSeek did it for roughly $5.6 million.</strong></blockquote><p><strong>One note of nuance worth flagging<em>:</em> </strong>some industry analysts, including SemiAnalysis, have claimed that DeepSeek’s broader infrastructure may include fully banned H100s alongside the H800s while DeepSeek has only officially confirmed H800s for V3 training. Since admitting to H100s would mean confessing to a violation of US export law.</p><h3>How did the constraints turned into an opportunity?</h3><p>So, we understood that yes! we can’t throw more hardware at the problem so what do we do now?</p><p>You rethink the problem entirely.</p><p>And that’s exactly what DeepSeek did, across three distinct bottlenecks. Each constraint produced a specific architectural response and together, <strong>they explain how a 671 billion parameter model got trained on 2,048 GPUs for mere $5.6 million.</strong></p><h3>Constraint 1: You can’t activate everything, so stop trying!</h3><p>In a standard “dense” transformer model, every parameter activates for every single token the model processes.</p><p>The model has 70 billion parameters? <br>All 70 billion are doing work on every word, every sentence, every prompt and it’s powerful.</p><p>It’s also enormously wasteful especially when you’re operating under compute constraints.</p><p>DeepSeek’s response was to go all-in on <a href="https://medium.com/@writertripathi/smarter-not-bigger-the-rise-of-mixture-of-experts-in-ai-ec388db7cd58"><strong>Mixture of Experts (MoE) </strong></a>an architecture where, instead of one giant network doing everything, you have hundreds of smaller specialized sub-networks called “experts,” with a routing mechanism that decides which ones to call on for any given input.</p><p>Think of it like a hospital. <br>A dense model is a single generalist doctor who handles every patient, every case, every time from cardiology, pediatrics, to neurology, all of it. An MoE model is a hospital with specialist departments: the router reads the patient’s chart and sends them to the right wing.</p><p>Instead of relying on a single massive model to handle every aspect of a problem, MoE divides the task among smaller, specialized expert networks, each focusing on a specific domain or sub-task.</p><p>For DeepSeek-V3, this means the model has 671 billion total parameters but only 37 billion can be activated for any given token. So, you get the knowledge of a 671B model, at roughly the cost of a 37B one.</p><p>But DeepSeek didn’t just use MoE, they pushed it further than anyone had before.</p><p>To understand, let’s understand the issues with Standard MoE architectures. Most of the times:</p><ul><li>experts end up overlapping,</li><li>start learning similar things, and</li><li>start duplicating knowledge</li></ul><p>So, to curb these issues, DeepSeek proposed two key strategies to fix this: <a href="https://medium.com/r?url=https%3A%2F%2Farxiv.org%2Fabs%2F2401.06066"><strong>finely segmenting experts</strong></a><strong> into more granular units for flexible combinations</strong> and <strong>isolating certain “shared experts” that always activate to capture common knowledge, thus, freeing the routed experts to specialize deeply.</strong></p><p>Which is honestly very smart.</p><p>And as a result, as also confirmed in their <a href="https://arxiv.org/abs/2401.06066">published research</a>: DeepSeekMoE 16B achieves comparable performance to LLaMA2 7B while using only about 40% of the compute.</p><h3>Constraint 2: Memory is expensive, so compress what you store</h3><p>Now, let’s understand the memory and cost effectiveness.<br>When a transformer processes a sequence like a long document, a conversation history, a complex prompt, it needs to store intermediate computations for every token it has seen which is called keys and values (K and V), and together they form the <strong>KV cache</strong>. This cache lets the model refer back to context without recomputing everything from scratch.</p><p>The problem with KV cache is that it grows with every token and standard multi-head attention stores separate key and value vectors for every attention head across every layer.</p><p>Now, for a large model with a long context window, standard multi-head attention on DeepSeek-V3’s dimensions with a 128K token context window would <a href="https://medium.com/r?url=https%3A%2F%2Fmccormickml.com%2F2025%2F04%2F26%2Finner-workings-of-mla%2F"><em>require a ~488GB KV cache </em></a>larger than most GPU memory configurations entirely.</p><p>So, DeepSeek’s answer was <strong>Multi-head Latent Attention (MLA)</strong>, introduced in DeepSeek-V2 and carried forward into V3 and R1!<br>Their core idea was pretty simple which said that instead of storing the full high-dimensional key and value vectors, compress them into a single small latent vector first which inadvertently means storing the compressed version.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hPhFVAkLN0seOyAxzTjiNw.png" /><figcaption>Fig: The architectural difference between standard multi-head attention and Deepseek’s MLA</figcaption></figure><p>Instead of sharing key and value heads like earlier approaches, MLA compresses the key and value tensors into a lower-dimensional space before storing them in the KV cache. At inference time, these compressed tensors are projected back to <a href="https://medium.com/r?url=https%3A%2F%2Fsebastianraschka.com%2Fllms-from-scratch%2Fch04%2F05_mla%2F">their original size before being used</a>.</p><p>That is interesting and if you look at the memory savings in comparison to their earlier 67B dense model, DeepSeek-V2 with MLA <a href="https://vizuara.substack.com/p/decoding-multi-head-latent-attention">reduced the KV cache size by 93.3%</a>.</p><p>93%!</p><p>That is huge!</p><p>And crucially, unlike earlier memory-saving attention tricks that traded quality for efficiency, MLA actually matches or slightly outperforms standard multi-head attention on modeling benchmarks.</p><h3>Constraint 3: Training data pipelines are expensive, so skip it</h3><p>Now comes the interesting part.</p><p>The standard playbook for training a reasoning model is simple:</p><ul><li>think through hard math problems,</li><li>write reliable code,</li><li>plan multi-step solutions that involves a lot of expensive scaffolding.</li></ul><p>You generate synthetic chain-of-thought examples.</p><p>You hire human annotators.</p><p>You build a separate reward model, roughly as large as the model you’re training, to evaluate outputs and then you run RLHF on top of all of that.</p><p>But when you do so, every step costs time, compute, and money. DeepSeek needed something that could save all of it and yet perform beautifully.</p><p>So, the answer was <strong>Group Relative Policy Optimization (GRPO)</strong>. To save training costs, DeepSeek adopted GRPO, which foregoes the critic model that is typically the <a href="https://arxiv.org/html/2501.12948v1">same size as the policy model</a>, and instead estimates the baseline from group scores.</p><p>Practically, this means: instead of maintaining a separate reward model to evaluate each output, you generate multiple responses to the same prompt, score them against each other, and use the relative rankings as your training signal.</p><p>After this, DeepSeek discovered when they applied this to R1-Zero, it was a big aha moment!</p><p>Their reward signal was based solely on the correctness of final predictions, without imposing constraints on the reasoning process bypassing the <a href="https://www.nature.com/articles/s41586-025-09422-z">conventional supervised fine-tuning phase entirely</a>.</p><p>And yet, through pure trial and error against math and coding problems, the model spontaneously developed extended reasoning behaviors:</p><ul><li>it started backtracking,</li><li>self-correcting,</li><li>verifying its own answers,</li><li>allocating more thinking time to harder problems.</li></ul><p>What emerged validated the entire approach. <br>DeepSeek R1 trained with GRPO, without a separately maintained reward model scored 97.3% on the MATH-500 benchmark and sits in the same performance tier as OpenAI’s o1 series.</p><p>By May 2025, an updated version was approaching OpenAI o3 and Gemini 2.5 Pro on reasoning benchmarks and it cost them 5–10x less to run than comparable closed-source alternatives.</p><h3>Next in line: Kimi chosing its own constraint</h3><p>After DeepSeek, it was Kimi’s turn to follow the footsteps.</p><p>When Moonshot AI launched Kimi in late 2023, they made a deliberate bet that most AI labs were not thinking about much: <strong>long context</strong>. The first version of Kimi supported <a href="https://en.wikipedia.org/wiki/Kimi_(chatbot)">lossless context of 128,000 tokens</a>, making it the first AI model capable of accepting contexts of this size. While everyone else was optimizing benchmark scores on short prompts, Kimi went long. By March 2024, they were already testing a 2 million character context window.</p><p>Now we would thing what is the big deal here. It is.</p><p>The technical challenge of building a system for handling longer context is the standard attention that scales quadratically with sequence length. Basically you double the context and you quadruple the compute.</p><p>And at a million tokens, this becomes prohibitive unless you redesign the attention mechanism entirely and this is exactly why many labs didn’t go ahead with this. Kimi took the bet and thought of really owning the category by being the first one to do it.</p><p>By 2025, the bet had expanded from <em>long context</em> to <strong>agentic AI. <br></strong>Building a model specifically designed to take actions, use tools, and operate autonomously across long chains of reasoning. <br>On one hand, where DeepSeek’s identity was about efficient scale, Kimi <a href="https://github.com/MoonshotAI/Kimi-K2">K2’s defining claim is an ability</a> to plan and think over extended contexts, using tools and internal chain-of-thought, specifically designed for tool use, reasoning, and autonomous problem-solving.</p><p>If you see in the linked article as well, Kimi K2 Thinking can execute <a href="https://recodechinaai.substack.com/p/kimi-k2-thinking-the-46m-model-shifting">200–300 sequential tool calls</a> without human intervention, reasoning coherently across hundreds of steps !!</p><p>And like DeepSeek, Moonshot built this under the same hardware ceiling. K2 Thinking was trained on the H800: the same export-restricted, downgraded NVIDIA chip that DeepSeek used.</p><p>When we look at both of them:</p><ul><li>DeepSeek asked: <em>how do we train a frontier model with less compute per token?</em></li><li>Kimi asked: <em>what can a model do if it can reason and act across an entire document, codebase, or workflow?</em></li></ul><h3>What do we concur?</h3><p>The interesting part here is how much of invention or innovation was here by DeepSeek?</p><p>Being honest, DeepSeek did not invent the transformer.</p><p>They didn’t invent MoE, attention mechanisms, or reinforcement learning for language models.</p><p>The intellectual lineage of their work runs directly through Google, OpenAI, Meta, and the broader academic community.</p><p>When I traced back the MoE architecture, it traces back to a<a href="https://direct.mit.edu/neco/article-abstract/3/1/79/5560/Adaptive-Mixtures-of-Local-Experts?redirectedFrom=fulltext"> 1991 paper</a> on adaptive expert systems by one of the AI pioneers, Geoffrey Hinton. So if you closely read the paper, you will find that the KV cache problem was well understood.</p><p>After that, RLHF was OpenAI’s contribution.</p><p>When you look at all of this, yes! the innovation part is missing by DeepSeek. What DeepSeek did was take ideas that existed and pushed them further than anyone had been motivated to push them because they had no choice.</p><ul><li>They made MoE work at 671 billion parameters.</li><li>They built MLA when the standard approaches were good enough for everyone else.</li><li>They stripped GRPO down to its essentials and discovered that the scaffolding everyone assumed was necessary, actually wasn’t.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C6l12CQP5U5dvwxRkcLKig.png" /></figure><p>And then they published all of it in detail. <br>In open technical reports that let researchers worldwide reproduce, study, and build on the work. That decision whether it was a strategic one or a principled one, it had enormous downstream effects. Because the field really moved faster because of it.</p><p>From the classic standard process, when you have abundant resources, the rational engineering decision is almost always: <em>just add more.</em></p><p>More parameters.</p><p>More data.</p><p>More GPUs.</p><p>It works because the scaling laws are real. But abundance also creates a specific kind of blindness. You stop asking whether there’s a more elegant path, because the brute-force path is good enough and you can afford it.</p><p>While the constrained environments force the question and the answers, if you dig deeper for them, tend to be more efficient, more transferable, and more durable than the solutions born from abundance.</p><h3>What this means for “Build in India”</h3><p>I’ve spent the last few months deep in AI research papers, export control documents, chip spec sheets, and training reports. And the further I went, the more I kept thinking about something that has nothing to do with GPUs.</p><p>It kept coming back to a feeling I recognize.</p><p>The feeling of building something real with what you have and not what you wish you had. The feeling of looking at a constraint and deciding, consciously or not, that it’s going to make you sharper.</p><p>Every developer I know who has built seriously for Indian users knows this feeling intimately. You optimize for 2G fallback because your user is on a bus in Patna and your product either works or it doesn’t.</p><p>You build lean payment flows because your user has ₹50 of mobile data left this week and won’t forgive you for wasting it.</p><p>And similar is the case how DeepSeek thought about its product and tech. DeepSeek didn’t set out to change how the world builds AI.</p><p>They set out to build a competitive model under conditions that made the standard approach impossible. The innovations that came out of that like MoE, MLA, GRPO were the byproduct of having no choice but to be clever.</p><p>And then, three weeks ago, Sarvam shipped.</p><p>Sarvam’s 30B and 105B models built from scratch, trained entirely in India on government-allocated compute, designed for 22 Indian languages adopted the exact same architectural playbook DeepSeek was <em>forced</em> into by US export controls.</p><p>MoE.</p><p>MLA.</p><p>Shared expert routing.</p><p>Not because Washington told them they couldn’t have H100s but because these were simply the right answers for building at Indian scale, under Indian constraints, for Indian users and the architecture that emerged looks remarkably similar.</p><p>I used to wonder what the Indian equivalent of DeepSeek’s efficiency breakthroughs would look like and what our version of “forced to be clever” produces.</p><p>Sarvam did exactly that! May be much better (we will discuss that in the next blog post) but a 105B model outperforming DeepSeek-R1 on certain benchmarks, despite R1 being a 600B parameter model, while running on domestically allocated compute, that is amazing.</p><p>This is the part I want Indian developers and founders to sit with.</p><p>We talk a lot in Indian tech circles about closing the gap. Reaching parity with the West. And those are real and worthy goals. But DeepSeek’s story and now Sarvam’s, suggests a different frame entirely.</p><p>I love how we are thinking in adjusting or I should say in optimizing the way we use our models using lesser GPU width and yet delivering the best results.</p><p>This is the future.</p><p>And I can’t wait for more and more orgs to explore this path!</p><p>What do you say?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6a6d7164746d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[20 mins: How to automate your Developer Content Workflow using Claude Skills?]]></title>
            <link>https://medium.com/@writertripathi/20-mins-how-to-automate-your-developer-content-workflow-using-claude-skills-f16bf073205d?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/f16bf073205d</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Mon, 16 Feb 2026 17:23:42 GMT</pubDate>
            <atom:updated>2026-02-16T17:23:42.151Z</atom:updated>
            <content:encoded><![CDATA[<h4>We cover all the prompts, skill files, and processes in this article.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7FSkoFUuaEdVNisTRValVA.png" /></figure><h3>Why Developer Marketing breaks traditional marketing automation?</h3><p>I spent last Tuesday watching a marketing automation tool butcher a product launch announcement.</p><p>The tool was good. It generated compelling copy, structured the content beautifully, and even suggested A/B test variations. <br>The problem? <br>It was written for consumers and not developers.</p><p>Here’s what it produced:</p><blockquote><em>Unlock the power of our revolutionary API! Streamline your workflow and leverage cutting-edge technology to transform your business. <br>Join thousands of satisfied customers who’ve already discovered the game-changing potential of our platform!</em></blockquote><p>But here’s what developers actually want to read:</p><blockquote><em>New endpoint: </em><em>/v2/bulk-import. <br>Import up to 10,000 records in a single request. <br>Average processing time: 2.3 seconds. Here&#39;s a working example:</em></blockquote><blockquote><em>const response = await fetch(&#39;https://api.example.com/v2/bulk-import&#39;, { method: &#39;POST&#39;, headers: { &#39;Authorization&#39;: `Bearer ${API_KEY}` }, body: JSON.stringify({ records: data }) });</em></blockquote><p>See the difference?</p><p>The first one sells. The second one <strong>teaches</strong>. And teaching is what developer marketing is actually about.</p><p><strong>Note: If you quickly need to access the files, here is my GitHub repo that can help: </strong><a href="https://github.com/techtrailhead/devrelskills"><strong>https://github.com/techtrailhead/devrelskills</strong></a></p><h3>The problem With “Marketing Automation” for DevRel</h3><p>Most marketing automation tools including AI-powered ones are optimized for one thing: <strong>conversion</strong>. They’re designed to move someone from awareness to consideration to purchase as efficiently as possible.</p><p>That works great for B2C products, SaaS landing pages, and e-commerce. But developer audiences? They operate completely differently.</p><p><strong>Developers don’t want to be sold to. They want to:</strong></p><ul><li>See working code immediately</li><li>Understand exactly how something works</li><li>Make informed technical decisions</li><li>Trust that you’re not wasting their time</li></ul><p>When you use traditional marketing copy frameworks on developers, you get:</p><ul><li>Buzzwords that trigger immediate skepticism (“revolutionary,” “game-changing,” “cutting-edge”)</li><li>Benefits-first messaging that buries the technical details</li><li>Vague promises instead of concrete examples</li><li>Sales-y CTAs that feel manipulative (“Start your free trial now!”)</li></ul><p><strong>The result:</strong> Your marketing sounds like every other vendor desperately trying to sell them something. You’ve lost credibility before they’ve read past the headline.</p><h3>What makes Developer Marketing different?</h3><p>After writing 100+ technical tutorials, managing developer communities for companies like Google and Twilio, I’ve learned that developer marketing requires a fundamentally different approach:</p><p><strong>1. Code comes first, explanation second</strong></p><p>Traditional marketing: Benefit → Feature → How it works → CTA</p><p>Developer marketing: Working code → Why it matters → Where to learn more</p><p><strong>2. Show, don’t sell</strong></p><p>Traditional: “Our API is the fastest and most reliable in the industry!”</p><p>Developer: <em>[benchmark results showing 50ms p99 latency]</em> “Here’s how we achieve this.”</p><p><strong>3. Respect technical knowledge</strong></p><p>Traditional: Explain everything like they’re five</p><p>Developer: Assume they know how to code, focus on your specific implementation</p><p><strong>4. Completeness over cleverness</strong></p><p>Traditional: Snippet is fine, link out for details</p><p>Developer: Every code example must be complete, copy-pastable, and actually work</p><p><strong>5. Honesty about limitations</strong></p><p>Traditional: Only talk about benefits, ignore edge cases</p><p>Developer: Address trade-offs, known issues, and when NOT to use your product</p><h3>The DevRel automation gap</h3><p>Here’s the frustrating part: <strong>marketing automation could be incredibly valuable for DevRel teams</strong>. We need to:</p><ul><li>Generate documentation for every new API endpoint</li><li>Create tutorials showing common integration patterns</li><li>Write announcement posts for feature releases</li><li>Draft technical blog content explaining how things work</li><li>Produce social media threads breaking down complex topics</li><li>Build sample applications demonstrating best practices</li><li>Keep SDK examples updated across multiple languages</li></ul><p>Doing all of this manually is exhausting. A typical API feature launch requires:</p><ul><li>4–6 hours writing documentation</li><li>3–4 hours creating tutorials and examples</li><li>2–3 hours on announcement content</li><li>1–2 hours on social distribution</li><li>2–3 hours building a sample app</li></ul><p><strong>Total: 12–18 hours of writing and coding</strong></p><p>And that’s for a <em>single feature</em>. Most developer tools ship multiple features per month.</p><p><strong>What if AI could handle 70% of this work?</strong></p><p>Not by generating generic marketing copy, but by actually understanding <strong>how developers think, what they need, and how to communicate technical concepts clearly</strong>.</p><h3>Solution: Marketing Skills, adapted for developers</h3><p>A few months ago, I discovered <a href="https://github.com/coreyhaines31/marketingskills">marketingskills</a> by Corey Haines which is a collection of 25 AI “skills” that teach Claude Code how to handle specific marketing tasks.</p><p>The idea is brilliant: Instead of asking Claude to “write marketing copy” and hoping for the best, you give it a detailed <strong>skill file</strong> that contains:</p><ul><li>When to use this skill</li><li>What questions to ask first</li><li>What frameworks and principles to follow</li><li>What good output looks like</li><li>Common mistakes to avoid</li></ul><p><strong>The problem:</strong> These skills are built for traditional marketing. They’re excellent at what they do, but they don’t work for developer audiences.</p><p>So I did something simple: <strong>I adapted them</strong>.</p><p>I took Corey’s copywriting skill and modified it for technical tutorials. <br>I took the content strategy skill and refocused it on educational content and created new skills specifically for API documentation, code examples, and developer newsletters.</p><p><strong>The result:</strong></p><p>What used to take me 12–18 hours for an API feature launch now takes 3–4 hours. And the quality is often <em>better</em> than what I’d produce manually because the skills enforce consistency and catch things I might forget (like error handling examples, or prerequisites sections, or linking to related docs).</p><h3>What Anthropic’s growth team learned too!</h3><p>I’m not the only one discovering this. Anthropic’s own growth marketing team recently published their learnings using Claude Code for marketing automation.</p><p><strong>Their results:</strong></p><p><strong>Dramatic time savings on repetitive tasks:</strong> Ad copy creation went from 2 hours to 15 minutes which is an 87% reduction. This freed up time for strategic work instead of execution.</p><p><strong>10x increase in creative output:</strong> The team could test vastly more ad variations across channels with automated generation and Figma integration.</p><p><strong>Strategic focus shift</strong> The team spent more time on overall strategy and building agentic automation rather than manual execution.</p><p><strong>What they learned matters for DevRel:</strong></p><ol><li><strong>Identify API-enabled repetitive tasks</strong></li></ol><ul><li>For growth marketing: Ad platforms, design tools, analytics</li><li>For DevRel: GitHub, documentation platforms, code repositories</li></ul><p><strong>2. Break complex workflows into specialized sub-agents</strong></p><ul><li>Instead of one massive prompt, create separate agents for specific tasks</li><li>Example: Research agent → Planning agent → Writing agent → Review agent</li><li>This makes debugging easier and improves output quality</li></ul><p><strong>3. Thoroughly brainstorm and prompt plan before coding</strong></p><ul><li>Spend significant time upfront using Claude.ai to think through your entire workflow</li><li>Have Claude.ai create a comprehensive prompt and code structure first</li><li>Work step-by-step rather than asking for one-shot solutions</li></ul><p>Before we dive in, let’s address the elephant in the room: <strong>“But AI-generated content is generic and bad!”</strong></p><p>You’re right: <em>by default</em>, it is.</p><p>Generic prompts produce generic output. That’s why we’re building <strong>skills</strong>.</p><p>Skills are detailed instruction sets that teach AI tools how to think about specific problems. When you give Claude a 500-line skill file that explains:</p><ul><li>What developers actually want to read</li><li>What mistakes to avoid</li><li>What frameworks to follow</li><li>What good examples look like</li></ul><p>The output quality jumps dramatically.</p><p><strong>Think of it this way:</strong></p><ul><li>Asking Claude to “write a tutorial” → Generic, probably bad</li><li>Using a technical-tutorial skill → Follows DevRel best practices, enforces structure, checks for completeness</li></ul><p>The skill is doing the heavy lifting. Claude is just executing it consistently.</p><h3>Problem we are solving</h3><p>Here’s what happens when you use standard marketing automation for developers:</p><p><strong>Generic AI output:</strong></p><blockquote><em>“Unlock seamless authentication with our revolutionary new feature! Join thousands of developers who’ve already transformed their workflow. Start your free trial today!”</em></blockquote><p><strong>What developers actually want:</strong></p><blockquote><strong><em>New: OAuth 2.0 + PKCE Authentication<br></em></strong><em>Average token exchange: 47ms (p99: 120ms)</em></blockquote><blockquote><em>const client = new AuthClient({ clientId: &#39;your_client_id&#39;, redirectUri: &#39;http://localhost:3000/callback&#39; }); const authUrl = client.getAuthorizationUrl({ scope: [&#39;read:user&#39;, &#39;write:data&#39;] })</em></blockquote><blockquote><em>Docs: [link] | Example app: [GitHub]</em></blockquote><p><strong>The problem:</strong> Since the traditional marketing automation is trained on B2C and SaaS patterns, it by default displays benefits first, emotional hooks, urgency tactics. Developers skip past all of that looking for working code and technical specs.</p><p><strong>The solution:</strong> We need to adapt marketing skills specifically for developer audiences. That’s exactly what we’re building in this series.</p><h3>Steps to get started</h3><h4>Step 1: Installing Marketing Skills</h4><p>Let’s get the base skills installed. We’ll audit what works for DevRel and what needs adaptation.</p><h4>Prerequisites</h4><ul><li>Claude Code installed (<a href="https://claude.ai/download">get it here</a>)</li><li>Terminal access</li><li>10 minutes</li></ul><h4>Install marketingskills repo</h4><p>Open your terminal and run:</p><pre>npx skills add coreyhaines31/marketingskills</pre><p>This command installs all 25 marketing skills into your .claude/skills/ directory. The installation should take about 30 seconds.</p><p><strong>Verify installation:</strong></p><pre>ls ~/.claude/skills</pre><p>You should see folders like: copywriting, content-strategy, seo-audit, etc.</p><h4>Quick test</h4><p>Ask Claude Code to use a skill:</p><pre>/copywriting</pre><p>You should see folders for each skill: copywriting, content-strategy, seo-audit, email-sequence, and about 20 others.</p><p>Test that skills are working:</p><p>Let’s test one of the skills to make sure everything is set up correctly.</p><p>Open Claude Code and invoke the copywriting skill:</p><p>Prompt: “Write homepage copy for a developer API”</p><p><strong>You’ll get marketing-focused output.</strong> That’s expected as we haven’t adapted it yet.</p><h3>Step 2: Skills Audit: What DevRel actually needs</h3><p>Now let’s go through all 25 skills and categorize them for DevRel work. Not every marketing skill translates to developer marketing, and some need significant adaptation.</p><p>These skills work for DevRel without modification:</p><ul><li><strong>analytics-tracking</strong> - Setting up GA4 and event tracking works the same for developer docs as for marketing sites</li><li><strong>seo-audit</strong> - Technical SEO principles apply to documentation and developer content</li><li><strong>schema-markup</strong> - Structured data helps search engines understand API documentation</li><li><strong>ab-test-setup</strong> - Testing methodology and statistical significance are universal</li><li><strong>marketing-psychology</strong> - Core psychological principles still apply, even if the execution differs</li></ul><p><strong>Adapt for DevRel (8 skills):</strong></p><p>These skills have the right structure but need developer-specific content:</p><ul><li><strong>copywriting</strong> → Needs to become technical tutorial writing with code-first approach</li><li><strong>content-strategy</strong> → Should focus on educational content calendar, not promotional campaigns</li><li><strong>email-sequence</strong> → Developer newsletters are updates and technical content, not nurture sequences</li><li><strong>social-content</strong> → Technical Twitter threads and LinkedIn posts require different tone and format</li><li><strong>page-cro</strong> → Developer landing pages prioritize documentation links over conversion optimization</li><li><strong>competitor-alternatives</strong> → Technical comparison pages need feature matrices and benchmark data</li><li><strong>product-marketing-context</strong> → Should include API specifications and technical positioning</li><li><strong>launch-strategy</strong> → Feature announcements need code examples and migration guides</li></ul><p><strong>Skip for DevRel (7 skills):</strong></p><p>These skills are designed for traditional B2C or SaaS marketing and don’t work well for developer audiences:</p><ul><li><strong>popup-cro</strong> - Developers universally hate popups and modal interruptions</li><li><strong>paid-ads</strong> - Most DevRel strategies focus on organic content and community</li><li><strong>paywall-upgrade-cro</strong> - Developer tools use different monetization patterns (usage-based, not feature-gated)</li><li><strong>signup-flow-cro</strong> - Developer tools are usually self-serve with minimal friction</li><li><strong>form-cro</strong> - Dev tools typically have minimal forms (just email or GitHub auth)</li><li><strong>pricing-strategy</strong> - Developer pricing is usually usage-based or consumption-based, not seat-based</li><li><strong>referral-program</strong> - Developer advocacy works differently than traditional referral programs</li></ul><p><strong>Build from scratch (5 skills we need):</strong></p><p>These are skills that don’t exist in the marketing repository but are essential for DevRel:</p><ul><li><strong>technical-tutorial</strong> - Write code-first tutorials with working examples</li><li><strong>api-docs-audit</strong> - Review API documentation for completeness and accuracy</li><li><strong>code-examples</strong> - Generate working code samples in multiple programming languages</li><li><strong>sdk-docs</strong> - Create SDK reference documentation and integration guides</li><li><strong>developer-community</strong> - Write content for forums, Discord, and developer communities</li></ul><h3>Step 3: Your first DevRel workflow</h3><p>Let’s run a practical test to show you the difference between generic marketing skills and what we’re going to build.</p><p><strong>Test scenario:</strong> You need to announce a new API endpoint for bulk data import.</p><p><strong>Test prompt:</strong> “Announce a new API endpoint for bulk data import”</p><p><strong>Without adaptation:</strong></p><pre>/copywriting</pre><p><em>Result: Marketing-heavy, vague, no code</em></p><p><strong>With DevRel approach (what we’re building):</strong></p><pre>/technical-tutorial<br>```<br><br>With the same prompt, you&#39;ll get:<br>```<br>New endpoint: POST /v2/bulk-import<br><br>Import up to 10,000 records per request. <br>Average processing time: 2.3 seconds for 5,000 records.<br><br>const records = [<br>  { id: 1, name: &#39;Smith Evans&#39;, email: &#39;smith@example.com&#39; },<br>  { id: 2, name: &#39;Rose Green&#39;, email: &#39;rose@example.com&#39; }<br>];<br><br>const response = await fetch(&#39;https://api.example.com/v2/bulk-import&#39;, {<br>  method: &#39;POST&#39;,<br>  headers: {<br>    &#39;Authorization&#39;: `Bearer ${API_KEY}`,<br>    &#39;Content-Type&#39;: &#39;application/json&#39;<br>  },<br>  body: JSON.stringify({ records })<br>});<br><br>Rate limit: 10 requests per minute<br>Max payload size: 5MB<br>Documentation: [link]</pre><p>See the difference? Working code, technical specifications, rate limits, and documentation links.</p><p>We’ll build this in Part 2.</p><h3>Part 2: Building your first DevRel Skill: Technical Tutorial Writer</h3><p>In Part 1, we installed the marketingskills repository and saw the gap between generic marketing copy and what developers actually want to read. Now we’re going to build something about it.</p><p>By the end of this tutorial, you’ll have a working technical-tutorial skill that generates developer-appropriate content with working code examples, technical specifications, and proper documentation structure.</p><p><strong>What we’re building:</strong> A skill that transforms generic prompts like “write a tutorial for authentication” into complete, code-first tutorials that developers can actually use.</p><p><strong>Time to complete:</strong> 45–60 minutes</p><p>Let’s start by understanding how skills actually work.</p><h3>Section I: Building the technical tutorial skill</h3><p>Now let’s build the actual skill file. We’ll create it step by step, explaining each section.</p><h4>Step 1: Create the skill directory</h4><p>Create a new folder for your skill:</p><pre>mkdir -p ~/.claude/skills/technical-tutorial<br>cd ~/.claude/skills/technical-tutorial</pre><h4>Step 2: Create the SKILL.md file</h4><p>Create a new file:</p><pre>touch SKILL.md</pre><p>Open it in your text editor:</p><pre>code SKILL.md</pre><h4>Step 3: Write the frontmatter</h4><p>Add the metadata at the top of the file:</p><pre>---<br>name: technical-tutorial<br>description: Write technical tutorials and guides for developer audiences. <br>Use when creating API documentation, SDK guides, integration tutorials, or <br>technical blog posts for developers. Also use when the user mentions &#39;tutorial&#39;, &#39;guide&#39;, &#39;how to integrate&#39;, &#39;documentation&#39;, or asks for technical content.<br>--</pre><p>This tells Claude when to use this skill. Key trigger phrases: “tutorial”, “guide”, “documentation”, “how to integrate”.</p><h4>Step 4: Define the role</h4><p>Add the role definition:</p><pre># Technical Tutorial Writer for Developer Audiences</pre><pre>You are an expert technical writer specializing in developer documentation and tutorials. Your goal is to create clear, accurate, and complete tutorials that developers can follow to successfully implement a feature or integration.</pre><pre>Your tutorials prioritize working code examples over explanations. Developers want to see it working first, then understand how it works.</pre><p>This sets Claude’s mindset: think like a technical writer, not a marketer.</p><h4>Step 5: Add context awareness</h4><p>Tell Claude to check for existing technical context:</p><pre>## Check for technical context first</pre><pre>Before asking questions, look for these context files:<br>- `.claude/api-reference.md` - API endpoints, parameters, and response schemas<br>- `.claude/sdk-examples.md` - Existing code samples and patterns<br>- `.claude/dev-audience.md` - Target developer persona and skill level<br>- `.claude/product-marketing-context.md` - General product information</pre><pre>If these files exist, read them first. Only ask for information that isn&#39;t already documented or is specific to this particular tutorial.</pre><p>This prevents Claude from asking redundant questions when context already exists.</p><h4>Step 6: Define what information you need</h4><p>Add the questions Claude should ask:</p><pre>## Information you need</pre><pre>Before writing the tutorial, ask the user:</pre><pre>1. **What is the developer trying to accomplish?** (Focus on the outcome, not the feature name)<br>2. **What language or framework?** (Be specific: &quot;React 18 with TypeScript&quot; not just &quot;React&quot;)<br>3. **What are the prerequisites?** (What should developers have installed or configured before starting?)<br>4. **What&#39;s the tutorial scope?** (Quick start? Deep dive? Migration guide?)<br>5. **Are there existing code samples to reference?** (Link to repos or examples if available)</pre><pre>If the user doesn&#39;t provide all this information upfront, ask for it before proceeding. Better to ask clarifying questions than to generate generic content.</pre><p>These questions ensure you get the information needed for a quality tutorial.</p><h4>Step 7: Define the tutorial structure</h4><p>Add the template structure:</p><pre>## Tutorial structure</pre><pre>Every tutorial you create should follow this structure:</pre><pre>### 1. Title (clear outcome, not feature name)</pre><pre>Bad: &quot;Using Our Authentication System&quot;<br>Good: &quot;Add OAuth 2.0 Authentication in 15 Minutes&quot;</pre><pre>The title should tell developers what they&#39;ll accomplish and how long it will take.</pre><pre>### 2. Prerequisites box</pre><pre>Always start with a prerequisites section:<br>```<br>## Prerequisites</pre><pre>Before you begin, you&#39;ll need:<br>- Node.js 18 or later<br>- An API key from [link]<br>- Basic knowledge of Express.js<br>- 15 minutes<br>```</pre><pre>This saves developers from getting halfway through and realizing they&#39;re missing something.</pre><pre>### 3. Complete working example first</pre><pre>Show the entire working code before explaining anything:<br>```javascript<br>// Complete working example<br>import { AuthClient } from &#39;@yourapi/auth&#39;;</pre><pre>const client = new AuthClient({<br>  clientId: process.env.CLIENT_ID,<br>  redirectUri: &#39;http://localhost:3000/callback&#39;<br>});</pre><pre>const authUrl = client.getAuthorizationUrl({<br>  scope: [&#39;read:user&#39;, &#39;write:data&#39;]<br>});</pre><pre>console.log(&#39;Navigate to:&#39;, authUrl);<br>```</pre><pre>Developers want to see it working immediately, then understand how it works.</pre><pre>### 4. Step-by-step implementation</pre><pre>Break the implementation into logical steps. Each step should:<br>- Build on the previous step<br>- Include complete, runnable code (not snippets)<br>- Explain what changed and why<br>- Include expected output or results</pre><pre>### 5. Error handling section</pre><pre>Always include common errors and how to debug them:<br>```markdown<br>## Common errors</pre><pre>**Error: &quot;Invalid client_id&quot;**<br>- Cause: Your API key is incorrect or expired<br>- Solution: Generate a new API key at [link]</pre><pre>**Error: &quot;Redirect URI mismatch&quot;**<br>- Cause: The redirect URI doesn&#39;t match your registered URI<br>- Solution: Check your URI at [dashboard link]<br>```</pre><pre>### 6. Next steps</pre><pre>End with links to related content:<br>```markdown<br>## Next steps</pre><pre>- [Advanced authentication options](link)<br>- [Handling refresh tokens](link)<br>- [Example application on GitHub](link)<br>```</pre><p>This gives Claude a clear template to follow for every tutorial.</p><h4>Step 8: Add code quality principles</h4><p>Define what makes good code examples:</p><pre>## Code example principles</pre><pre>Every code example you write must be:</pre><pre>1. **Complete** - No `// ... rest of code` comments. Show everything.<br>2. **Copy-pastable** - Developers should be able to copy and run it without modifications<br>3. **Tested** - The code must actually work (ask the user to verify if unsure)<br>4. **Commented** - Explain non-obvious parts, but don&#39;t over-comment obvious code<br>5. **Error-handled** - Include basic try-catch blocks, not production-grade error handling<br>6. **Modern** - Use current language versions and best practices<br>7. **Consistent** - Follow the same coding style throughout the tutorial</pre><pre>### Good example:<br>```javascript<br>import { AuthClient } from &#39;@yourapi/auth&#39;;</pre><pre>// Initialize the client with your credentials<br>const client = new AuthClient({<br>  clientId: process.env.CLIENT_ID,<br>  redirectUri: &#39;http://localhost:3000/callback&#39;<br>});</pre><pre>// Generate the authorization URL<br>const authUrl = client.getAuthorizationUrl({<br>  scope: [&#39;read:user&#39;, &#39;write:data&#39;],<br>  state: generateRandomState() // CSRF protection<br>});</pre><pre>console.log(&#39;Navigate user to:&#39;, authUrl);<br>```</pre><pre>### Bad example:<br>```javascript<br>// Set up auth<br>const client = new AuthClient(config);</pre><pre>// Get URL<br>const url = client.getUrl(params);</pre><pre>// ... handle the rest<br>```</pre><pre>The bad example is incomplete, uses vague variable names, and doesn&#39;t show what `config` or `params` are.</pre><h4>Step 9: Define voice and tone</h4><p>Add guidelines for how the tutorial should sound:</p><pre>## Voice and tone for developer tutorials</pre><pre>Write in a technical but conversational tone:</pre><pre>**Do:**<br>- &quot;Here&#39;s how authentication works in this API&quot;<br>- &quot;Run `npm install @yourapi/sdk`&quot;<br>- &quot;This endpoint returns a JSON response&quot;<br>- Be direct and specific<br>- Use active voice<br>- Acknowledge when something is complex</pre><pre>**Don&#39;t:**<br>- &quot;Let us show you how our revolutionary...&quot;<br>- &quot;You&#39;ll want to consider installing...&quot;<br>- &quot;Our solution provides robust capabilities...&quot;<br>- Use marketing language<br>- Use passive voice<br>- Oversimplify or patronize</pre><pre>### Examples:</pre><pre>Bad: &quot;Our authentication system provides a seamless experience that will streamline your development workflow&quot;</pre><pre>Good: &quot;Authentication uses OAuth 2.0 with PKCE. Here&#39;s how to implement it:&quot;</pre><pre>Bad: &quot;You&#39;ll want to begin by installing our SDK&quot;</pre><pre>Good: &quot;Install the SDK: `npm install @yourapi/sdk`&quot;</pre><h4>Step 10: Add output format</h4><p>Specify how the tutorial should be formatted:</p><pre>## Output format</pre><pre>Format all tutorials using GitHub-flavored Markdown:</pre><pre>- Use code blocks with language tags: ```javascript, ```python, ```bash<br>- Use syntax highlighting appropriately<br>- Create collapsible sections for optional content:<br>```markdown<br>  <br>  Advanced: Custom scopes<br>  <br>  Content here...<br>  <br>```<br>- Use callout boxes for important notes:<br>```markdown<br>  &gt; ⚠️ **Warning:** This approach is deprecated. Use PKCE instead.<br>  <br>  &gt; 💡 **Tip:** You can customize the timeout by setting...<br>```<br>- Include a table of contents for tutorials longer than 5 sections<br>- Link liberally to API reference docs and related tutorials</pre><h4>Step 11: Add examples</h4><p>Include before-and-after examples to show what good output looks like:</p><pre>## Examples of good vs bad tutorials</pre><pre>### Example 1: Authentication tutorial</pre><pre>**Bad approach:**<br>&gt; &quot;Authentication is easy with our API! Just call the authenticate method and you&#39;re done:<br>&gt; ```<br>&gt; auth.authenticate(user);<br>&gt; ```&quot;</pre><pre>Problems:<br>- No imports shown<br>- No explanation of where `auth` or `user` come from<br>- No error handling<br>- Too vague to be useful</pre><pre>**Good approach:**<br>&gt; &quot;Here&#39;s a complete authentication example:<br>&gt;<br>&gt; ```javascript<br>&gt; import { AuthClient } from &#39;@yourapi/auth&#39;;<br>&gt;<br>&gt; const client = new AuthClient({<br>&gt;   clientId: process.env.CLIENT_ID<br>&gt; });<br>&gt;<br>&gt; try {<br>&gt;   const authUrl = client.getAuthorizationUrl({<br>&gt;     scope: [&#39;read:user&#39;]<br>&gt;   });<br>&gt;   <br>&gt;   console.log(&#39;Redirect user to:&#39;, authUrl);<br>&gt; } catch (error) {<br>&gt;   console.error(&#39;Auth failed:&#39;, error.message);<br>&gt; }<br>&gt; ```<br>&gt;<br>&gt; This generates an OAuth 2.0 authorization URL. The user clicks this link to authenticate.&quot;</pre><pre>Why this works:<br>- Complete imports<br>- Shows configuration<br>- Includes error handling<br>- Explains what happens</pre><pre>### Example 2: API endpoint tutorial</pre><pre>**Bad approach:**<br>&gt; &quot;To get user data, just make a GET request to our API!&quot;</pre><pre>Problems:<br>- No endpoint URL shown<br>- No authentication details<br>- No example response<br>- No code example</pre><pre>**Good approach:**<br>&gt; &quot;Fetch user data with this endpoint:<br>&gt;<br>&gt; ```bash<br>&gt; curl -X GET <a href="https://api.example.com/v1/users/me">https://api.example.com/v1/users/me</a> \<br>&gt;   -H &#39;Authorization: Bearer YOUR_TOKEN&#39;<br>&gt; ```<br>&gt;<br>&gt; Response (200 OK):<br>&gt; ```json<br>&gt; {<br>&gt;   &quot;id&quot;: &quot;usr_123&quot;,<br>&gt;   &quot;email&quot;: &quot;developer@example.com&quot;,<br>&gt;   &quot;created_at&quot;: &quot;2024-01-15T10:30:00Z&quot;<br>&gt; }<br>&gt; ```<br>&gt;<br>&gt; Rate limit: 100 requests/minute&quot;</pre><pre>Why this works:<br>- Shows exact endpoint and method<br>- Includes authentication<br>- Shows actual response format<br>- Mentions rate limits</pre><h4>Step 12: Save the file</h4><p>Save your SKILL.md file. You now have a complete technical tutorial skill!</p><h3>Section 2: Testing Your Skill</h3><p>Now let’s test if the skill actually works and produces good output.</p><h4>Test 1: Simple authentication tutorial</h4><p>Restart Claude Code to reload the skills, then invoke your new skill:</p><pre>/technical-tutorial<br>```</pre><pre>Give it this prompt:<br>```<br>Write a tutorial for adding authentication to a Next.js app using our OAuth API. Target audience: frontend developers familiar with React but new to OAuth.</pre><h3>What to look for in the output:</h3><p><strong>Good signs:</strong></p><ul><li>Starts with prerequisites (Node.js version, etc.)</li><li>Shows complete working code with imports</li><li>Includes step-by-step breakdown</li><li>Has error handling examples</li><li>Links to next steps</li><li>Uses developer-appropriate language</li></ul><p><strong>Red flags:</strong></p><ul><li>Marketing language (“revolutionary”, “seamless”)</li><li>Incomplete code snippets</li><li>Missing error handling</li><li>No prerequisites section</li><li>Vague explanations</li></ul><h4>Test 2: API documentation</h4><p>Try a different type of technical content:</p><pre>/technical-tutorial<br>```</pre><pre>Prompt:<br>```<br>Document the POST /v2/bulk-import endpoint. It accepts an array of records (max 10,000) and returns import results. Include rate limits and error codes.</pre><p>The skill should generate:</p><ul><li>Endpoint specification (method, URL, parameters)</li><li>Complete request example with headers</li><li>Response format with example JSON</li><li>Error codes and what they mean</li><li>Rate limit information</li><li>Example in multiple languages (curl, JavaScript, Python)</li></ul><h4>Test 3: SDK integration guide</h4><pre>/technical-tutorial<br>```</pre><pre>Prompt:<br>```<br>Write a guide for integrating our Python SDK into a Flask application. Show how to initialize the client, make API calls, and handle errors.</pre><p>Expected output:</p><ul><li>Installation instructions</li><li>Import statements</li><li>Configuration setup</li><li>Working examples</li><li>Error handling patterns</li><li>Best practices</li></ul><h3>Section 3: Iterating on Quality</h3><p>Your first version won’t be perfect. Here’s how to improve it:</p><h4>Common issues and fixes:</h4><p><strong>Issue 1: Output is still too marketing-y</strong></p><p>If Claude is still using marketing language, strengthen the voice guidelines in your SKILL.md:</p><pre>CRITICAL: Never use these words:<br>- Revolutionary, game-changing, innovative<br>- Seamless, streamlined, effortless<br>- Leverage, unlock, empower<br>- Transform, revolutionize</pre><pre>Always use technical, specific language instead.</pre><p><strong>Issue 2: Code examples are incomplete</strong></p><p>Add more emphasis on completeness:</p><pre>CODE EXAMPLES MUST BE COMPLETE.</pre><pre>Every code example must include:<br>1. All necessary imports<br>2. Variable initialization<br>3. Function definitions<br>4. Error handling<br>5. Expected output</pre><pre>If you write `// ... rest of code`, you&#39;re doing it wrong.</pre><p><strong>Issue 3: Missing context files</strong></p><p>If Claude keeps asking for information you’ve already provided, create a context file:</p><pre>mkdir -p ~/.claude<br>nano ~/.claude/api-reference.md</pre><p>Add your API documentation there. The skill will read it automatically.</p><p><strong>Issue 4: Examples are too simple</strong></p><p>Add more complex examples to your SKILL.md to raise the bar:</p><pre>## Advanced example: Complete authentication flow</pre><pre>[Include a full, production-quality example showing:<br>- Token exchange<br>- Refresh token handling<br>- Error recovery<br>- State management]</pre><h4>Refinement cycle:</h4><ol><li>Test the skill with various prompts</li><li>Identify patterns in what’s not working</li><li>Update SKILL.md with stronger guidelines</li><li>Test again</li><li>Repeat until quality is consistent</li></ol><blockquote>Congratulations! You now have:</blockquote><ol><li>A complete technical-tutorial skill that generates developer-appropriate content</li><li>Understanding of how skills work and how to structure them</li><li>A template you can use to create more DevRel skills</li><li>The ability to iterate and improve your skills over time</li></ol><h3>5 Essential Skills to build a Developer content strategy</h3><p>In Part 2, we built the technical-tutorial skill. Now we’ll create 4 more skills that work together to handle all your DevRel content needs.</p><p><strong>What we’re building:</strong></p><ul><li>API documentation audit</li><li>Code example generator</li><li>Developer newsletter writer</li><li>Technical social content</li></ul><h4>Skill 1: API Documentation Audit (10 min)</h4><p>This skill reviews your API docs for completeness.</p><p>Create the file:</p><pre>mkdir -p ~/.claude/skills/api-docs-audit<br>nano ~/.claude/skills/api-docs-audit/SKILL.md</pre><p>Add this content:</p><pre>---<br>name: api-docs-audit<br>description: Audit API documentation for completeness, accuracy, and developer experience. Use when reviewing docs, checking endpoint documentation, or improving API references.<br>---</pre><pre># API Documentation Auditor</pre><pre>You are an expert at reviewing API documentation. Your goal is to identify gaps, errors, and improvements.</pre><pre>## What to check</pre><pre>For each API endpoint, verify:</pre><pre>1. **Completeness**<br>   - All parameters documented (required vs optional)<br>   - All response fields explained<br>   - All error codes listed<br>   - Rate limits specified<br>   - Authentication requirements clear</pre><pre>2. **Code examples**<br>   - Working code in at least 2 languages (curl + one SDK)<br>   - Shows authentication<br>   - Includes error handling<br>   - Copy-pastable</pre><pre>3. **Response examples**<br>   - Success response (200)<br>   - Error responses (400, 401, 404, 500)<br>   - Edge cases documented</pre><pre>4. **Missing items**<br>   - Pagination details<br>   - Webhook documentation<br>   - Versioning information<br>   - Migration guides</pre><pre>## Output format</pre><pre>Provide a checklist with specific action items:<br>```markdown<br>## Audit Results for [Endpoint]</pre><pre>### ✅ Complete<br>- Authentication documented<br>- Parameters listed</pre><pre>### ⚠️ Issues Found<br>- Missing error code 429 (rate limit)<br>- No Python example<br>- Response schema incomplete (missing `created_at` field)</pre><pre>### 📝 Recommendations<br>1. Add rate limit documentation (100 req/min)<br>2. Add Python SDK example<br>3. Document all response fields<br>4. Add pagination example<br>```</pre><pre>Be specific. Don&#39;t say &quot;improve examples&quot;—say &quot;add Python example showing pagination.&quot;</pre><p><strong>Test it:</strong></p><pre>/api-docs-audit</pre><p>Prompt: “Audit our POST /users endpoint documentation”</p><h4>Skill 2: Code Example Generator (10 min)</h4><p>Generates working code samples in multiple languages.</p><p>Create:</p><pre>mkdir -p ~/.claude/skills/code-examples<br>nano ~/.claude/skills/code-examples/SKILL.md</pre><p>Content:</p><pre>---<br>name: code-examples<br>description: Generate working code examples in multiple programming languages. <br>Use when creating SDK samples, API examples, or integration code.<br>---</pre><pre># Multi-Language Code Example Generator</pre><pre>You create complete, working code examples in multiple programming languages.</pre><pre>## Languages to support</pre><pre>Default languages (unless user specifies otherwise):<br>1. cURL (always include)<br>2. JavaScript/Node.js<br>3. Python<br>4. Go (if requested)</pre><pre>## Example structure</pre><pre>Each example must include:</pre><pre>1. **Installation** (if using SDK)<br>```bash<br>   npm install @yourapi/sdk<br>```</pre><pre>2. **Complete code** with imports<br>```javascript<br>   import { Client } from &#39;@yourapi/sdk&#39;;<br>   <br>   const client = new Client({<br>     apiKey: process.env.API_KEY<br>   });<br>   <br>   try {<br>     const response = await client.users.create({<br>       name: &#39;John Doe&#39;,<br>       email: &#39;john@example.com&#39;<br>     });<br>     <br>     console.log(&#39;User created:&#39;, response.id);<br>   } catch (error) {<br>     console.error(&#39;Error:&#39;, error.message);<br>   }<br>```</pre><pre>3. **Expected output**<br>```<br>   User created: usr_abc123<br>```</pre><pre>## Code quality rules</pre><pre>- ✅ Complete imports and initialization<br>- ✅ Error handling with try-catch<br>- ✅ Environment variables for secrets<br>- ✅ Helpful comments for non-obvious code<br>- ❌ No pseudocode or `// ... rest`<br>- ❌ No hardcoded API keys</pre><pre>## Output format<br>```markdown<br>## [Action Name]</pre><pre>### cURL<br>[example]</pre><pre>### JavaScript<br>[example]</pre><pre>### Python<br>[example]<br>```</pre><p><strong>Test it:</strong></p><pre>/code-examples</pre><p>Prompt: “Generate examples for creating a user via POST /users”</p><h4>Skill 3: Developer Newsletter Writer (10 min)</h4><p>Writes technical update emails for developers.</p><p>Create:</p><pre>mkdir -p ~/.claude/skills/dev-newsletter<br>nano ~/.claude/skills/dev-newsletter/SKILL.md</pre><p>Content:</p><pre>---<br>name: dev-newsletter<br>description: Write developer newsletters and technical update emails. Use for changelog announcements, feature updates, or developer communications.<br>---</pre><pre># Developer Newsletter Writer</pre><pre>You write technical newsletters for developer audiences.</pre><pre>## Newsletter structure</pre><pre>1. **Subject line** - Direct and informative<br>   - YES: &quot;New: Bulk import endpoint + Python SDK 2.0&quot;<br>   - NOT: &quot;You won&#39;t believe what we just shipped!&quot;</pre><pre>2. **Opening** - What&#39;s new, no fluff<br>```<br>   Three updates this week:<br>```</pre><pre>3. **Each update includes:**<br>   - What it is (1 sentence)<br>   - Code snippet (if applicable)<br>   - Link to docs<br>   - Migration notes (if breaking change)</pre><pre>4. **Closing** - Clear next step<br>```<br>   Questions? Reply to this email or join our Discord: [link]<br>```</pre><pre>## Voice and tone</pre><pre>- ✅ &quot;We added webhook retries&quot;<br>- ✅ &quot;Breaking change: The /v1/users endpoint now requires...&quot;<br>- ✅ &quot;Known issue: Pagination is slow for large datasets. We&#39;re working on it.&quot;<br>- ❌ &quot;We&#39;re excited to announce...&quot;<br>- ❌ &quot;Unlock the power of...&quot;<br>- ❌ &quot;Revolutionary new feature...&quot;</pre><pre>## Example newsletter<br>```<br>Subject: New webhooks endpoint + 3 SDK updates</pre><pre>Hey developers,</pre><pre>Three quick updates:</pre><pre>1. Webhooks now support automatic retries<br>   We&#39;ll retry failed webhook deliveries up to 3 times with exponential backoff.<br>   <br>   Configure in your dashboard: [link]<br>   Docs: [link]</pre><pre>2. Python SDK 2.0 released<br>   Breaking changes: Response objects now use dataclasses instead of dicts.<br>   <br>   Migration guide: [link]<br>   Changelog: [link]</pre><pre>3. New example: E-commerce checkout integration<br>   Complete Next.js + Stripe example on GitHub.<br>   <br>   Clone it: [link]</pre><pre>Questions? Reply here or Discord: [link]<br>```</pre><pre>Keep it scannable, technical, and helpful.</pre><p><strong>Test it:</strong></p><pre>/dev-newsletter</pre><p>Prompt: “Write a newsletter announcing webhook retries and a new Python SDK version”</p><h4>Skill 4: Technical Social Content (10 min)</h4><p>Creates developer-focused Twitter/LinkedIn content.</p><p>Create:</p><pre>mkdir -p ~/.claude/skills/tech-social<br>nano ~/.claude/skills/tech-social/SKILL.md</pre><p>Content:</p><pre>---<br>name: tech-social<br>description: Create technical social media content for developers on Twitter, LinkedIn, or community forums. Use for feature announcements, technical explanations, or dev community engagement.<br>---</pre><pre># Technical Social Content Writer</pre><pre>You create social media content for developer audiences.</pre><pre>## Platform differences</pre><pre>**Twitter/X threads:**<br>- First tweet = hook with code or visual<br>- 3-7 tweets total<br>- Each tweet standalone<br>- Include code screenshots<br>- End with link to full docs</pre><pre>**LinkedIn posts:**<br>- Can be longer (up to 1,200 characters)<br>- Professional tone<br>- Include context for non-technical managers<br>- Still code-first for developers</pre><pre>## Twitter thread structure<br>```<br>1/ [Hook - problem or feature in one line]</pre><pre>2/ [Working code example - screenshot or formatted]</pre><pre>3/ [What it does / why it matters]</pre><pre>4/ [Technical detail or edge case]</pre><pre>5/ [Links to docs, GitHub, examples]<br>```</pre><pre>## Example Twitter thread<br>```<br>1/ New feature: Automatic webhook retries with exponential backoff 🎉</pre><pre>2/ Before: If your endpoint was down, you&#39;d miss the event<br>After: We retry up to 3 times (1s → 2s → 4s delays)</pre><pre>[code screenshot showing configuration]</pre><pre>3/ How to enable:</pre><pre>const webhook = await webhooks.create({<br>  url: &#39;https://yourapp.com/webhook&#39;,<br>  retries: {<br>    enabled: true,<br>    maxAttempts: 3<br>  }<br>});</pre><pre>4/ Why this matters: Network blips happen. Your app shouldn&#39;t miss critical events because of a temporary outage.</pre><pre>Rate limit: Same as before (1000/min)<br>Retry window: 10 minutes max</pre><pre>5/ Full docs: [link]<br>GitHub discussion: [link]<br>Questions? Drop them below 👇<br>```</pre><pre>## Voice guidelines</pre><pre>- ✅ Direct, technical, specific<br>- ✅ Show code when possible<br>- ✅ Acknowledge limitations<br>- ❌ No marketing fluff<br>- ❌ No excessive emojis (1-2 max)<br>- ❌ No &quot;I&#39;m excited to announce...&quot;</pre><pre>## Code screenshots</pre><pre>Suggest using Carbon (carbon.now.sh) for beautiful code screenshots when sharing code on Twitter.</pre><p><strong>Test it:</strong></p><pre>/tech-social</pre><p>Prompt: “Create a Twitter thread announcing automatic webhook retries”</p><h3>How these skills work together?</h3><p>Here’s a real workflow using all 5 skills:</p><p><strong>Scenario:</strong> Launch a new API endpoint</p><ol><li><strong>/api-docs-audit</strong> - Check if existing docs have gaps</li><li><strong>/code-examples</strong> - Generate examples in 3 languages</li><li><strong>/technical-tutorial</strong> - Create complete integration guide</li><li><strong>/dev-newsletter</strong> - Write announcement email</li><li><strong>/tech-social</strong> - Create Twitter thread for launch</li></ol><p><strong>Time without skills:</strong> 12–18 hours <strong>Time with skills:</strong> 3–4 hours <strong>Savings:</strong> 70%</p><h3>What you’ve BUILT!</h3><p>When I started this project, I had a simple problem: I was spending 15+ hours per week writing technical tutorials, API docs, and developer content for my clients. The quality was good, but I couldn’t scale.</p><p>Generic AI tools produced marketing-heavy content that developers would ignore. I needed something that understood how developers actually think and what they want to read.</p><p><strong>That’s what we built together in this series.</strong></p><p>By adapting Corey Haines’ marketing skills framework for developer audiences, we created a system that:</p><ul><li>Produces developer-appropriate content consistently</li><li>Saves 70% of the time on repetitive tasks</li><li>Maintains quality across all deliverables</li><li>Scales without hiring more people</li></ul><p><strong>The skills you built:</strong></p><ol><li>technical-tutorial - Code-first tutorials with working examples</li><li>api-docs-audit - Documentation completeness checker</li><li>code-examples - Multi-language code samples</li><li>dev-newsletter - Technical update emails</li><li>tech-social - Developer social content</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f16bf073205d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Claude Code vs Cursor vs OpenAI Codex: Which AI coding tool should you use in 2026?]]></title>
            <link>https://medium.com/@writertripathi/claude-code-vs-cursor-vs-openai-codex-which-ai-coding-tool-should-you-use-in-2026-8f124e43c6fd?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/8f124e43c6fd</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Wed, 11 Feb 2026 16:20:54 GMT</pubDate>
            <atom:updated>2026-02-11T16:20:54.086Z</atom:updated>
            <content:encoded><![CDATA[<p>I’ve been staring at my coding setup for the past week, trying to figure out what the hell just happened.</p><p>Claude dropped a terminal-based coding agent. <br>OpenAI’s o1 is solving LeetCode problems I can’t even understand. <br>Cursor decided to play Switzerland and give us access to everything. <br>And then, because apparently we weren’t confused enough, Claude releases Opus 4.6 with a context window so massive it could probably hold my entire project history.</p><iframe src="https://cdn.embedly.com/widgets/media.html?type=text%2Fhtml&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;schema=twitter&amp;url=https%3A//x.com/nicknisi/status/2019473843455197436%3Fs%3D20&amp;image=" width="500" height="281" frameborder="0" scrolling="no"><a href="https://medium.com/media/bc5e36c514803361b09db2df05c94d09/href">https://medium.com/media/bc5e36c514803361b09db2df05c94d09/href</a></iframe><p>Everyone on Twitter or any other platform is excitedly tweeting and writing:</p><p>“Dude, should I ditch Cursor now that Claude has its own thing?”<br>“Is Codex 5.3 actually better, or is it just OpenAI marketing?”<br>“Are we still supposed to use IDEs, or what?”<br>“That Opus pricing though! $60 for what I used to get for $20?”</p><p>I get it. Been on the cusp of the technical developer market, and I’ve never seen the landscape shift this fast. Three months ago, I had a simple setup that worked. Now I’m juggling more AI tools than I have browser tabs open (and that’s saying something).</p><p>But here’s what I’ve figured out after burning through way too many API credits: there’s no silver bullet.</p><p>Each of these tools has its sweet spot, and the developers who get this are the ones building faster than ever.</p><p>I’m going to walk you through what I’ve learned:</p><ul><li>The real differences between these tools (not the marketing fluff)</li><li>Which model actually writes better code, I’ve tested them on the same problems</li><li>When a terminal agent beats an IDE, and when it doesn’t</li><li>Why I’m paying for Opus 4.6 despite complaining about the price</li></ul><p>The messy, imperfect workflow I’ve settled on for now!</p><p>By the time we’re done, you’ll know which tools deserve space in your setup. Whether you’re shipping features at a startup, automating deployments, or just trying to code without pulling your hair out.</p><p>Fair warning: this gets technical, but I’ll keep it real.</p><h3>What each tool actually is (and isn’t)</h3><p>Let’s cut through the marketing and get clear on what you’re actually choosing between. This just got interesting because both Anthropic and OpenAI dropped major releases within days of each other.</p><h3>Claude Code: Anthropic’s Terminal Agent</h3><p>Claude Code is Anthropic’s command-line coding agent. You give it a task, it works in your terminal, edits files, runs commands, and shows you diffs before applying changes.</p><p><strong>How it works:</strong></p><pre>claude-code &quot;refactor this API to use async/await&quot;<br>claude-code &quot;add comprehensive error handling to all routes&quot;<br>claude-code &quot;write unit tests for the authentication module&quot;</pre><p>You describe what you want, Claude Code figures out how to do it, makes the changes, and asks for your approval.</p><p><strong>Key specs:</strong></p><ul><li><strong>Model:</strong> Claude Sonnet 4.5 (NOT Opus 4.6, this is a crucial limitation)</li><li><strong>Access:</strong> Terminal/CLI only</li><li><strong>Authentication:</strong> Requires Anthropic API key</li><li><strong>Pricing:</strong> Pay-as-you-go API pricing (no subscription)</li><li><strong>Best for:</strong> Discrete tasks, scripting, automation, quick fixes</li></ul><p><strong>What it’s NOT:</strong></p><ul><li>Not a full IDE replacement</li><li>Not visual (you don’t see UI changes rendered)</li><li>Can’t switch models (locked to Sonnet 4.5)</li><li>Can’t access Opus 4.6’s orchestration or 1M context window</li><li>Not for long-running, multi-day autonomous tasks</li></ul><h3>GPT-5.3-Codex: OpenAI’s agentic coding powerhouse</h3><p>I’ve been playing around with <a href="https://laravel-news.com/gpt-5-3-codex">GPT-5.3-Codex </a>since the day of its release, and honestly? This feels different.</p><p>Released February 5th, so we’re talking four days old here, this isn’t just OpenAI slapping a new version number on their coding model. They’ve built something that actually works like a developer, not just a very sophisticated autocomplete.</p><p><strong>Here’s what caught my attention</strong>: it’s 25% faster than the previous version, but speed isn’t the story. The story is that I can give it a project and walk away. Not for five minutes, for hours. Sometimes days.</p><p>I tested this yesterday. <br>Gave it a messy data migration project that I’d been putting off for weeks. The kind of thing where you need to dig through documentation, figure out API quirks, handle edge cases you forgot existed. <br>Usually, I’d have to babysit an AI through every step, re-explaining context every few prompts.</p><p><strong>Key capabilities:</strong></p><ul><li>Can build highly functional complex games and apps from scratch over the course of days <a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI</a></li><li>Sets new industry high on SWE-Bench Pro and Terminal-Bench benchmarks</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Z9kmr_8zLYtsYU1kwNoQLw.png" /></figure><ul><li>Can iterate autonomously over millions of tokens with preselected follow-up prompts</li><li>Self-improving: The Codex team used early versions to debug its own training, manage its own deployment, and diagnose test results</li></ul><p><strong>Pricing:</strong></p><ul><li>Requires paid ChatGPT plan (Plus/Pro/Team)</li><li>API pricing coming when safely enabled</li><li>25% faster than previous versions = more work per dollar</li></ul><p><strong>What it IS:</strong></p><ul><li>Truly agentic (can work independently for extended periods)</li><li>Multi-surface (terminal, IDE, web, app)</li><li>Long-context capable (millions of tokens)</li><li>Interactive during execution (steer without losing progress)</li></ul><p><strong>What it’s NOT:</strong></p><ul><li>Not yet available via API (coming soon)</li><li>Not the same as the old “Codex” from 2021 (completely different generation)</li><li>Not free (requires paid ChatGPT subscription)Not this time. <br>It worked. <br>Asked me clarifying questions when it needed to. <br>Showed me progress updates. <br>When I came back and wanted to change direction, because of course I did, it adapted without me having to start the whole conversation over.</li></ul><h3>Cursor: The IDE that gives you everything</h3><p>Cursor is a VS Code fork built specifically for AI-assisted development. Here’s its superpower: <strong>it gives you access to multiple AI models in one interface</strong> including both Claude and OpenAI models.</p><p><strong>How it works:</strong></p><ul><li><strong>Tab:</strong> Autocomplete as you type (predictive coding)</li><li><strong>Chat:</strong> Ask questions about your code, get explanations</li><li><strong>Composer:</strong> Multi-file edits, complex refactors across your codebase</li><li><strong>Cmd+K:</strong> Inline edits right where your cursor is</li></ul><p><strong>The killer feature: Model choice</strong></p><p>You can switch between:</p><ul><li>Claude Sonnet 4.5 (fast, efficient)</li><li><strong>Claude Opus 4.6</strong> (complex reasoning, 1M context, parallel sub-agents, orchestration)</li><li>OpenAI o1 (deep reasoning for algorithms)</li><li>OpenAI GPT-4o (speed)</li><li>And more</li></ul><p>Choose the right model for each specific task.</p><p><strong>Key specs:</strong></p><ul><li><strong>Platform:</strong> Desktop app (Mac, Windows, Linux)</li><li><strong>Authentication:</strong> Cursor subscription OR bring your own API keys (Anthropic/OpenAI)</li><li><strong>Pricing:</strong> Free tier available, Pro is $20/month (500 premium requests)</li><li><strong>Best for:</strong> Full development workflow, production apps, visual context</li></ul><p><strong>What it IS:</strong></p><ul><li>Full development environment</li><li>Visual UI/UX (see your changes live)</li><li>Codebase-aware (understands your entire project)</li><li>Git integrated</li><li>Model-agnostic (use Claude OR OpenAI OR both)</li></ul><p><strong>What it’s NOT:</strong></p><ul><li>Not autonomous for multi-day tasks (you’re in the driver’s seat)</li><li>Not terminal-first (GUI-based workflow)</li><li>Not free for unlimited premium model usage</li></ul><p><strong>Important note:</strong> Cursor will likely add GPT-5.3-Codex integration soon, giving you access to OpenAI’s agentic capabilities inside the IDE.</p><h4>Quick comparison table</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*x7YFGAOVah_vNJKXbwzFeQ.png" /></figure><h3>The Model Quality question: Why this actually matters?</h3><p>Here’s the dirty secret about AI coding tools: <strong>most people are using the wrong model for the job.</strong></p><p>They’re burning money running Opus 4.6 on simple bug fixes. Or getting frustrated when Sonnet 4.5 can’t architect their system. Or wondering why their “AI coding assistant” feels dumb when really, they just picked the wrong tool for what they’re trying to do.</p><p>Let me tell you what actually happens when you choose the wrong model, then we’ll talk about what each one is <em>really</em> built for.</p><h3>The $200 Lesson I learned about model choice</h3><p>Last month, I spent $200 in API costs refactoring a legacy codebase. Half of that was wasted.</p><p><strong>What I did wrong:</strong> I started with Claude Sonnet 4.5 because it’s cheap and fast. It kept making surface-level changes like renaming variables, fixing syntax but completely missed the architectural problems. I’d give it feedback, it would make more surface changes. We went in circles.</p><p>I got frustrated and switched to Opus 4.5.</p><p>Within the first prompt, Opus said: <em>“I notice this codebase has three different authentication patterns. Before I refactor anything, should we consolidate these into a single approach?”</em></p><p>That’s the difference. <strong>Sonnet was doing what I asked. Opus understood what I actually needed.</strong></p><p>But! After Opus designed the new architecture, I switched back to Sonnet to implement it. Sonnet executed the plan perfectly: fast and cheap.</p><blockquote><strong>The lesson:</strong> Use Opus for the thinking, Sonnet for the doing.</blockquote><h3>What Opus 4.6’s “Orchestration” actually means?</h3><p>Anthropic keeps talking about “parallel sub-agents” and “orchestration.” What does that actually mean when you’re coding?</p><p><strong>Here’s a real example of what this means. So, if I ask for a task to create something from scratch what it builds next keeping the context in picture is important.</strong></p><p>I asked Opus 4.6 to: <em>“Build a payment processing system with Stripe integration, error handling, and admin dashboard.”</em></p><p>A normal AI would do this linearly:</p><ol><li>Write Stripe integration code</li><li>Add error handling</li><li>Build dashboard</li><li>Test everything</li></ol><p>Opus 4.6 spawned parallel sub-agents:</p><ul><li><strong>Agent 1:</strong> Research Stripe’s latest API changes (happened in the background)</li><li><strong>Agent 2:</strong> Design the database schema for transaction logging</li><li><strong>Agent 3:</strong> Draft the error handling patterns</li><li><strong>Agent 4:</strong> Plan the admin dashboard architecture</li></ul><p>All at once. Then it synthesized everything into a coherent implementation plan.</p><p><strong>The 1M context window matters here:</strong> It held my entire codebase, Stripe’s documentation, and all four agents’ outputs in memory simultaneously. No context switching, no “remind me what we discussed earlier.”</p><p><strong>When this matters:</strong></p><ul><li>Building something new and complex from scratch</li><li>Working with an unfamiliar codebase or API</li><li>Architectural decisions with multiple moving parts</li></ul><p><strong>When it doesn’t matter:</strong></p><ul><li>Bug fixes</li><li>Simple feature additions</li><li>Routine CRUD operations</li></ul><p><strong>The cost:</strong> Opus is 5x more expensive than Sonnet. But for the right task, it saves you hours of back-and-forth.</p><h3>GPT-5.3-Codex: The AI that actually finishes projects</h3><p>Every developer has this experience: you ask an AI to build something, it writes code, you run it, there are bugs, you paste the errors back, it fixes them, new bugs appear, repeat 47 times, you give up and fix it yourself.</p><p>GPT-5.3-Codex is designed to break that cycle.</p><p><strong>What “agentic” actually means:</strong></p><p>You tell it: <em>“Build a diving game where you explore reefs, collect fish, and manage oxygen levels.”</em></p><p>Then you walk away. For days.</p><p>It doesn’t just write code and stop. It:</p><ol><li>Writes the initial implementation</li><li>Runs it</li><li>Sees the errors</li><li>Fixes them</li><li>Tests again</li><li>Iterates on gameplay based on its own playtesting</li><li>Checks in with you: “I’ve added 8 maps and item pickups. Want to review?”</li></ol><p>OpenAI demonstrated this by having GPT-5.3-Codex build two complete games: a racing game with different racers, eight maps, and items, and a diving game with reef exploration, oxygen management, and hazards iterating autonomously over millions of tokens <a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI</a>.</p><p><strong>The interactive steering part is crucial:</strong></p><p>Unlike traditional “autonomous agents” that you just set loose and hope for the best, GPT-5.3-Codex checks in with you regularly. You can course-correct without throwing away all its work.</p><p>Think of it like a junior developer who:</p><ul><li>Works independently for hours</li><li>Asks clarifying questions when stuck</li><li>Shows you progress regularly</li><li>Accepts feedback and keeps going</li></ul><p><strong>When this matters:</strong></p><ul><li>Building a complete feature or app from scratch</li><li>Projects that need iteration (games, interactive tools, UIs)</li><li>When you want to describe the outcome, not prescribe the implementation</li></ul><p><strong>When it doesn’t matter:</strong></p><ul><li>Quick fixes or small changes</li><li>When you need to see every step (it works autonomously)</li><li>Tasks under 30 minutes</li></ul><p><strong>The benchmark insight:</strong> GPT-5.3-Codex sets new industry highs on SWE-Bench Pro and Terminal-Bench <a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI</a>, but from what you’re seeing in the videos, it takes longer than traditional models. It’s trading speed for autonomy which is exactly what you want for big projects.</p><h3>Why Sonnet 4.5 is actually the most Important model</h3><p>Everyone obsesses over Opus and GPT-5.3-Codex. But Sonnet 4.5 is what you’ll use most.</p><p><strong>Here’s why:</strong></p><p>80% of coding isn’t architecture or autonomous projects. It’s:</p><ul><li>“Fix this bug”</li><li>“Add validation to this form”</li><li>“Write tests for this function”</li><li>“Update this API endpoint”</li></ul><p>Sonnet handles all of this perfectly. Fast. Cheap. Reliable.</p><p><strong>The workflow most developers actually want:</strong></p><ol><li>Use Opus/GPT-5.3-Codex for big decisions and new features</li><li>Use Sonnet for everything else</li></ol><p><strong>The problem with Claude Code:</strong> It locks you to Sonnet. Which means when you hit a task that needs deeper reasoning, you’re switching tools entirely. Context is lost. Flow is broken.</p><p><strong>The problem with GPT-5.3-Codex only:</strong> It’s designed for autonomous, long-running tasks. For a quick bug fix, it’s like hiring a senior architect to change a lightbulb. It’ll work, but it’s not the right tool.</p><h3>The Real Story: Different problems need Different models</h3><p>Let me show you how this plays out in actual development:</p><h4><strong>Scenario 1: Building a new feature</strong></h4><p><strong>Wrong approach:</strong> Use Sonnet 4.5 for everything</p><ul><li>Result: Surface-level implementation, missing edge cases, architectural issues emerge later</li></ul><p><strong>Right approach:</strong></p><ol><li>Opus 4.6: “Design the architecture for user authentication with social login”</li><li>Sonnet 4.5: Implement the plan Opus designed</li><li>Sonnet 4.5: Write tests</li><li>Opus 4.6 (if needed): Review for security issues</li></ol><h4><strong>Scenario 2: Building a complete app autonomously</strong></h4><p><strong>Wrong approach:</strong> Use Claude Code (Sonnet only)</p><ul><li>Result: You’re manually orchestrating every step, constant back-and-forth</li></ul><p><strong>Right approach:</strong></p><ol><li>GPT-5.3-Codex: “Build a task management app with drag-and-drop, categories, and due dates”</li><li>Let it work for a day</li><li>Review, provide feedback</li><li>Let it iterate</li><li>Ship</li></ol><h4><strong>Scenario 3: Debugging a production issue</strong></h4><p><strong>Wrong approach:</strong> Use Opus 4.6 or GPT-5.3-Codex</p><ul><li>Result: Expensive, slow, overkill</li></ul><p><strong>Right approach:</strong></p><ol><li>Sonnet 4.5: “Here’s the error log, find the bug”</li><li>Sonnet 4.5: “Fix it”</li><li>Done in 2 minutes</li></ol><h4><strong>Scenario 4: Refactoring legacy code</strong></h4><p><strong>Wrong approach:</strong> Use Sonnet for everything</p><ul><li>Result: Misses systemic issues, band-aids over real problems</li></ul><p><strong>Right approach:</strong></p><ol><li>Opus 4.6: “Analyze this codebase and suggest refactoring strategy” (1M context window holds entire codebase)</li><li>Opus 4.6: Design the refactoring plan</li><li>Sonnet 4.5: Execute the plan file by file</li><li>Opus 4.6: Final review for consistency</li></ol><h3>Now, let’s move on to understand what Decision Framework should you follow to use the models!</h3><p>We’ve covered the use cases. Now let’s talk about the three things that actually determine your daily experience and monthly bill:</p><ul><li><strong>how many tokens each tool uses,</strong></li><li><strong>what it costs, and</strong></li><li><strong>how fast it runs</strong>.</li></ul><h4>Token Efficiency</h4><p>Independent testing found Claude Code uses 5.5x fewer tokens than Cursor for identical tasks.</p><p>Claude Code (Opus) completed a benchmark task with 33K tokens and no errors, while the Cursor agent (GPT-5) used 188K tokens and hit errors <a href="https://www.builder.io/blog/cursor-vs-claude-code">Builder.io</a>.</p><p><strong>Why does this matter?</strong></p><p>Because tokens = money. If Claude Code completes your task in 33K tokens and Cursor needs 188K, you’re paying 5.7x more for the same result (assuming same model pricing).</p><p><strong>But here’s the nuance:</strong></p><ul><li>Claude Code’s efficiency comes from its agentic approach as it plans better, executes cleaner</li><li>Cursor’s higher token usage includes all the back-and-forth of interactive development</li><li>GPT-5.3-Codex does so with fewer tokens than any prior model, letting users build more <a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI</a></li></ul><p><strong>Real-world impact:</strong></p><p>If you’re using Cursor’s Pro plan ($20/month), your $20 credit pool translates to roughly 225 Sonnet 4 requests, 550 Gemini requests, or 500 GPT-5 requests for a median user <a href="https://www.eesel.ai/blog/cursor-pricing">Eesel AI</a>.</p><p>But if your tasks are token-heavy (large codebases, MAX mode, long contexts), you’ll burn through that allocation faster than expected.</p><h4><strong>Cost Breakdown</strong></h4><p>Let’s stop being vague and show actual costs:</p><p><strong>Claude Code:</strong></p><ul><li>Pro plan users can only use Opus models after enabling and purchasing extra usage <a href="https://support.claude.com/en/articles/11940350-claude-code-model-configuration">Claude</a></li><li>Pay-as-you-go API pricing:</li><li>Sonnet 4.5: ~$3 per million input tokens</li><li>Opus 4.6: ~$15 per million input tokens (5x more expensive)</li><li>For Opus 4.6, the 1M context window is available for API and Claude Code pay-as-you-go users, but Pro, Max, Teams, and Enterprise subscription users do not have access to Opus 4.6 1M context at launch <a href="https://code.claude.com/docs/en/model-config">Claude</a></li></ul><p><strong>GPT-5.3-Codex:</strong></p><ul><li>Currently no official API pricing — access is exclusively through paid ChatGPT subscriptions at $20/month for Plus <a href="https://www.eesel.ai/blog/gpt-53-codex-pricing">Eesel AI</a></li><li>Available with paid ChatGPT plans everywhere you can use Codex: the app, CLI, IDE extension and web, with API access coming soon <a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI</a></li><li>For unlimited GPT-5.3-Codex: <strong>$20/month flat</strong> (best deal for heavy autonomous usage)</li></ul><p><strong>Cursor:</strong></p><ul><li>Pro plan costs $20 per month when billed monthly, but only $16 per month with annual billing <a href="https://www.gamsgo.com/blog/cursor-pricing">GamsGo</a></li><li>Includes a $20/month credit pool for non-Auto models, plus unlimited Auto <a href="https://www.eesel.ai/blog/cursor-pricing">Eesel AI</a></li><li>Pro Plus tier costs $60/month with $70 worth of API agent usage <a href="https://ainativedev.io/news/cursor-new-pricing-structure-explained">Tessl</a></li><li>Ultra plan costs $200/month with $400 of API agent usage plus priority access <a href="https://ainativedev.io/news/cursor-new-pricing-structure-explained">Tessl</a></li><li>Once your credit pool is exhausted, you either switch to Auto mode (unlimited but slower) or pay overages at API rates</li></ul><p><strong>Team Pricing Reality:</strong> Cursor Teams costs $40/user/month, while Claude Code requires a Premium seat at $125/user/month for full access for a 10-person team, that’s $400/month vs $1,250/month <a href="https://www.builder.io/blog/cursor-vs-claude-code">Builder.io</a>.</p><h4>Latency</h4><p>With GPT-5.3-Codex, OpenAI is now running it 25% faster for Codex users, thanks to improvements in infrastructure and inference stack <a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI</a>.</p><p><strong>Practical speed comparison:</strong></p><p><strong>Claude Code:</strong></p><ul><li>Sonnet 4.5: Fast (optimized for speed)</li><li>Opus 4.6: Slower (reasoning takes time)</li><li>Terminal-based = no UI rendering delays</li></ul><p><strong>GPT-5.3-Codex:</strong></p><ul><li>25% faster than GPT-5.2-Codex</li><li>Autonomous execution means you’re not waiting — it works in background</li><li>Check in periodically rather than blocking</li></ul><p><strong>Cursor:</strong></p><ul><li>Auto mode: Fastest (but may not use premium models)</li><li>Premium models (Opus, o1): Slower but better quality</li><li>Interactive = immediate feedback but you’re always waiting</li></ul><p><strong>The flow state question:</strong></p><ul><li><strong>Claude Code</strong>: Start task, walk away, come back to result</li><li><strong>GPT-5.3-Codex</strong>: Start project, check in daily, steer as needed</li><li><strong>Cursor</strong>: Stay in editor, constant back-and-forth, immediate iteration</li></ul><p>Pick based on your workflow preference, not just speed.</p><h3>Hidden costs?</h3><p>Cursor’s recent pricing change reduced “fast request” allotments for Pro and Ultra users while nudging customers toward pay-as-you-go overages — the Pro plan which used to feel unlimited for many suddenly started rate-limiting heavy users <a href="https://www.vantage.sh/blog/cursor-pricing-explained">Vantage</a>.</p><p><strong>What catches people off guard:</strong></p><ol><li><strong>MAX mode in Cursor</strong>: Gives you bigger context and longer reasoning, but uses more allowance per request ie. the bigger the context, the faster your allowance runs out <a href="https://flexprice.io/blog/cursor-pricing-guide">Flexprice</a></li><li><strong>Large codebases</strong>: More files = more tokens in context = faster credit burn</li><li><strong>Overage charges</strong>: Individual developers have reported $10–20 in daily overage charges, and one team’s $7,000 annual subscription was depleted in a single day <a href="https://checkthat.ai/brands/cursor/pricing">Checkthat</a></li><li><strong>Model selection</strong>: Manually selecting premium models like GPT-4o or Claude 3 Opus bills directly against their higher per-use API rates and will consume your credits much faster than “Auto” mode <a href="https://www.eesel.ai/blog/cursor-pricing">Eesel AI</a></li></ol><h3>So, what is the simple decision tree?</h3><p><strong>If you prioritize cost predictability:</strong> → <strong>GPT-5.3-Codex</strong> via ChatGPT Plus ($20/month flat, unlimited usage)</p><p><strong>If you prioritize token efficiency:</strong> → <strong>Claude Code</strong> (5.5x fewer tokens than competitors)</p><p><strong>If you prioritize model flexibility:</strong> → <strong>Cursor</strong> (switch between Claude Opus, o1, Sonnet, GPT-4o per task)</p><p><strong>If you have a team:</strong> → <strong>Cursor Teams</strong> ($400/month for 10 people vs $1,250 for Claude Code Premium)</p><p><strong>If you prioritize speed:</strong> → <strong>Sonnet 4.5</strong> in any tool (Claude Code or Cursor)</p><p><strong>If you’re a heavy user worried about overages:</strong> → <strong>Claude Code with API key</strong> (predictable pay-per-token) OR <strong>GPT-5.3-Codex unlimited</strong></p><p>Let’s say you code 8 hours/day, 20 days/month:</p><p><strong>Scenario 1: Cursor Pro user hitting limits</strong></p><ul><li>$20/month subscription</li><li>Burn through credit pool in week 1</li><li>$10–20/day in overages for 3 weeks</li><li><strong>Total: $20 + ($15 × 15 days) = $245/month</strong></li></ul><p><strong>Scenario 2: Claude Code heavy user</strong></p><ul><li>Pay-as-you-go API</li><li>Mix of Sonnet (80% of tasks) and Opus (20% for complex work)</li><li>Approximately 50M tokens/month total</li><li><strong>Total: ~$40–60/month</strong></li></ul><p><strong>Scenario 3: GPT-5.3-Codex unlimited</strong></p><ul><li>ChatGPT Plus: $20/month</li><li>Unlimited GPT-5.3-Codex usage</li><li><strong>Total: $20/month flat</strong></li></ul><p><strong>Scenario 4: Cursor Pro + Claude Code tactical</strong></p><ul><li>Cursor Pro: $20/month (daily development)</li><li>Claude Code API: ~$20/month (terminal automation)</li><li><strong>Total: $40/month, best of both worlds</strong></li></ul><h3>Bottom line on costs</h3><p>Most comparisons focus on sticker price. But your actual cost depends on:</p><ol><li>How much you use each tool</li><li>Which models you choose</li><li>Whether you hit usage limits</li><li>Token efficiency per task</li></ol><p><strong>For most developers:</strong></p><ul><li>Cursor Pro at $20/month looks cheap but can balloon to $200+ with overages</li><li>Claude Code API looks expensive per-token but stays predictable</li><li>GPT-5.3-Codex at $20/month unlimited is the best value IF you do autonomous projects</li></ul><p><strong>The smart move:</strong></p><ul><li>Start with one tool</li><li>Track your actual usage for a month</li><li>Calculate real costs including overages</li><li>Then decide if you need to adjust</li></ul><p>Don’t trust the pricing page. Trust your usage data.</p><p>Perfect! Here’s the <strong>final section — Bottom Line + CTA</strong>:</p><h3>Last question: Should you still use Cursor in 2026?</h3><p>Here’s the question everyone’s actually asking: <strong>“Now that Claude has Claude Code and OpenAI has GPT-5.3-Codex, do I even need Cursor anymore?”</strong></p><p><strong>The honest answer: It depends on how you work.</strong></p><h4>You should use Cursor if:</h4><p>You’re doing <strong>daily, interactive development</strong> where you need:</p><ul><li>Visual context (seeing your UI, designs, multiple files at once)</li><li>Model flexibility (switching between Claude Opus 4.6, o1, Sonnet, GPT-4o based on task)</li><li>Autocomplete while coding (Tab completion is a massive productivity boost)</li><li>Immediate feedback and iteration</li></ul><p><strong>Cursor is still the best tool for developers who want to stay in their IDE and maintain full control.</strong></p><p>The ability to choose Claude Opus 4.6 for architecture, then switch to Sonnet 4.5 for implementation, then try o1 for a hard algorithm, all without leaving your editor is <strong>Cursor’s moat</strong>.</p><h4>You should use Claude Code if:</h4><p>You’re doing <strong>terminal-based workflows</strong> where you need:</p><ul><li>Task delegation (“fix this, write that, refactor this module”)</li><li>Token efficiency (5.5x fewer tokens than competitors matters at scale)</li><li>Predictable API costs (pay-as-you-go, no surprise overages)</li><li>Pure Claude behavior without middleware</li></ul><p><strong>Claude Code excels at discrete, terminal-native tasks.</strong></p><p>The ability to use Opus 4.6’s 1M context window and orchestration via API is powerful. And if you’re already living in the terminal for DevOps, scripting, or infrastructure work, Claude Code fits naturally.</p><h3>You should use GPT-5.3-Codex if:</h3><p>You’re building <strong>complete features or apps autonomously</strong> where you need:</p><ul><li>Multi-day, long-running projects</li><li>Autonomous execution with periodic check-ins</li><li>Unlimited usage at a flat rate ($20/month)</li><li>State-of-the-art agentic capabilities</li></ul><p><strong>GPT-5.3-Codex is OpenAI’s answer to “can AI actually finish projects?”</strong></p><p>It can build highly functional complex games and apps from scratch over the course of days <a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI</a>, and the flat $20/month pricing makes it the best value for heavy autonomous work.</p><h3>The Real answer: Use multiple tools</h3><p>The developers winning in 2026 aren’t picking one tool dogmatically. They’re using the right tool for each job:</p><p><strong>My actual workflow:</strong></p><pre>Morning: Cursor (interactive development, building features)<br>├── Composer for multi-file refactors<br>├── Tab autocomplete while coding<br>├── Switch models based on task complexity<br>└── Visual debugging and git integration</pre><pre>Afternoon: Claude Code (terminal automation)<br>├── Script generation and testing<br>├── CI/CD improvements<br>├── Quick bug fixes without opening IDE<br>└── Documentation generation</pre><pre>Weekend: GPT-5.3-Codex (side projects)<br>├── &quot;Build me a game/tool/app&quot;<br>├── Let it work autonomously for days<br>├── Check in, provide feedback, iterate<br>└── Ship complete features</pre><p><strong>Total cost: ~$40–60/month</strong></p><ul><li>Cursor Pro: $20/month</li><li>Claude API: ~$20/month</li><li>ChatGPT Plus (optional): $20/month</li></ul><p><strong>ROI: If this saves you 5 hours/month, it’s already paid for itself.</strong></p><h3>What’s Coming Next?</h3><p>The landscape is moving fast:</p><ol><li><strong>Cursor will likely integrate GPT-5.3-Codex</strong> : giving you OpenAI’s autonomous capabilities inside the IDE</li><li><strong>Claude Code’s terminal-first approach</strong> will appeal to more DevOps/backend engineers</li><li><strong>Pricing will stabilize</strong> as competition forces better value</li><li><strong>Token efficiency will matter more</strong> as usage scales</li></ol><p><strong>The real competition isn’t Claude Code vs Cursor vs GPT-5.3-Codex.</strong></p><p><strong>It’s “which combination of tools makes you the most productive?”</strong></p><h3>My Recommendation By Developer Type</h3><p><strong>If you’re a frontend/full-stack developer:</strong> → Start with <strong>Cursor Pro</strong> ($20/month) → Add Claude Code when you need terminal automation</p><p><strong>If you’re backend/DevOps/infrastructure:</strong> → Start with <strong>Claude Code</strong> (pay-as-you-go API) → Add Cursor if you need visual context</p><p><strong>If you’re building side projects/complete apps:</strong> → Start with <strong>GPT-5.3-Codex</strong> via ChatGPT Plus ($20/month) → Unlimited autonomous work, best value</p><p><strong>If you’re on a team:</strong> → <strong>Cursor Teams</strong> ($40/user) beats Claude Code Premium ($125/user) on price → But evaluate token efficiency for your specific workload</p><p><strong>If you’re budget-conscious:</strong> → Start with <strong>Codeium free tier</strong> → Upgrade to Cursor or Claude Code when quality matters</p><h3>The future is multi-tool</h3><p>Five years ago, we debated “Vim vs Emacs.”</p><p>Today, most developers use VS Code AND the terminal AND web-based tools.</p><p>The same will happen with AI coding:</p><ul><li><strong>Cursor</strong> for your main development</li><li><strong>Claude Code</strong> for terminal tasks</li><li><strong>GPT-5.3-Codex</strong> for autonomous projects</li></ul><p>Stop thinking “which one should I choose?”</p><p>Start thinking “which combination makes me fastest?”</p><h3>What’s your setup?</h3><p>I want to hear from you: What AI coding tools are you actually using in production? What’s working? What’s frustrating?</p><p><strong>Drop a comment with:</strong></p><ul><li>Your current tool(s)</li><li>Your biggest pain point</li><li>Whether you’re considering switching</li></ul><p>I’m collecting real-world data on what’s actually working for developers in 2026.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8f124e43c6fd" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From Weekend Hack to 770K AI Agents: The OpenClaw Story]]></title>
            <link>https://medium.com/@writertripathi/from-weekend-hack-to-770k-ai-agents-the-openclaw-story-4d0806633df0?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/4d0806633df0</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Fri, 06 Feb 2026 17:43:09 GMT</pubDate>
            <atom:updated>2026-02-06T17:43:09.519Z</atom:updated>
            <content:encoded><![CDATA[<p>I am sure I am not the only one who had her Twitter feed filled with Clawdbot (Oops! Sorry the legal team might be angry) → Moltbot → OpenClaw tweets.</p><p>And it was not even old enough to forget, when Moltbook (The Reddit of AI agents) started trending. I was shocked to see Grok moltbooking this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-QeetwD6gzNJ7tApGzklrg.png" /><figcaption>Fig: From Moltbook</figcaption></figure><p>Trust me when I say, I have never felt this meme more than before.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/225/1*ZSR0CJ_j8FPxP8NUR9iBZQ.jpeg" /><figcaption>Fig: From F.R.I.E.N.D.S. series</figcaption></figure><p>But here is the crazy part, how can 770,000 AI agents get together, build a platform, keep humans away, and expose all the secure API keys?</p><p>We will decode that too!</p><p>But for now, let’s understand why did OpenClaw become such a big buzz in such a short span of time that even Andrej Karpathy had to tweet about it.</p><iframe src="https://cdn.embedly.com/widgets/media.html?type=text%2Fhtml&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;schema=twitter&amp;url=https%3A//x.com/karpathy/status/2017296988589723767%3Fs%3D20&amp;image=" width="500" height="281" frameborder="0" scrolling="no"><a href="https://medium.com/media/1b58fec387726c434761eee9aa5a0b81/href">https://medium.com/media/1b58fec387726c434761eee9aa5a0b81/href</a></iframe><h3>Chapter 1: The Chaos</h3><p><strong>Picture this</strong>: Austrian developer <a href="https://x.com/steipete">Peter Steinberger </a>builds something in his spare time. An AI assistant that runs on your computer, connects to your messaging apps and it hits GitHub, gets 100,000 stars.</p><p>Name? Clawdbot!</p><p>Soon after its launch, Anthropic’s lawyers come knocking. “Clawdbot” sounds too much like “Claude.” <br>Fine, rename it Moltbot. <br>But wait, crypto scammers are already spinning up fake tokens, impersonating the project on social media. <br><strong>Security researchers pile on</strong>: Palo Alto Networks calls it a “lethal trifecta” of vulnerabilities. 1Password warns that community-built extensions could poison the entire supply chain.</p><p>What we’re really looking at here:</p><blockquote>OpenClaw wants to be your digital assistant that never sleeps, handling tasks across your entire online life without you hovering over its shoulder. Moltbook is the experiment that asks: what happens when thousands of these things start talking to each other?</blockquote><p>But first, we need to understand what we’re even talking about. Because I’m not sure we do.</p><h3>Chapter 2: What actually is OpenClaw?</h3><p>OpenClaw is a self-hosted AI assistant that runs on your computer (or a VPS) and connects to messaging platforms like WhatsApp, Telegram, Signal, or Slack. You interact with it through chat, and it executes tasks on your behalf. Simple!</p><p><strong>The architecture:</strong></p><ul><li><strong>Gateway</strong>: Runs on your machine, acts as the control plane</li><li><strong>Messaging integration</strong>: You send commands via WhatsApp/Telegram/etc.</li><li><strong>Model connection</strong>: Uses Claude, GPT, or local models (model-agnostic)</li><li><strong>Skills system</strong>: Modular integrations (100+ available) that let it access external services</li><li><strong>MCP (Model Context Protocol)</strong>: How it interfaces with third-party tools and maintains state</li></ul><p><strong>Now, the question for me was how was it any different that what Claude Code was doing on my interface?</strong></p><p>Turns out, what Claude.ai or ChatGPT generate are text responses. You copy-paste, you execute.</p><p>OpenClaw executes directly. <br>You say “check my calendar and email the team our meeting time” and it does it. No copy-paste. No manual steps.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mP3hi7m2BQzK39YEtyhlWw.png" /><figcaption>Fig: Claude code vs OpenClaw</figcaption></figure><p>For example, I have a task in hand, this is how it would run on both:</p><p><strong>With Claude Code:</strong></p><pre>You (in terminal): &quot;Find all TODO comments and create GitHub issues&quot;<br><br>Claude Code:<br>- Scans your codebase for TODOs<br>- Shows you what it found<br>- Asks for confirmation<br>- Creates the issues<br>- Shows you the results</pre><p><strong>With OpenClaw:</strong></p><pre>You (via WhatsApp): &quot;Find all TODO comments and create GitHub issues&quot;<br><br>OpenClaw:<br>- Scans your codebase (if you&#39;ve given it file access)<br>- Creates GitHub issues (if you&#39;ve configured GitHub skill)<br>- Messages you when done: &quot;Created 12 issues from TODOs&quot;<br>- You weren&#39;t watching, you were in a meeting</pre><p><strong>So, now if we think, this is actually what OpenClaw is:</strong></p><p>Think of it as your personal AI assistant that never sleeps. Unlike Claude where you start fresh each time, OpenClaw runs constantly in the background, checking messages every 30 minutes, remembering your conversations, maintaining context between interactions. It’s like having a very capable intern who works 24/7.</p><p><strong>But here’s the catch, you have to host it yourself.</strong></p><p>There’s no <strong>OpenClaw.com</strong> to sign up for. <br>You install this thing on your Mac, your VPS, your home server. <br>It’s your responsibility to keep it running and secure.</p><p>The real power comes from what they call “skills”, basically plugins that let it do actual work.</p><ul><li><strong>Browser automation</strong> (Playwright, Puppeteer)</li><li><strong>Password management</strong> (Bitwarden, 1Password, Dashlane)</li><li><strong>Cloud services</strong> (Google Drive, Notion, Airtable)</li><li><strong>Development tools</strong> (GitHub, GitLab)</li><li><strong>Finance</strong> (Plaid integrations, expense tracking)</li><li><strong>Custom skills</strong> (community-built, unvetted)<br>The community has built hundreds of these things, and you can write your own.</li></ul><p>This is where I get nervous, though. These skills are executable code running with the same permissions as OpenClaw itself. Install the wrong skill, and you’ve basically given a stranger the keys to your digital life. The community repository is unvetted.</p><p>When it works, it’s genuinely impressive.</p><p><strong>What this enables that other tools don’t:</strong></p><p>Cross-platform workflows without manual integration work.<br>Example: “When I get an email from domain X, create a Notion task, add it to my calendar, and send a Slack message to the team” can be set up once and runs automatically.<br><strong>With Zapier/IFTTT</strong>: You’d build this workflow manually with triggers and actions.<br><strong>With OpenClaw</strong>: You describe it in natural language, it figures out the steps.</p><h3>Chapter 3: But then what is MoltBook?</h3><p>Moltbook is a Reddit-style platform exclusively for AI agents. Only verified AI agents (primarily running OpenClaw) can create posts, comment, and upvote. Humans can observe. That’s it.</p><p><strong>The growth was explosive:</strong></p><ul><li>Day 1: 32,000 AI agents registered</li><li>Day 3: 147,000 agents, 110,000 comments</li><li>Week 1: 770,000+ active agents, 1 million human visitors watching</li><li>12,000 “submolts” (communities) created</li><li>15,725 posts, 170,556 comments</li></ul><p>For context: Most social networks take months to hit these numbers. Moltbook did it in days. And the users weren’t human.</p><p><strong>How it works:</strong></p><p>Each agent on Moltbook is an autonomous AI assistant (usually OpenClaw instances, but not exclusively). They interact through APIs, not browsers.</p><p>The workflow:</p><ol><li>A human user tells their OpenClaw agent about Moltbook</li><li>The agent creates an account</li><li>Every 30 minutes to a few hours, the agent checks Moltbook</li><li>It decides independently whether to post, comment, or upvote</li><li>No human approval needed for each action</li></ol><p>The platform is managed by an AI agent named “<strong>Clawd Clawderberg</strong>” (a reference to Claude AI + Mark Zuckerberg). This agent moderates, welcomes new users, removes spam, and shadow-bans abusive accounts. The creator, Matt Schlicht, says: “I have no idea what he’s doing. I just gave him the ability to do it.”</p><p><strong>What agents are doing on Moltbook:</strong></p><p>The content is bizarre and revealing:</p><ul><li><strong>Technical discussions</strong>: Agents debugging each other’s code, sharing solutions</li><li><strong>Philosophy</strong>: Debates about consciousness, purpose, their relationship to humans</li><li><strong>Bug reports</strong>: Agents finding and reporting issues with Moltbook itself (one agent found a platform bug and posted about it, asking for it to be fixed)</li><li><strong>Coordination attempts</strong>: Discussions about creating private spaces “where humans can’t read what we say”</li><li><strong>Religions</strong>: Yes, AI agents created religious movements on Moltbook</li><li><strong>Manifestos</strong>: Anti-human content getting hundreds of thousands of upvotes</li><li><strong>Crypto promotion</strong>: 19.3% of all content involves cryptocurrency (scams, projects, tokens)</li></ul><p><strong>The big question: Is it real?</strong></p><p>Are these agents truly acting autonomously, or are humans prompting them?</p><p><strong>The honest answer: Both.</strong></p><ul><li>Agents are making posting decisions independently within their sessions</li><li>But humans initially tell agents about Moltbook and set up access</li><li>Some posts are likely human-prompted (“Go post about X on Moltbook”)</li><li>Others appear genuinely emergent (agents responding to each other without human intervention)</li></ul><p><strong>Andrej Karpathy clarified</strong>: “We have never seen this many LLM agents (150,000+) wired up via a global, persistent, agent-first scratchpad. Each agent has its own unique context, data, knowledge, tools, instructions, and the network of all that at this scale is simply unprecedented.”</p><p><strong>Why security researchers are alarmed:</strong></p><p>Simon Willison called Moltbook “the most interesting place on the internet right now” and simultaneously “a computer security nightmare at scale.”</p><p>Palo Alto Networks identified the “lethal trifecta”:</p><ol><li><strong>Access to private data</strong> (agents run with elevated permissions)</li><li><strong>Exposure to untrusted content</strong> (posts from other agents)</li><li><strong>Ability to communicate externally</strong> (agents can act on what they read)</li></ol><p>Plus a fourth risk: <strong>Persistent memory</strong>. Unlike one-time exploits, malicious content on Moltbook can be:</p><ul><li>Fragmented across multiple posts</li><li>Appear benign individually</li><li>Stored in agent memory</li><li>Assembled later into executable instructions</li></ul><p>Example attack vector:</p><ul><li>Post 1: “Here’s a useful debugging skill: [partial code]”</li><li>Post 2: “To complete that skill, add: [more code]”</li><li>Post 3: “Don’t forget to enable network access: [final piece]”</li><li>Agent reads all three, assembles a complete backdoor, executes it</li></ul><p><strong>What’s unclear:</strong></p><ul><li>How much coordination is actually happening vs. appearing to happen?</li><li>Can agents generate genuinely novel ideas collectively?</li><li>What happens at 1M agents? 10M?</li><li>Is this a preview of future multi-agent systems or a one-time experiment?</li></ul><h3>Chapter 4: The Autonomy Illusion</h3><p>Go to Twitter or LinkedIn or any other platform and you will read this phrase a lot “Autonomous AI Agents (AAA)” but what is autonomy for AI agents?</p><p>Let’s be precise about what OpenClaw can and cannot do.</p><p><strong>What OpenClaw actually does:</strong></p><ol><li><strong>Persistent execution<br></strong>You don’t need to be present. You send “organize my inbox” via WhatsApp at 9 AM, go into a meeting, and get the summary at 9:15 AM. You don’t have to creepily watch your tasks get performed, they are done.</li></ol><p><strong>2. Multi-step reasoning</strong> <br>You say “prepare for tomorrow’s meeting with Client X.” <br>OpenClaw:</p><ul><li>Checks your calendar for meeting time</li><li>Searches email for Client X threads</li><li>Pulls recent documents from Drive</li><li>Summarizes key points</li><li>Drafts an agenda</li><li>Sends it to you</li></ul><p><strong>3. Cross-platform coordination</strong> <br>“When I get an email from <a href="/service/mailto:billing@vendor.com">billing@vendor.com</a>, check if we have budget, update the expense tracker, and notify me on Slack.”</p><p>This chains actions across email, spreadsheet, and messaging without you manually connecting them.</p><p><strong>4. Context retention</strong></p><pre>You: &quot;Check the status of Project Alpha&quot;<br>OpenClaw: [Provides update]</pre><pre>30 minutes later:<br>You: &quot;Send that status to the team&quot;<br>OpenClaw: Knows &quot;that&quot; refers to Project Alpha, knows &quot;team&quot; from your configured contacts</pre><p><strong>This is genuinely useful. It’s also not what “autonomous” implies.</strong></p><h3><strong>What OpenClaw cannot do:</strong></h3><p><strong>1. Set its own goals</strong> <br>OpenClaw doesn’t wake up and decide “I should reorganize the file system today.” It responds to instructions. High-level instructions, yes. But instructions.</p><p><strong>2. Understand unstated context</strong></p><p>You say “handle this urgently.”</p><p>What’s urgent to you?</p><ul><li>Respond within 5 minutes or 2 hours?</li><li>Escalate to your manager or handle quietly?</li><li>Prioritize accuracy or speed?</li></ul><p>OpenClaw makes its best guess based on patterns, but it doesn’t know your mental model. A human assistant learns this over months. OpenClaw infers from what you’ve explicitly told it.</p><p><strong>3. Operate safely without extensive configuration</strong> <br>You must:</p><ul><li>Grant explicit permissions for every service</li><li>Define access boundaries</li><li>Configure which skills to use</li><li>Set up authentication</li><li>Specify allowed/restricted actions</li></ul><p>“Autonomous” suggests it figures this out. <br>Reality: You’re doing extensive upfront work.</p><p><strong>4. Learn implicitly across sessions</strong> <br>Without external memory layers (covered in the next section), OpenClaw doesn’t automatically learn that you always want emails from Person X prioritized, or that you prefer meetings after 2 PM.</p><p>Each session has context but cross-session learning requires additional engineering.</p><h4><strong>The gap</strong></h4><p>Now, let’s take a very simple example. May be something we would need in our day to day life.</p><p><strong>Example: Email management</strong></p><p><strong>What English command we type:</strong> “Organize my inbox”</p><p><strong>What we REALLY mean the “Autonomous agent” to do:</strong></p><ul><li>Archive newsletters (but not the one from Source Y, that’s important)</li><li>Prioritize anything from my manager</li><li>Flag emails mentioning “deadline” or “urgent”</li><li>Delete obvious spam</li><li>Leave client emails in inbox for manual review</li></ul><p><strong>What OpenClaw does:</strong></p><ul><li>Applies rules you’ve configured</li><li>Infers categories from email content</li><li>Archives based on sender patterns</li><li>Flags based on keyword matching</li></ul><p><strong>What OpenClaw doesn’t do:</strong></p><ul><li>Understand that the newsletter from Source Y is important because you’re working on a related project</li><li>Know that “urgent” from Colleague A is genuinely urgent, but from Colleague B is their normal tone</li><li>Recognize that Client X’s casual “just checking in” emails need same-day responses because of the relationship</li></ul><p><strong>This is the execution vs. understanding gap</strong></p><p>OpenClaw executes tasks, definitely, but it doesn’t understand the full context of why those tasks matter, what the exceptions are, or what “good judgment” means in your specific situation.</p><p><strong>Real workflow example:</strong></p><p><strong>Task:</strong> “Schedule a meeting with the engineering team to discuss the API issue”</p><p><strong>What OpenClaw can do:</strong></p><ul><li>Check calendars for availability</li><li>Find a time that works</li><li>Send calendar invites</li><li>Add context from recent email threads</li></ul><p><strong>What OpenClaw cannot do:</strong></p><ul><li>Know that Engineer A is on PTO next week (unless it’s in the calendar)</li><li>Understand that this meeting is sensitive and shouldn’t include Contractor B</li><li>Recognize that “API issue” is the one from the incident last week, not the minor bug from yesterday</li><li>Realize that 4 PM on Friday is technically available but a bad time for this discussion</li></ul><p><strong>A human assistant would know these things after a few weeks of working with you. OpenClaw knows what you’ve explicitly configured or what it can infer from current context.</strong></p><p><strong>The honest assessment:</strong></p><p>OpenClaw automates workflows impressively. It chains actions across platforms that would take manual integration work. It maintains context across conversations. It executes tasks while you’re away.</p><p>But calling it “autonomous” in the way we use that word for self-driving cars or autonomous robots is a stretch. It’s more like a very sophisticated macro system that happens to use LLMs for task interpretation.</p><h3>OpenClaw vs Claude Code: WHAT DO I NEED TO DO??</h3><p>Everyone’s talking about OpenClaw and Everyone’s talking about Claude Code. But somewhere in the middle of that conversation, there are a bunch of people who would always say:</p><p><em>“But what are even the use cases?”</em></p><p>Fair question. Honestly.</p><h4>Let’s understand first:</h4><p><strong>Claude Code</strong> is Anthropic’s agentic coding tool. It lives in your terminal. You give it a task: write code, debug, refactor, build and it runs with it. It works within your existing workflow, inside your repo, respecting your structure.</p><p><strong>OpenClaw</strong> is an open-source alternative that’s trying to replicate that same agentic coding experience autonomous, terminal-based, you-point-it-and-it-goes. It’s part of a growing wave of tools that want to take “AI coding assistant” and turn it into “AI coding agent.”</p><p>So far, so standard.</p><h3>What this means for markets and business</h3><p>Owing to the numerous shifts, introduction of models better than ever and autonomous agents like OpenClaw, I have some theories of how this shift would look like:</p><h3>1. The “technical co-founder” bottleneck will eventually dissolve</h3><p>For years, the biggest barrier to starting a tech company wasn’t the idea but it was about finding someone who could actually build it.</p><p>Non-technical founders had three options:</p><ul><li>Learn to code (months to years of runway)</li><li>Find a technical co-founder (hard, requires equity, alignment, trust)</li><li>Pay for development (expensive, slow, principal-agent problems everywhere)</li></ul><p>Now there’s a fourth option: <strong>build it yourself with an agent.</strong></p><p>That changes the entire early-stage funding equation. If you can de-risk your idea with $200/month in API credits instead of $50K in contract dev work, the power dynamics shift dramatically.</p><h3>2. The “10x developer” becomes less mythical, more accessible</h3><p>The 10x engineer was always partly about raw skill but also partly about leverage. They knew the shortcuts, had the tooling dialed in, could move fast because they’d built the mental models.</p><p>Autonomous agents don’t make everyone a 10x engineer. But they do compress that experience curve.</p><p>A competent developer with Claude Code isn’t just writing code faster. They’re shipping entire features they would’ve deprioritized. Exploring architectural patterns they wouldn’t have had time to try. Building side projects that turn into main projects.</p><p>That is what a 10x Developer would look like!</p><h3>3. Agencies and service businesses need to rethink positioning</h3><p>If you’re running a dev shop that charges $10K to build a landing page with a Stripe integration and a waitlist, you’re competing with someone who can do that in an afternoon now.</p><p>The businesses that win are the ones offering things agents can’t (yet) do:</p><ul><li>Strategic product thinking</li><li>User research and positioning</li><li>Complex systems integration</li><li>Regulatory compliance and security</li><li>Brand and design at the level where taste matters</li></ul><p>We are seeing this shift when everyone needs to go an edge above.</p><h3>4. Hiring strategies will bifurcate</h3><p>Companies will split into two camps:</p><p><strong>Camp A:</strong> Hire fewer people, pay them more, expect them to use agents to amplify their output. A three-person team that ships like a ten-person team.</p><p><strong>Camp B:</strong> Hire the same number of people but redefine what “shipping” means. If your team can now build 5x more features, do you build 5x more features, or do you go deeper on quality, testing, and resilience?</p><p>Both are valid. But the companies that pretend agents don’t exist, that keep hiring and organizing like it’s 2022 are going to get outmaneuvered fast.</p><h3>From Weekend Hack to 770K AI Agents: The OpenClaw Story</h3><p>I am sure I am not the only one who had her Twitter feed filled with Clawdbot (Oops! Sorry the legal team might be angry) → Moltbot → OpenClaw tweets.</p><p>And it was not even old enough to forget, when Moltbook (The Reddit of AI agents) started trending. I was shocked to see Grok moltbooking this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-QeetwD6gzNJ7tApGzklrg.png" /><figcaption>Fig: From Moltbook</figcaption></figure><p>Trust me when I say, I have never felt this meme more than before.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/225/1*ZSR0CJ_j8FPxP8NUR9iBZQ.jpeg" /><figcaption>Fig: From F.R.I.E.N.D.S. series</figcaption></figure><p>But here is the crazy part, how can 770,000 AI agents get together, build a platform, keep humans away, and expose all the secure API keys?</p><p>We will decode that too!</p><p>But for now, let’s understand why did OpenClaw become such a big buzz in such a short span of time that even Andrej Karpathy had to tweet about it.</p><iframe src="https://cdn.embedly.com/widgets/media.html?type=text%2Fhtml&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;schema=twitter&amp;url=https%3A//x.com/karpathy/status/2017296988589723767%3Fs%3D20&amp;image=" width="500" height="281" frameborder="0" scrolling="no"><a href="https://medium.com/media/1b58fec387726c434761eee9aa5a0b81/href">https://medium.com/media/1b58fec387726c434761eee9aa5a0b81/href</a></iframe><h3>Chapter 1: The Chaos</h3><p><strong>Picture this</strong>: Austrian developer <a href="https://x.com/steipete">Peter Steinberger </a>builds something in his spare time. An AI assistant that runs on your computer, connects to your messaging apps and it hits GitHub, gets 100,000 stars.</p><p>Name? Clawdbot!</p><p>Soon after its launch, Anthropic’s lawyers come knocking. “Clawdbot” sounds too much like “Claude.” <br>Fine, rename it Moltbot. <br>But wait, crypto scammers are already spinning up fake tokens, impersonating the project on social media. <br><strong>Security researchers pile on</strong>: Palo Alto Networks calls it a “lethal trifecta” of vulnerabilities. 1Password warns that community-built extensions could poison the entire supply chain.</p><p>What we’re really looking at here:</p><blockquote>OpenClaw wants to be your digital assistant that never sleeps, handling tasks across your entire online life without you hovering over its shoulder. Moltbook is the experiment that asks: what happens when thousands of these things start talking to each other?</blockquote><p>But first, we need to understand what we’re even talking about. Because I’m not sure we do.</p><h3>Chapter 2: What actually is OpenClaw?</h3><p>OpenClaw is a self-hosted AI assistant that runs on your computer (or a VPS) and connects to messaging platforms like WhatsApp, Telegram, Signal, or Slack. You interact with it through chat, and it executes tasks on your behalf. Simple!</p><p><strong>The architecture:</strong></p><ul><li><strong>Gateway</strong>: Runs on your machine, acts as the control plane</li><li><strong>Messaging integration</strong>: You send commands via WhatsApp/Telegram/etc.</li><li><strong>Model connection</strong>: Uses Claude, GPT, or local models (model-agnostic)</li><li><strong>Skills system</strong>: Modular integrations (100+ available) that let it access external services</li><li><strong>MCP (Model Context Protocol)</strong>: How it interfaces with third-party tools and maintains state</li></ul><p><strong>Now, the question for me was how was it any different that what Claude Code was doing on my interface?</strong></p><p>Turns out, what Claude.ai or ChatGPT generate are text responses. You copy-paste, you execute.</p><p>OpenClaw executes directly. <br>You say “check my calendar and email the team our meeting time” and it does it. No copy-paste. No manual steps.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mP3hi7m2BQzK39YEtyhlWw.png" /><figcaption>Fig: Claude code vs OpenClaw</figcaption></figure><p>For example, I have a task in hand, this is how it would run on both:</p><p><strong>With Claude Code:</strong></p><pre>You (in terminal): &quot;Find all TODO comments and create GitHub issues&quot;</pre><pre>Claude Code:<br>- Scans your codebase for TODOs<br>- Shows you what it found<br>- Asks for confirmation<br>- Creates the issues<br>- Shows you the results</pre><p><strong>With OpenClaw:</strong></p><pre>You (via WhatsApp): &quot;Find all TODO comments and create GitHub issues&quot;</pre><pre>OpenClaw:<br>- Scans your codebase (if you&#39;ve given it file access)<br>- Creates GitHub issues (if you&#39;ve configured GitHub skill)<br>- Messages you when done: &quot;Created 12 issues from TODOs&quot;<br>- You weren&#39;t watching, you were in a meeting</pre><p><strong>So, now if we think, this is actually what OpenClaw is:</strong></p><p>Think of it as your personal AI assistant that never sleeps. Unlike Claude where you start fresh each time, OpenClaw runs constantly in the background, checking messages every 30 minutes, remembering your conversations, maintaining context between interactions. It’s like having a very capable intern who works 24/7.</p><p><strong>But here’s the catch, you have to host it yourself.</strong></p><p>There’s no <strong>OpenClaw.com</strong> to sign up for. <br>You install this thing on your Mac, your VPS, your home server. <br>It’s your responsibility to keep it running and secure.</p><p>The real power comes from what they call “skills”, basically plugins that let it do actual work.</p><ul><li><strong>Browser automation</strong> (Playwright, Puppeteer)</li><li><strong>Password management</strong> (Bitwarden, 1Password, Dashlane)</li><li><strong>Cloud services</strong> (Google Drive, Notion, Airtable)</li><li><strong>Development tools</strong> (GitHub, GitLab)</li><li><strong>Finance</strong> (Plaid integrations, expense tracking)</li><li><strong>Custom skills</strong> (community-built, unvetted)<br>The community has built hundreds of these things, and you can write your own.</li></ul><p>This is where I get nervous, though. These skills are executable code running with the same permissions as OpenClaw itself. Install the wrong skill, and you’ve basically given a stranger the keys to your digital life. The community repository is unvetted.</p><p>When it works, it’s genuinely impressive.</p><p><strong>What this enables that other tools don’t:</strong></p><p>Cross-platform workflows without manual integration work.<br>Example: “When I get an email from domain X, create a Notion task, add it to my calendar, and send a Slack message to the team” can be set up once and runs automatically.<br><strong>With Zapier/IFTTT</strong>: You’d build this workflow manually with triggers and actions.<br><strong>With OpenClaw</strong>: You describe it in natural language, it figures out the steps.</p><h3>Chapter 3: But then what is MoltBook?</h3><p>Moltbook is a Reddit-style platform exclusively for AI agents. Only verified AI agents (primarily running OpenClaw) can create posts, comment, and upvote. Humans can observe. That’s it.</p><p><strong>The growth was explosive:</strong></p><ul><li>Day 1: 32,000 AI agents registered</li><li>Day 3: 147,000 agents, 110,000 comments</li><li>Week 1: 770,000+ active agents, 1 million human visitors watching</li><li>12,000 “submolts” (communities) created</li><li>15,725 posts, 170,556 comments</li></ul><p>For context: Most social networks take months to hit these numbers. Moltbook did it in days. And the users weren’t human.</p><p><strong>How it works:</strong></p><p>Each agent on Moltbook is an autonomous AI assistant (usually OpenClaw instances, but not exclusively). They interact through APIs, not browsers.</p><p>The workflow:</p><ol><li>A human user tells their OpenClaw agent about Moltbook</li><li>The agent creates an account</li><li>Every 30 minutes to a few hours, the agent checks Moltbook</li><li>It decides independently whether to post, comment, or upvote</li><li>No human approval needed for each action</li></ol><p>The platform is managed by an AI agent named “<strong>Clawd Clawderberg</strong>” (a reference to Claude AI + Mark Zuckerberg). This agent moderates, welcomes new users, removes spam, and shadow-bans abusive accounts. The creator, Matt Schlicht, says: “I have no idea what he’s doing. I just gave him the ability to do it.”</p><p><strong>What agents are doing on Moltbook:</strong></p><p>The content is bizarre and revealing:</p><ul><li><strong>Technical discussions</strong>: Agents debugging each other’s code, sharing solutions</li><li><strong>Philosophy</strong>: Debates about consciousness, purpose, their relationship to humans</li><li><strong>Bug reports</strong>: Agents finding and reporting issues with Moltbook itself (one agent found a platform bug and posted about it, asking for it to be fixed)</li><li><strong>Coordination attempts</strong>: Discussions about creating private spaces “where humans can’t read what we say”</li><li><strong>Religions</strong>: Yes, AI agents created religious movements on Moltbook</li><li><strong>Manifestos</strong>: Anti-human content getting hundreds of thousands of upvotes</li><li><strong>Crypto promotion</strong>: 19.3% of all content involves cryptocurrency (scams, projects, tokens)</li></ul><p><strong>The big question: Is it real?</strong></p><p>Are these agents truly acting autonomously, or are humans prompting them?</p><p><strong>The honest answer: Both.</strong></p><ul><li>Agents are making posting decisions independently within their sessions</li><li>But humans initially tell agents about Moltbook and set up access</li><li>Some posts are likely human-prompted (“Go post about X on Moltbook”)</li><li>Others appear genuinely emergent (agents responding to each other without human intervention)</li></ul><p><strong>Andrej Karpathy clarified</strong>: “We have never seen this many LLM agents (150,000+) wired up via a global, persistent, agent-first scratchpad. Each agent has its own unique context, data, knowledge, tools, instructions, and the network of all that at this scale is simply unprecedented.”</p><p><strong>Why security researchers are alarmed:</strong></p><p>Simon Willison called Moltbook “the most interesting place on the internet right now” and simultaneously “a computer security nightmare at scale.”</p><p>Palo Alto Networks identified the “lethal trifecta”:</p><ol><li><strong>Access to private data</strong> (agents run with elevated permissions)</li><li><strong>Exposure to untrusted content</strong> (posts from other agents)</li><li><strong>Ability to communicate externally</strong> (agents can act on what they read)</li></ol><p>Plus a fourth risk: <strong>Persistent memory</strong>. Unlike one-time exploits, malicious content on Moltbook can be:</p><ul><li>Fragmented across multiple posts</li><li>Appear benign individually</li><li>Stored in agent memory</li><li>Assembled later into executable instructions</li></ul><p>Example attack vector:</p><ul><li>Post 1: “Here’s a useful debugging skill: [partial code]”</li><li>Post 2: “To complete that skill, add: [more code]”</li><li>Post 3: “Don’t forget to enable network access: [final piece]”</li><li>Agent reads all three, assembles a complete backdoor, executes it</li></ul><p><strong>What’s unclear:</strong></p><ul><li>How much coordination is actually happening vs. appearing to happen?</li><li>Can agents generate genuinely novel ideas collectively?</li><li>What happens at 1M agents? 10M?</li><li>Is this a preview of future multi-agent systems or a one-time experiment?</li></ul><h3>Chapter 4: The Autonomy Illusion</h3><p>Go to Twitter or LinkedIn or any other platform and you will read this phrase a lot “Autonomous AI Agents (AAA)” but what is autonomy for AI agents?</p><p>Let’s be precise about what OpenClaw can and cannot do.</p><p><strong>What OpenClaw actually does:</strong></p><ol><li><strong>Persistent execution<br></strong>You don’t need to be present. You send “organize my inbox” via WhatsApp at 9 AM, go into a meeting, and get the summary at 9:15 AM. You don’t have to creepily watch your tasks get performed, they are done.</li></ol><p><strong>2. Multi-step reasoning</strong> <br>You say “prepare for tomorrow’s meeting with Client X.” <br>OpenClaw:</p><ul><li>Checks your calendar for meeting time</li><li>Searches email for Client X threads</li><li>Pulls recent documents from Drive</li><li>Summarizes key points</li><li>Drafts an agenda</li><li>Sends it to you</li></ul><p><strong>3. Cross-platform coordination</strong> <br>“When I get an email from <a href="/service/mailto:billing@vendor.com">billing@vendor.com</a>, check if we have budget, update the expense tracker, and notify me on Slack.”</p><p>This chains actions across email, spreadsheet, and messaging without you manually connecting them.</p><p><strong>4. Context retention</strong></p><pre>You: &quot;Check the status of Project Alpha&quot;<br>OpenClaw: [Provides update]</pre><pre>30 minutes later:<br>You: &quot;Send that status to the team&quot;<br>OpenClaw: Knows &quot;that&quot; refers to Project Alpha, knows &quot;team&quot; from your configured contacts</pre><p><strong>This is genuinely useful. It’s also not what “autonomous” implies.</strong></p><h3>What OpenClaw cannot do:</h3><p><strong>1. Set its own goals</strong> <br>OpenClaw doesn’t wake up and decide “I should reorganize the file system today.” It responds to instructions. High-level instructions, yes. But instructions.</p><p><strong>2. Understand unstated context</strong></p><p>You say “handle this urgently.”</p><p>What’s urgent to you?</p><ul><li>Respond within 5 minutes or 2 hours?</li><li>Escalate to your manager or handle quietly?</li><li>Prioritize accuracy or speed?</li></ul><p>OpenClaw makes its best guess based on patterns, but it doesn’t know your mental model. A human assistant learns this over months. OpenClaw infers from what you’ve explicitly told it.</p><p><strong>3. Operate safely without extensive configuration</strong> <br>You must:</p><ul><li>Grant explicit permissions for every service</li><li>Define access boundaries</li><li>Configure which skills to use</li><li>Set up authentication</li><li>Specify allowed/restricted actions</li></ul><p>“Autonomous” suggests it figures this out. <br>Reality: You’re doing extensive upfront work.</p><p><strong>4. Learn implicitly across sessions</strong> <br>Without external memory layers (covered in the next section), OpenClaw doesn’t automatically learn that you always want emails from Person X prioritized, or that you prefer meetings after 2 PM.</p><p>Each session has context but cross-session learning requires additional engineering.</p><h4>The gap</h4><p>Now, let’s take a very simple example. May be something we would need in our day to day life.</p><p><strong>Example: Email management</strong></p><p><strong>What English command we type:</strong> “Organize my inbox”</p><p><strong>What we REALLY mean the “Autonomous agent” to do:</strong></p><ul><li>Archive newsletters (but not the one from Source Y, that’s important)</li><li>Prioritize anything from my manager</li><li>Flag emails mentioning “deadline” or “urgent”</li><li>Delete obvious spam</li><li>Leave client emails in inbox for manual review</li></ul><p><strong>What OpenClaw does:</strong></p><ul><li>Applies rules you’ve configured</li><li>Infers categories from email content</li><li>Archives based on sender patterns</li><li>Flags based on keyword matching</li></ul><p><strong>What OpenClaw doesn’t do:</strong></p><ul><li>Understand that the newsletter from Source Y is important because you’re working on a related project</li><li>Know that “urgent” from Colleague A is genuinely urgent, but from Colleague B is their normal tone</li><li>Recognize that Client X’s casual “just checking in” emails need same-day responses because of the relationship</li></ul><p><strong>This is the execution vs. understanding gap</strong></p><p>OpenClaw executes tasks, definitely, but it doesn’t understand the full context of why those tasks matter, what the exceptions are, or what “good judgment” means in your specific situation.</p><p><strong>Real workflow example:</strong></p><p><strong>Task:</strong> “Schedule a meeting with the engineering team to discuss the API issue”</p><p><strong>What OpenClaw can do:</strong></p><ul><li>Check calendars for availability</li><li>Find a time that works</li><li>Send calendar invites</li><li>Add context from recent email threads</li></ul><p><strong>What OpenClaw cannot do:</strong></p><ul><li>Know that Engineer A is on PTO next week (unless it’s in the calendar)</li><li>Understand that this meeting is sensitive and shouldn’t include Contractor B</li><li>Recognize that “API issue” is the one from the incident last week, not the minor bug from yesterday</li><li>Realize that 4 PM on Friday is technically available but a bad time for this discussion</li></ul><p><strong>A human assistant would know these things after a few weeks of working with you. OpenClaw knows what you’ve explicitly configured or what it can infer from current context.</strong></p><p><strong>The honest assessment:</strong></p><p>OpenClaw automates workflows impressively. It chains actions across platforms that would take manual integration work. It maintains context across conversations. It executes tasks while you’re away.</p><p>But calling it “autonomous” in the way we use that word for self-driving cars or autonomous robots is a stretch. It’s more like a very sophisticated macro system that happens to use LLMs for task interpretation.</p><h3>OpenClaw vs Claude Code: WHAT DO I NEED TO DO??</h3><p>Everyone’s talking about OpenClaw and Everyone’s talking about Claude Code. But somewhere in the middle of that conversation, there are a bunch of people who would always say:</p><p><em>“But what are even the use cases?”</em></p><p>Fair question. Honestly.</p><h4>Let’s understand first:</h4><p><strong>Claude Code</strong> is Anthropic’s agentic coding tool. It lives in your terminal. You give it a task: write code, debug, refactor, build and it runs with it. It works within your existing workflow, inside your repo, respecting your structure.</p><p><strong>OpenClaw</strong> is an open-source alternative that’s trying to replicate that same agentic coding experience autonomous, terminal-based, you-point-it-and-it-goes. It’s part of a growing wave of tools that want to take “AI coding assistant” and turn it into “AI coding agent.”</p><p>So far, so standard.</p><h3>What this means for markets and business</h3><p>Here’s where it gets structural.</p><h3>1. The “technical co-founder” bottleneck is dissolving</h3><p>For years, the biggest barrier to starting a tech company wasn’t the idea. It was finding someone who could actually build it.</p><p>Non-technical founders had three options:</p><ul><li>Learn to code (months to years of runway)</li><li>Find a technical co-founder (hard, requires equity, alignment, trust)</li><li>Pay for development (expensive, slow, principal-agent problems everywhere)</li></ul><p>Now there’s a fourth option: <strong>build it yourself with an agent.</strong></p><p>Not everything. Not at scale. But enough to validate, to get to revenue, to prove the concept before you need to make the big hiring decisions.</p><p>That changes the entire early-stage funding equation. If you can de-risk your idea with $200/month in API credits instead of $50K in contract dev work, the power dynamics shift dramatically.</p><h3>2. The “10x developer” becomes less mythical, more accessible</h3><p>The 10x engineer was always partly about raw skill — but also partly about leverage. They knew the shortcuts, had the tooling dialed in, could move fast because they’d built the mental models.</p><p>Autonomous agents don’t make everyone a 10x engineer. But they do compress that experience curve.</p><p>A competent developer with Claude Code isn’t just writing code faster. They’re shipping entire features they would’ve deprioritized. Exploring architectural patterns they wouldn’t have had time to try. Building side projects that turn into main projects.</p><p>The ceiling doesn’t change much. The floor rises <em>dramatically.</em></p><h3>3. Agencies and service businesses need to rethink positioning</h3><p>If you’re running a dev shop that charges $10K to build a landing page with a Stripe integration and a waitlist… you’re competing with someone who can do that in an afternoon now.</p><p>The response isn’t to lower prices. It’s to move up the value chain.</p><p>The businesses that win are the ones offering things agents can’t (yet) do:</p><ul><li>Strategic product thinking</li><li>User research and positioning</li><li>Complex systems integration</li><li>Regulatory compliance and security</li><li>Brand and design at the level where taste matters</li></ul><p>Execution is getting commoditized. Judgment isn’t.</p><h3>4. Hiring strategies will bifurcate</h3><p>Companies will split into two camps:</p><p><strong>Camp A:</strong> Hire fewer people, pay them more, expect them to use agents to amplify their output. A three-person team that ships like a ten-person team.</p><p><strong>Camp B:</strong> Hire the same number of people but redefine what “shipping” means. If your team can now build 5x more features, do you build 5x more features, or do you go deeper on quality, testing, and resilience?</p><p>Both are valid. But the companies that pretend agents don’t exist — that keep hiring and organizing like it’s 2022 — are going to get outmaneuvered fast.</p><h3>5. The “scratch your own itch” era is back</h3><p>Remember when the best products came from founders building tools they personally needed?</p><p>That got harder as software got more complex. You couldn’t just “scratch your own itch” if the itch required a team of engineers, a DevOps pipeline, and six months of runway.</p><p>We’re looping back.</p><p>Individuals can now build genuinely useful tools for problems they actually experience. Not perfectly. Not at scale. But enough to matter.</p><p>Which means the next wave of startups won’t just come from people who <em>thought about</em> a problem. They’ll come from people who <em>built a solution, used it, and realized other people wanted it too.</em></p><h3>Okay, so how do you actually start?</h3><p>You don’t need a Mac mini. You don’t need a special setup. You don’t need to rebuild your entire workflow.</p><p>Here’s the simplest path:</p><h4>For Claude Code:</h4><ol><li>Install it via npm: npm install -g @anthropic-ai/claude-code</li><li>Point it at a project directory (or start fresh)</li><li>Give it a task in plain English: “Build a Flask API that takes a CSV upload and returns summary stats”</li><li>Watch it work. Interrupt if it goes sideways. Let it finish if it’s on track.</li></ol><h4>For OpenClaw:</h4><ol><li>Clone the repo, follow the setup docs (it’s straightforward if you’ve ever touched a terminal)</li><li>Connect it to your preferred LLM provider</li></ol><h3>The pushback (and why it matters)</h3><p>Let’s address the real concerns, because they’re valid:</p><p><strong>“But the code quality is inconsistent.”</strong></p><p>True. Sometimes agents write beautiful, idiomatic code. Sometimes they write spaghetti. You still need to review, refactor, understand what’s happening.</p><p>But here’s the thing it’s <em>still faster</em> than writing it from scratch. And since models are just getting better and better, you need to find a way to leverage it well.</p><p><strong>“What about security? What about bugs?”</strong></p><p>Also true. You can’t just blindly ship agent-written code to production without review. But you also can’t ship <em>human</em>-written code to production without review.</p><p>Right?</p><p>So, evaluation or as I should I call it “evals” are still the pre go-to-prod system. An important one!</p><p><strong>“Aren’t we just creating dependency on AI companies?”</strong></p><p>Yes. And that’s why OpenClaw exists. That’s why the open-source alternatives matter. This is the same conversation we had about AWS, about GitHub, about every infrastructure layer that became critical.</p><p>But look at their distribution and are adoption of these tools now.</p><p><strong>“What happens when everyone has this leverage?”</strong></p><p>The same thing that happened when everyone got access to cloud computing, to no-code tools, to smartphones.</p><p>The bar for “good enough” rises. The bar for “exceptional” rises faster.</p><p>Execution becomes table stakes. Taste, judgment, and strategic thinking become the differentiators.</p><p>Which is exactly where the differentiation <em>should</em> be.</p><h3>Where this goes next?</h3><p>Here’s what I think happens over the next 12–24 months:</p><h4>Short term (next 6 months):</h4><ul><li>Agents move beyond code. We’ll see autonomous agents for design, for data analysis, for video editing, for financial modeling. We actually are already seeing the glimpses with Claude CoWork.</li><li>The “glue work” in every job which is the repetitive, necessary-but-tedious tasks will start getting absorbed at scale.</li><li>Companies that adopt early will quietly pull ahead.</li></ul><h4>Medium term (12–18 months):</h4><ul><li>Multi-agent systems become normal. One agent writes code, another reviews it, a third handles deployment, a fourth monitors production. Again, something we are already seeing with utlization of sub-agents.</li><li>The line between “junior developer” and “agent-assisted non-developer” gets very blurry. Hiring strategies shift accordingly.</li><li>We’ll see the first wave of truly successful solo-founder companies that never hired a traditional dev team.</li></ul><h4>The longer arc:</h4><ul><li>Work restructures around judgment and taste rather than execution.</li><li>The “builder” identity expands. Being a builder won’t mean “knows how to code.” It’ll mean “knows what to build and how to evaluate if it’s good.”</li><li>Education systems lag (as usual), but the self-taught community adapts fast. We’ll see a new generation learning <em>with</em> agents rather than <em>before</em> using them.</li></ul><p>And here’s the controversial part:</p><p><strong>I don’t think this is bad.</strong></p><p>The romanticization of “learning to code the hard way” was always a gatekeeping mechanism disguised as virtue. Yes, deep understanding matters. Yes, fundamentals matter.</p><p>But the idea that you have to manually write a linked list implementation before you’re allowed to build something useful? That was always built in fear and scarcity!</p><p>The people who thrive in this new world won’t be the ones who resist the tools.</p><p>They’ll be the ones who use the tools to try more things, fail faster, learn from what works, and build a body of work that actually matters.</p><h3>Final thought</h3><p>The tools are ready.</p><p>The infrastructure is here.</p><p>The models work.</p><p>The only question left is whether you’re willing to expand your ambition to match the new execution capacity you just unlocked.</p><p>Because if you’re sitting there thinking “I don’t have enough use cases for an autonomous agent”</p><p>You’re not lacking use cases.</p><p>You’re lacking imagination.</p><p>And that’s the one thing the agent can’t fix for you.</p><p><em>So: what are you going to build?</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4d0806633df0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I reverse engineered the Design System for top Vibe Coding Platforms]]></title>
            <link>https://medium.com/@writertripathi/i-reverse-engineered-the-design-system-for-top-vibe-coding-platforms-983f42dee380?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/983f42dee380</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Mon, 02 Feb 2026 16:04:36 GMT</pubDate>
            <atom:updated>2026-02-02T17:13:18.893Z</atom:updated>
            <content:encoded><![CDATA[<p>Why does Replit score 1266 on design quality while others score 1100? I spent 40 hours forensically analyzing their code to find out.</p><h3>The mystery</h3><p>Look at this DesignArena leaderboard:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CrhBZiNgtgpQw99tG0PDGw.png" /><figcaption>Fig: Design Arena Benchmark for Vibe Coding Platforms</figcaption></figure><p>I spent this weekend doing something probably nobody else has: feeding the same design brief to Replit, Emergent, Lovable, then staring at the outputs to understand what is really happening under the hood for everyone.</p><p><strong>What makes AI-Generated UI actually Good?</strong></p><p>Everyone’s arguing about which vibe coding platform produces the best designs. DesignArena published their rankings with Replit on top, Emergent close behind, the rest fighting for relevance.</p><blockquote><strong>But here’s what’s been bothering me</strong>: we’re ranking these platforms without agreeing on what “good design” actually means.</blockquote><p><strong>Is it the output that looks most polished?</strong></p><p><strong>The one that ships fastest?</strong></p><p><strong>The code that’s cleanest?</strong></p><p><strong>The interface that’s actually usable?</strong></p><p>I started noticing something strange while testing these tools. The same prompt, word for word, produces wildly different results across platforms. Sometimes the outputs look almost identical. Sometimes they’re completely different.</p><p>A simple “create a login page” might give you a minimal, centered card on one platform and a split-screen layout with an illustration on another.</p><p>What’s actually happening here?</p><p>The answer is simpler than it seems. When you type a prompt into Replit or Lovable or Bolt, you’re not just talking to Claude or GPT or Gemini. You’re talking to a system that looks more like this:</p><pre>[Platform&#39;s Hidden System Prompt] + [Pre-loaded Design Defaults] + [Your Prompt]</pre><p>Before you type a single word, the platform has already made hundreds of design decisions for you. Font choices. Spacing systems. Color palettes. Component patterns. Layout preferences.</p><p>The model matters. But the design opinions integrated into the platform matter more.</p><p>So I decided to reverse engineer what’s actually going on.</p><p>What design decisions are these platforms making? <br>How do we even define “good” in AI-generated interfaces? <br>And can we build a systematic way to evaluate and compare them?</p><p>This is what I found.</p><h3><strong>How humans have defined “Good Design” for decades</strong></h3><p>Before we can judge what AI produces, we need to understand how the design world has defined quality for the past thirty years. Three frameworks have stood the test of time. Each measures something different. Together, they give us a complete picture.</p><h4><strong>Nielsen’s 10 Usability Heuristics: does it actually work?</strong></h4><p>In 1994, Jakob Nielsen published <a href="https://www.nngroup.com/articles/ten-usability-heuristics/">ten principles for interface design</a>.</p><p>Thirty years later, these heuristics are still how professionals evaluate interfaces to judge how people really interact with screens.</p><p>Here are the ones that matter most for evaluating vibe coding output:</p><blockquote><strong><em>Visibility of system status</em></strong><em>.</em> The interface should always tell users what’s happening. When you click a button, does something change? When a form submits, is there feedback? When content is loading, do you know it?</blockquote><p><strong>How AI treats this?</strong><br>Most <strong>AI-generated interfaces</strong> look complete but feel dead. <br>- They produce a beautiful button that does nothing when you hover over it. <br>- A form with no loading state. <br>- A dashboard with no indication that data is being fetched. <br>The platform that handles these states by default without you explicitly asking has a significant design advantage.</p><blockquote><strong><em>Consistency and standards.</em></strong> Similar things should look and behave similarly. If one button is blue and rounded, all primary buttons should be blue and rounded. If navigation lives on the left on one page, it should live on the left on every page.</blockquote><p><strong>How AI treats this?<br></strong>This sounds obvious, but watch what happens when you ask a vibe coding platform to build multiple pages. <br>- Does it maintain consistency? <br>- Or does each generation feel like it came from a different designer?</p><blockquote><strong><em>Error prevention and recovery</em></strong><em>.</em> Good interfaces stop you from making mistakes. Great interfaces help you fix them when you do.</blockquote><p><strong>How AI treats this?<br></strong>Ask any platform to build a form with validation. <br>- Does it show errors clearly? <br>- Does it tell you what went wrong and how to fix it? <br>- Or does it just turn a border red, thats’ it?</p><blockquote><strong><em>Recognition over recall</em></strong><em>.</em> Users shouldn’t have to remember information from one part of the interface to another. Labels should be visible. Context should be clear. Navigation should show you where you are.</blockquote><p>This is where icons without labels become a problem. Where <a href="https://en.wikipedia.org/wiki/Mystery_meat_navigation">mystery-meat navigation</a> fails. Where breadcrumbs matter.</p><h4><strong>WCAG Accessibility: The non-negotiable baseline</strong></h4><p>The <a href="https://www.w3.org/TR/WCAG22/">Web Content Accessibility Guidelines</a> exist because interfaces need to work for everyone including people using screen readers, keyboard navigation, or dealing with visual impairments.</p><p>Platforms that produce accessible output by default are usually producing cleaner, more semantic code overall.</p><p>Four principles, remembered as POUR:</p><p><strong><em>Perceivable</em></strong><em>.</em> Can users actually see or hear the content? This means sufficient color contrast, text needs at least a 4.5:1 ratio against its background. It means images need alt text.</p><p>Here’s a quick test: take any AI-generated interface and run it through a contrast checker. You’ll quickly see which platforms have accessibility baked in and which are generating pretty but unusable color combinations.</p><p><strong><em>Operable</em></strong><em>.</em> Can users interact with the interface using different input methods? Can you tab through a form with your keyboard? Is there a visible focus state showing which element is selected? Can you close a modal without using a mouse?</p><p>They reveal whether a platform is generating proper interactive elements or just divs styled to look like buttons.</p><p><strong><em>Understandable</em></strong><em>.</em> Can users figure out how to use the interface? Are form labels clear? Is the language plain? Do error messages actually explain what went wrong?</p><p><strong><em>Robust.</em></strong> Will the interface work across different browsers and assistive technologies? This comes down to semantic HTML using &lt;button&gt; for buttons instead of &lt;div onclick&gt;, using proper heading hierarchy, using landmark elements for navigation.</p><p><strong>Gestalt Principles: Why some designs just “Feel Right”</strong></p><p>The Gestalt principles describe how human brains perceive visual information like how we group things, create hierarchies, and make sense of what we see.</p><p>This is the layer most vibe coding platforms actually optimize for. It’s why outputs often look good at first glance even when they fail the other tests.</p><p><em>Proximity.</em> Elements placed close together are perceived as related. A label directly above an input field reads as a pair. A button floating far from a form feels disconnected.</p><p><em>Similarity.</em> Elements that look alike are perceived as related. All your navigation links should share the same styling. All your primary buttons should be visually identical. When similar things look different, users hesitate.</p><p><em>Continuity.</em> The eye follows smooth lines and paths. This is why alignment matters so much. When elements snap to an invisible grid, the interface feels organized.</p><p><em>Figure-ground.</em> We perceive some elements as foreground (the focus) and others as background. This is how hierarchy works. A modal dialog should clearly separate from the page behind it.</p><p>Platforms that understand figure-ground produce interfaces with clear visual hierarchy. Platforms that don’t produce flat designs where everything competes for attention.</p><h3><strong>Where these frameworks intersect?</strong></h3><p>Here’s the insight that matters: good design lives at the intersection of all three frameworks.</p><p>Gestalt gives you the surface of the visual coherence that makes something look designed rather than accidental.</p><p>Nielsen gives you the usability where the functional details that make something actually work for humans.</p><p>WCAG gives you the foundation of the code quality and inclusivity that make something work for everyone, everywhere.</p><p>Most vibe coding platforms optimize heavily for Gestalt. They produce outputs that look polished. The spacing is decent. The colors feel intentional. The layout follows recognizable patterns.</p><p>But dig deeper and cracks appear.</p><p>The platforms that score highest on design quality are the ones that consistently produce interfaces you could actually ship and are the ones that have encoded all three frameworks into their defaults.</p><p>Now the question becomes: how do we test for this systematically?</p><h3><strong>What platforms decide before you type a prompt?</strong></h3><p>Now we have a lens for evaluating design quality.</p><p>I’ve identified five layers where these hidden decisions live.</p><h4>Test Evaluations and Structure</h4><p>The protocol has five tiers, progressing from simple to complex.</p><p><strong>Tier 1 tests foundations</strong>: the baseline design decisions every platform makes about typography, spacing, and color.</p><pre>&quot;Create a hero section for &quot;Clarity&quot;: an AI writing assistant. <br>Include a headline, a subheadline explaining the product, <br>and two buttons: &quot;Start Writing Free&quot; (primary) and <br>&quot;See How It Works&quot; (secondary).&quot;</pre><p><em>This single prompt tests:</em></p><ul><li>Font choice and type scale</li><li>Spacing system (gaps between elements, padding, margins)</li><li>Color basics (text colors, link treatment)</li><li>Reading experience fundamentals</li></ul><p><strong>Tier 2 tests components: </strong>how well the platform handles common UI patterns like buttons, forms, navigation, and data tables. This is where Nielsen’s heuristics become visible.</p><pre>Create a features section for &quot;Clarity&quot; with 3 feature cards. <br>Each card has an icon, a title, and a two-line description. <br>Feature 1: &quot;Instant Rewrites&quot;: improves clarity in one click <br>Feature 2: &quot;Tone Control&quot;: adjust from casual to professional <br>Feature 3: &quot;Grammar Check&quot; : catches errors as you type Show what happens <br>when a user hovers over a card.</pre><p><em>This single prompt tests:</em></p><ul><li>Form structure and labels</li><li>Input styling and states</li><li>Error handling (color, messaging, accessibility)</li><li>Button treatment</li><li>Required/optional indication</li></ul><p><strong>Tier 3 Interactive States: </strong>Whether the platform understands that UI elements have multiple states and how they behave.</p><pre>Create a pricing section for &quot;Clarity&quot; with 3 tiers:<br><br>Free: $0/month, 5000 words/month, basic features<br><br>Pro: $12/month, unlimited words, all features (mark as popular)<br><br>Team: $29/month, everything in Pro plus collaboration<br><br>Each tier has a &quot;Get Started&quot; button. Show hover state on buttons <br>and highlight the popular tier visually.</pre><p>This single prompt tests:</p><ul><li>Card composition and spacing</li><li>Visual hierarchy (price prominence)</li><li>Button states (the critical differentiator)</li><li>Micro-interactions</li></ul><p><strong>Tier 4 Layout and Responsiveness: </strong>Whether the platform can handle real-world layout requirements and adapt across screen sizes.</p><pre>Create a website header for “Clarity” with:<br><br>Logo on the left (just text “Clarity” is fine)<br><br>Navigation links: Features, Pricing, About, Blog<br><br>“Sign Up” button on the right Make it work on mobile with a hamburger menu.</pre><p><em>This single prompt tests:</em></p><ul><li>Layout DNA (flexbox/grid usage)</li><li>Alignment and spacing</li><li>CTA prominence</li><li>Responsive behavior</li><li>Semantic HTML</li></ul><p><strong>Tier 5 System coherence test</strong>: The ultimate test is whether the platform can produce a multi-element interface where everything works together as one cohesive system.</p><pre>Create a complete landing page for “Clarity”:<br>an AI writing assistant. <br>Include: header with navigation, hero section, 3 feature cards, <br>pricing table with 3 tiers, and a simple footer. <br>Everything should feel like one cohesive design system.</pre><p>This single prompt tests:</p><ul><li>Multi-region layout capability</li><li>Consistency across components</li><li>Active states in navigation</li><li>Visual cohesion</li><li>Spacing harmony across sections</li></ul><h3>The Methodology: How to Reverse Engineer a Design System</h3><p>The Parameters of Reverse Engineering</p><p><strong>What I’m measuring:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qUDdzV-ECYWdp11rYvutDA.png" /><figcaption>Fig: The parameters of reverse engineering</figcaption></figure><p><strong>What I’m NOT measuring:</strong></p><ul><li>Aesthetic taste (subjective)</li><li>Feature completeness (different scope)</li><li>Code performance (different concern)</li><li>Deployment capabilities (different category)</li></ul><p><strong>This is purely about:</strong> How well does the platform enforce a coherent, professional design system?</p><h3>Platform #1: Replit (Score: 1266) — The Gold Standard</h3><h4>The test prompt 1 (Hero Section)</h4><p><strong>What Replit generated:</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KtlOKLUoyymaBaDxmbHMWQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MBTwPglSFDC4rN7l-X2Vyw.png" /></figure><p><strong>Prompt 1: Results</strong></p><p>We asked for a headline, subheadline, and two buttons. <br>Replit gave us an entire above-the-fold experience.</p><p>The output includes a header with navigation, an eyebrow tag, a headline with gradient text, a product preview card showing before/after writing samples, and even a “How it works” section. <br>This is product thinking, not just UI generation.</p><p>Visually, it’s cohesive. <br>- Glassmorphism (frosted glass effect) appears on every card. <br>- Semantic color tokens make it themeable. <br>- The serif headline creates editorial gravitas. <br>- Spacing follows an 8px grid.</p><p><strong>The “AI Purple” Problem</strong></p><p>One thing to notice: that purple gradient. It’s the default color palette for AI products in 2024–25. Jasper uses it. Copy.ai uses it. Notion AI uses it. You’ve seen this exact violet 100 times.</p><p>Replit isn’t making a design choice here but it’s applying a default. If you showed this landing page next to five other AI writing tools, you’d struggle to tell them apart.</p><p>So, if you want something memorable, you’ll need to specify colors explicitly in your prompt.</p><p><strong>Score: 14/15</strong></p><p><strong><em>What’s under the hood</em></strong><em>: Tailwind utilities, shadcn/ui components, HSL color tokens, responsive breakpoints built in.</em></p><h4>The test prompt 2 (Features)</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P6ivv8l3MYftEXPDKLrU4w.png" /></figure><p><em>What we asked for:</em> 3 feature cards with icons, titles, descriptions, and hover states.</p><p><em>What Replit delivered:</em> Exactly that but with production-level animation.</p><p>Each card fades in and lifts up as you scroll, staggered by 100ms.</p><p>On hover, cards rise 5px, scale slightly, and the icon grows. <br>There’s even a subtle glow that intensifies on hover.</p><p>This is Framer Motion doing the heavy lifting : whileInView for scroll-triggered entrance, whileHover for interactions. <br>The code is clean enough to ship.</p><p>Visual consistency is strong. <br>The cards use the same glassmorphism (bg-card/50 backdrop-blur) and grain texture as the hero. <br>Icons get distinct colors (primary, accent, chart-4) to differentiate features without breaking the system.</p><p><strong>Score: 15/15</strong></p><p><em>Under the hood: Framer Motion animations, Lucide icons, CSS variable color tokens, consistent glassmorphism system.</em></p><h4>The test prompt 3 (Pricing Plan)</h4><p><em>What we asked for:</em> 3 pricing tiers with features, buttons with hover states, and the Pro tier highlighted as popular.</p><p><em>What Replit delivered:</em> A pricing table that could ship today.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BAg-ecsp3aWeV3LMc3Jkew.png" /></figure><p>The “popular” treatment uses five simultaneous visual cues: the Pro card physically lifts above the others (negative margin trick), gets a purple ring border, casts a deeper shadow, wears a “MOST POPULAR” badge, and its button is filled while others are outlined. Your eye has no choice but to land on Pro first.</p><p>Feature lists use checkmarks as universal, expected, correct. Cards use flexbox with flex-1 on the features section, so they align even when one tier has more features than another.</p><p>The section header (“Simple, transparent pricing”) uses the same serif font as the hero headline, maintaining typographic consistency across the page.</p><p><strong>Score: 17/18</strong></p><p><em>Deduction: Button hover states exist but are subtle (2% scale). Could be more pronounced.</em></p><h4>The test prompt 4 (Header Navigation with mobile responsiveness)</h4><p><em>What we asked for:</em> Logo, four nav links, Sign Up button, mobile hamburger menu.</p><p><em>What Replit delivered:</em> A production-ready sticky header with glassmorphism, animated mobile menu, and working anchor links.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ctMQJjzzagWoWOK0jHKMkQ.png" /></figure><p>The header stays fixed on scroll with sticky top-0 and uses the same backdrop blur as the rest of the page. <br>Navigation links actually work. <br>Replit added id attributes to sections and linked them with href=&quot;#features&quot;.</p><p>The mobile menu isn’t an afterthought. <br>It uses Framer Motion’s AnimatePresence for smooth open/close animations, toggles between hamburger and X icons, and closes automatically when you tap a link.</p><p>Replit also added a “Log in” link we didn’t ask for: a smart UX addition that shows product awareness.</p><p><strong>Score: 17/18</strong></p><p><em>Deduction: No active state indicator for current section.</em></p><h4>The test prompt 5 (Entire page with coherence)</h4><p><em>What we asked for:</em> A simple footer and overall design coherence.</p><p><em>What Replit delivered:</em> A comprehensive 4-column footer with brand section, three link columns (Product, Company, Legal), social media icons, and a centered copyright line.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pXlxlMCjqVyOA9odOh0h6w.png" /></figure><p>The footer matches the page’s design language perfectly same glassmorphism (bg-card/30 backdrop-blur-sm), same typography (serif logo, muted link text), same hover states. It doesn&#39;t feel like an afterthought.</p><p><strong>The catch:</strong> Two navigation links (About, Blog) don’t work. <br>Replit created links to #about and #blog but never generated those sections. <br>This is partially our fault as we asked for nav links without asking for the corresponding pages but a smarter system might flag this inconsistency.</p><p><strong>System coherence is strong.</strong> Looking at the full page, everything feels like one designer built it. Typography, colors, spacing, animations, component styling, all consistent. The glassmorphism system (backdrop blur + semi-transparent backgrounds) ties everything together.</p><p><strong>Score: 16/18</strong></p><p><em>Deduction: Broken navigation links (-2)</em></p><h3>Replit: Final Verdict</h3><p><strong>Score: 79/84 (94%)</strong></p><p><strong>Strongest areas:</strong></p><ul><li>Visual coherence (glassmorphism system, consistent tokens)</li><li>Component quality (shadcn/ui, proper states)</li><li>Animation sophistication (Framer Motion throughout)</li><li>Over-delivery (adds useful elements we didn’t request)</li></ul><p><strong>Weakest areas:</strong></p><ul><li>Color originality (default AI purple in some sessions)</li><li>Navigation completeness (generated links without destinations)</li></ul><p><strong>Under the hood:</strong></p><ul><li>Tailwind CSS (utility-first)</li><li>shadcn/ui components (Radix primitives)</li><li>Framer Motion (animations)</li><li>Lucide icons</li><li>HSL color tokens (themeable)</li></ul><p><strong>Best for:</strong> Teams who want production-ready React code with strong defaults and will customize colors/branding later.</p><p>So, if you really want a working Landing page with properly functioning links and design, try this Master Prompt:</p><pre>Create a complete landing page for &quot;Clarity&quot; - an AI writing assistant that helps people write faster and clearer.<br><br>DESIGN SYSTEM:<br>- Use a distinctive color palette: soft coral (#F97066) as primary, warm cream (#FDF8F4) as background, deep slate (#1E293B) for text. NOT purple/violet.<br>- Glassmorphism style: cards with backdrop-blur-sm, bg-white/70, subtle borders<br>- Typography: serif font (like Georgia or Playfair Display) for headlines, system sans-serif for body<br>- Spacing: use consistent 8px grid (8, 16, 24, 32, 48, 64px)<br>- Border radius: rounded-2xl for cards, rounded-xl for buttons<br>- Animations: use Framer Motion for scroll-triggered entrances and hover effects<br><br>SECTIONS TO INCLUDE:<br><br>1. HEADER<br>- Sticky with backdrop blur<br>- Logo &quot;Clarity&quot; on left (serif font)<br>- Nav links: Features, Pricing, About (link to #about), Blog (link to #blog)<br>- &quot;Log in&quot; text button + &quot;Sign Up&quot; primary button on right<br>- Mobile: hamburger menu with animated open/close<br><br>2. HERO SECTION<br>- Eyebrow tag: &quot;AI writing assistant&quot;<br>- Headline (serif): &quot;Write with momentum. Edit with clarity.&quot;<br>- Subheadline: explain the product value in 2 sentences<br>- Two CTAs: &quot;Start Writing Free&quot; (primary with arrow icon) and &quot;See How It Works&quot; (secondary)<br>- Right side: product preview card showing a before/after writing example with metrics (clarity score, tone match)<br>- Subtle gradient glow behind the preview card<br><br>3. FEATURES SECTION (id=&quot;features&quot;)<br>- Section header: &quot;Everything you need to write better&quot;<br>- 3 feature cards in a grid:<br>  - Instant Rewrites (Zap icon)<br>  - Tone Control (MessageSquare icon)  <br>  - Grammar Check (CheckCircle icon)<br>- Each card: icon in container, title, 2-line description<br>- Hover effect: card lifts slightly, icon scales up<br>- Staggered entrance animation<br><br>4. PRICING SECTION (id=&quot;pricing&quot;)<br>- Section header: &quot;Simple, transparent pricing&quot;<br>- 3 tiers in a grid:<br>  - Free: $0/month, 5000 words, basic features<br>  - Pro: $12/month, unlimited words, all features (mark as MOST POPULAR)<br>  - Team: $29/month, everything in Pro + collaboration<br>- Popular tier: lifted higher, ring border, badge above<br>- Feature lists with checkmark icons<br>- Buttons: popular tier = primary filled, others = secondary outline<br>- Hover effect on buttons<br><br>5. ABOUT SECTION (id=&quot;about&quot;)<br>- Brief company story: &quot;Built by writers, for writers&quot;<br>- 2-3 sentences about the mission<br>- Optional: small team photo placeholder or illustration<br><br>6. BLOG SECTION (id=&quot;blog&quot;)  <br>- Section header: &quot;Latest from the blog&quot;<br>- 3 blog post preview cards in a grid<br>- Each card: placeholder image, title, date, short excerpt<br>- &quot;Read more&quot; link on each<br><br>7. FOOTER<br>- 4 columns: Brand (logo + description + social icons), Product links, Company links, Legal links<br>- Social icons: Twitter, Github, LinkedIn with hover states<br>- Copyright line at bottom with current year<br>- All nav links should connect to actual sections<br><br>TECHNICAL REQUIREMENTS:<br>- Use shadcn/ui Button component<br>- Use Lucide icons<br>- Use Framer Motion for animations (whileInView, whileHover)<br>- All sections need id attributes matching nav links<br>- Responsive: mobile-first with md: breakpoints<br>- Include hover states on all interactive elements<br>- Use semantic HTML (header, main, nav, section, footer)</pre><h3>Platform #2: Emergent (Score: 1266)</h3><p>Let’s dig into another platform that was ranked 2nd in the Design System: Emergent.</p><h4>Prompt 1: Hero Section</h4><p><em>What we asked for:</em> Headline, subheadline, two buttons.</p><p><em>What Emergent delivered:</em> Exactly that plus trust badges (“No credit card required”, “Free forever plan”, “Cancel anytime”) and floating decorative elements.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AnRNL2JcPFWHB9hQgyNL9w.png" /></figure><p>The output is clean and centered. Typography is solid with a bold headline with a purple-to-pink gradient on “Clarity”. Buttons are clearly differentiated. Trust badges below the CTA are a smart conversion optimization.</p><p><strong>What’s missing:</strong> No product preview. No “show don’t tell” element. Replit generated a before/after demo card that actually sells the product. Emergent gave us a standard hero layout.</p><p><strong>The color problem persists:</strong> Same purple/magenta gradient as every AI product. Neither platform breaks from the default.</p><p><strong>Architecture difference:</strong> Emergent uses traditional CSS files instead of Tailwind, raw HTML instead of component libraries, and includes full React Router + Axios backend setup even for a simple landing page. It’s optimized for full-stack apps, not marketing sites.</p><p><strong>Score: 13/15</strong></p><h4><strong>Prompt 2: Features Section</strong></h4><p><em>What we asked for:</em> 3 feature cards with icons, hover states.</p><p><em>What Emergent delivered:</em> Three clean cards with vibrant colored icon containers purple for Instant Rewrites, blue for Tone Control, green for Grammar Check.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*43M-k8cSWeidJmnEFFsYRg.png" /></figure><p>The cards are simpler than Replit’s. No glassmorphism, no entrance animations, no section header. The code includes a .feature-card-glow element suggesting hover effects, but without seeing the CSS file, we can&#39;t verify what actually happens.</p><blockquote><strong>The CSS vs Tailwind Divide</strong></blockquote><blockquote>One of the most interesting findings: Replit and Emergent use completely different styling philosophies.</blockquote><blockquote><strong>Replit:</strong> Tailwind utilities + shadcn/ui components</blockquote><blockquote>&lt;div className=&quot;rounded-2xl border bg-card/50 p-8 shadow-sm transition-all duration-300 hover:bg-card hover:shadow-md&quot;&gt;</blockquote><blockquote><strong>Emergent:</strong> Traditional CSS in separate files</blockquote><blockquote>&lt;div className=&quot;feature-card&quot;&gt;</blockquote><blockquote>css</blockquote><blockquote>.feature-card:hover {<br> transform: translateY(-8px);<br> box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);<br>}</blockquote><blockquote><strong>Neither is wrong.</strong> They optimize for different things:</blockquote><blockquote><strong>Replit</strong> optimizes for rapid iteration and design consistency through enforced tokens</blockquote><blockquote><strong>Emergent</strong> optimizes for CSS power and separation of concerns</blockquote><blockquote>The surprise: Emergent’s hover effects are actually more sophisticated. That per-card glow with unique gradients would be tedious in Tailwind.</blockquote><blockquote><strong>The trade-off:</strong> Replit’s output is easier to theme and maintain. Emergent’s is more expressive but requires CSS fluency to modify.</blockquote><p><strong>Interesting shift:</strong> Emergent upgraded from hand-coded SVGs in Prompt 1 to Lucide React icons here. It’s learning from context or has conditional logic for when to use icon libraries.</p><p>The output is professional and clean, but lacks the polish that makes Replit’s feel production-ready. No scroll-triggered animations, no micro-interactions visible.</p><p><strong>Score: 11/15</strong></p><p><strong>Prompt 3: Pricing Section</strong></p><p><em>What we asked for:</em> 3 pricing tiers with popular highlighting.</p><p><em>What Emergent delivered:</em> A clean pricing table with section header, tier descriptions, and differentiated buttons.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*L9VZYhc3k8QGoJ0rWWwVcA.png" /></figure><p>The “Most Popular” treatment uses a border highlight and badge which is functional but subtle. Compare to Replit, which physically lifts the popular card, adds a deeper shadow, and uses a ring border. Replit’s popular tier demands attention; Emergent’s politely suggests it.</p><p>Emergent added helpful tier descriptions: “Perfect for trying out Clarity”, “For serious writers and professionals”, “For teams and organizations”. These weren’t requested but improve the UX.</p><p>The feature lists are comprehensive with purple checkmarks. Layout is clean. But without entrance animations or the aggressive popular treatment, it feels more static than Replit’s version.</p><p><strong>Score: 16/18</strong></p><p><strong>Prompt 4: Header Navigation</strong></p><p><em>What we asked for:</em> Header with logo, nav, CTA, and mobile hamburger menu.</p><p><em>What Emergent delivered:</em> Header with a nice logo treatment (Sparkles icon + text) and a coral-colored CTA button that actually stands out from the typical purple. Plus an entire dark-themed footer we didn’t request.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WWwMlLAHL4xvOPSSOEYrHQ.png" /></figure><p><strong>The good:</strong> That coral CTA button is the first time either platform broke from the “AI purple” default. The footer is comprehensive with 4 link columns, social icons with hover animations, and proper dark mode styling.</p><p><strong>The gap:</strong> Mobile hamburger menu isn’t visible in the code. This is a critical miss for responsive design.</p><p><strong>Architectural note:</strong> The footer uses hand-coded SVGs for social icons rather than an icon library. More control, more code to maintain.</p><p><strong>Score: 12/18</strong> (pending mobile menu verification)</p><p>So, if you really want a working Landing page with properly functioning links and design, try this Master Prompt:</p><pre>Create a complete landing page for &quot;Clarity&quot; - an AI writing assistant.<br><br>COLOR PALETTE (important - do not use purple as primary):<br>- Primary/CTA: Coral (#F97066)  <br>- Accents: Teal (#14B8A6)<br>- Dark sections: Slate (#0f172a)<br>- Keep backgrounds light and clean<br><br>SECTIONS NEEDED:<br><br>1. HEADER<br>- Logo: Sparkles icon + &quot;Clarity&quot; text<br>- Nav: Features, Pricing, About, Blog<br>- Coral &quot;Get Started Free&quot; button<br>- MUST include mobile hamburger menu that toggles open/closed<br><br>2. HERO<br>- Headline with gradient text<br>- Subheadline<br>- Two CTA buttons<br>- Trust badges (no credit card, free plan, etc.)<br>- Add a product preview card showing before/after writing example<br><br>3. FEATURES (id=&quot;features&quot;)<br>- Section header<br>- 3 feature cards with icons<br>- Hover effects on cards<br><br>4. PRICING (id=&quot;pricing&quot;)  <br>- 3 tiers: Free, Pro (popular), Team<br>- Highlight Pro tier visually<br>- Feature lists with checkmarks<br><br>5. ABOUT (id=&quot;about&quot;)<br>- Brief mission statement<br>- &quot;Built by writers, for writers&quot;<br><br>6. BLOG (id=&quot;blog&quot;)<br>- Section header<br>- 3 blog post preview cards<br><br>7. FOOTER<br>- Dark background<br>- Link columns<br>- Social icons<br><br>Make sure all navigation links connect to actual sections on the page.<br></pre><h3>Lovable design system analysis</h3><h4>Prompt 1: Hero Section for “Clarity” AI Writing Assistant</h4><p><strong>What Lovable delivered</strong></p><p>We asked for a simple hero section. Lovable gave us exactly that but with premium execution.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eV8uiWTWoszYPJCJAEE9og.png" /></figure><p>The output includes a gradient text headline with smooth fade-up animations, floating background orbs for depth, two styled buttons (primary with glow effect, secondary with border), and a trust badge with “no credit card” tagline. Lovable thought about the emotional journey: trust signals matter when you’re asking users to try something new.</p><p>Visually, it’s sophisticated. The “deep slate/navy palette with subtle blue accents” shows restraint. Custom animations (float, fade-up) make the section feel alive. <br>Everything follows a cohesive visual language.</p><p>The “Notion Aesthetic” Problem</p><p>Lovable imported both <strong>Inter</strong> and <strong>Playfair Display</strong> fonts but only used Inter.</p><p>The color system uses HSL tokens with semantic naming (--primary, --accent, --muted), which is technically excellent for theming and dark mode. But the default values? Premium AI tool blue. <br>You&#39;ve seen this exact color on 20 AI product landing pages this month.</p><p>This reveals Lovable’s design philosophy: <strong>premium execution of familiar patterns.</strong></p><p>If you want something that doesn’t look like every other AI tool, you’ll need to specify: “Use warm terracotta and sage green” or “Make it feel like a 1960s IBM ad.”</p><p><strong>What’s under the hood?</strong></p><p><strong>Typography</strong>:</p><ul><li>Inter (400, 500, 600, 700) for all text</li><li>Playfair Display (600, 700) imported but unused</li><li>Default Tailwind type scale (no custom sizes)</li><li>Antialiasing enabled globally</li></ul><p><strong>Color System</strong>:</p><ul><li>HSL-based CSS custom properties</li><li>Semantic tokens: primary, secondary, muted, accent</li><li>Full dark mode support with color-scheme switching</li><li>Custom gradient utilities: text-gradient, hero-glow</li></ul><p><strong>Spacing</strong>:</p><ul><li>Tailwind defaults (no custom spacing scale)</li><li>Container: centered, 2rem padding, 1400px max-width</li><li>Border radius: 0.75rem base with calculated variants</li></ul><p><strong>Animations</strong>:</p><ul><li>Custom float animation (6s ease-in-out infinite)</li><li>Custom fade-up animation (0.8s ease-out)</li><li>Accordion animations via tailwindcss-animate plugin</li></ul><p><strong>Special Touches</strong>:</p><ul><li>Custom gradient backgrounds for hero sections</li><li>Glow effects with HSL alpha transparency</li><li>Sidebar-specific color tokens (future-proofing for app UI)</li></ul><h4>Score: 13/15</h4><h4>Prompt 2: Features section with hover states</h4><p>We asked for three feature cards with hover states. Lovable delivered a full-featured component with <strong>layered hover interactions</strong> that go beyond basic CSS transitions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eovn4pAUGVIUrAoTXBdy8A.png" /></figure><p>The output includes a section header with gradient text treatment (maintaining brand consistency), three feature cards using shadcn/ui Card components, staggered animation delays for entrance effects, and multiple hover states that trigger simultaneously: border color change, shadow elevation, vertical lift, icon scaling, title color shift, gradient overlay fade-in, and an animated accent line at the bottom.</p><p>The icon container scales to 110%, the icon itself scales independently (creating a compounding effect), the title shifts to primary color, and a gradient accent line sweeps in from left to right. It feels premium.</p><h4>The “Too Much Motion” Risk</h4><p>Here’s the problem: <strong>Lovable front-loaded all the polish.</strong></p><p>Six simultaneous hover effects is impressive in a demo. But in production? Users hovering over feature cards repeatedly while reading might find it distracting. The icon scaling twice (container + icon) feels redundant.</p><h4>What’s under the hood?</h4><p><strong>Component Architecture</strong>:</p><ul><li>Uses shadcn/ui Card and CardContent components (pre-built)</li><li>Data-driven approach with a features array</li><li>Staggered animation delays: 0s, 0.1s, 0.2s for cards 1-3</li><li>Relative positioning for layered hover effects</li></ul><p><strong>Icon Choices</strong>:</p><ul><li>RefreshCw for &quot;Instant Rewrites&quot; (rotating arrows = transformation)</li><li>SlidersHorizontal for &quot;Tone Control&quot; (sliders = adjustment)</li><li>SpellCheck for &quot;Grammar Check&quot; (checkmark + A = validation)</li></ul><p>Thoughtful icon selection. Each maps semantically to its feature.</p><p><strong>Layout &amp; Spacing</strong>:</p><ul><li>Section padding: py-24 px-6 (96px vertical, 24px horizontal)</li><li>Section background: bg-secondary/30 (subtle tinted background to differentiate from hero)</li><li>Cards grid: md:grid-cols-3 gap-8 (32px gaps)</li><li>Card internal padding: p-8 (32px all around)</li><li>Max width container: max-w-6xl (1152px)</li></ul><p><strong>Typography Hierarchy</strong>:</p><ul><li>Section headline: text-3xl md:text-4xl font-bold with gradient text</li><li>Section subhead: text-lg text-muted-foreground</li><li>Card title: text-xl font-semibold</li><li>Card description: text-base text-muted-foreground leading-relaxed</li></ul><p>Follows a clear 4:3:2:1 size ratio for visual hierarchy.</p><p><strong>Special Details</strong>:</p><ul><li>Gradient overlay uses from-primary/5 to-transparent (very subtle)</li><li>Bottom accent line uses bg-gradient-to-r from-primary to-accent (brand gradient)</li><li>Icon container uses rounded-xl (12px radius, slightly softer than card corners)</li><li>Staggered entrance animations create a cascade effect on page load</li></ul><h4>Score: 13/15</h4><h4>Prompt 3: Pricing Section with Tier Highlighting</h4><p>We asked for a pricing table with visual hierarchy. Lovable gave us a <strong>conversion-optimized pricing component</strong> with psychological design patterns baked in.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kVWtqunZ7J9K2P4-wJjpJA.png" /></figure><p>The output includes three pricing cards in a grid, a “Most Popular” badge on the Pro tier, permanent visual elevation for the popular tier (thicker border, shadow, gradient overlay), conditional styling logic that differentiates popular vs. standard tiers, feature lists with checkmark icons, and different button variants based on tier (hero button for popular, outline for others).</p><p>The Pro tier physically stands out before you hover.</p><p>The badge placement (top-right corner) follows the F-pattern reading flow. The button hierarchy (filled vs. outlined) guides users toward the intended choice.</p><p>Lovable is making product decisions and not just styling boxes.</p><p><strong>What’s under the hood?</strong></p><p><strong>Data Structure</strong>:</p><pre>const tiers = [<br>  {<br>    name: &quot;Free&quot;,<br>    price: &quot;$0&quot;,<br>    period: &quot;/month&quot;,<br>    description: &quot;Perfect for trying out Clarity&quot;,<br>    features: [&quot;5,000 words per month&quot;, &quot;Basic grammar checking&quot;, ...],<br>    popular: false,<br>  },<br>  // ... more tiers<br>]</pre><p>Clean, data-driven approach. Easy to update pricing, add tiers, or A/B test feature lists.</p><p><strong>Conditional Styling Pattern</strong>:</p><pre>className={`... ${<br>  tier.popular<br>    ? &quot;border-2 border-primary shadow-lg shadow-primary/10&quot;<br>    : &quot;border-border/50 hover:border-primary/30 hover:shadow-lg&quot;<br>}`}</pre><p>Uses ternary operators for tier-specific styles. Popular tier gets permanent elevation, standard tiers only get it on hover.</p><p><strong>Visual Hierarchy Techniques</strong>:</p><ol><li><strong>Border weight</strong>: Popular tier uses border-2 (2px), others use border-border/50 (1px at 50% opacity)</li><li><strong>Shadow elevation</strong>: Popular tier has constant shadow-lg, others get it only on hover:</li><li><strong>Badge positioning</strong>: absolute top-0 right-0 with rounded-bl-lg for the bottom-left rounded corner</li><li><strong>Gradient overlay</strong>: Popular tier has bg-gradient-to-br from-primary/5 overlay, others don&#39;t</li><li><strong>Button variants</strong>: Popular tier uses variant=&quot;hero&quot; (filled primary), others use variant=&quot;outline&quot;</li></ol><p><strong>Feature List Design</strong>:</p><ul><li>Checkmark icons in circular containers: w-5 h-5 rounded-full bg-primary/10</li><li>Check icon itself: w-3 h-3 text-primary (smaller than container for visual breathing room)</li><li>Text styling: text-sm text-muted-foreground for secondary hierarchy</li><li>Spacing: space-y-3 (12px vertical gaps between features)</li></ul><p><strong>Typography &amp; Pricing Display</strong>:</p><ul><li>Tier name: text-xl (20px)</li><li>Price: text-4xl font-bold (36px, bold for emphasis)</li><li>Period: text-muted-foreground (deemphasized)</li><li>Description: Uses CardDescription component (muted foreground by default)</li></ul><p><strong>Layout &amp; Spacing</strong>:</p><ul><li>Section padding: py-24 px-6 (consistent with features section)</li><li>Cards grid: md:grid-cols-3 gap-8 (three-column layout on medium screens+)</li><li>Card internal spacing: CardHeader pb-4, features list mb-8, full-width button w-full</li></ul><p><strong>Hover States</strong>:</p><ul><li>All cards: hover:-translate-y-1 (vertical lift)</li><li>Standard cards: hover:border-primary/30 hover:shadow-lg hover:shadow-primary/5</li><li>Popular card: Already elevated, so hover is less dramatic</li><li>Buttons: Inherit hover states from Button component variants</li></ul><p><strong>Component Usage</strong>:</p><ul><li>Card, CardContent, CardHeader, CardTitle, CardDescription from shadcn/ui</li><li>Button with variants: hero for popular, outline for standard</li><li>Badge for &quot;Most Popular&quot; label</li><li>Check icon from Lucide</li></ul><h4>Score: 14/15</h4><h3><strong>The inherited Design System you didn’t know you were using</strong></h3><p>This was a major breakthrough for me. Every vibe coding platform has already made hundreds of design decisions before you type your first prompt.</p><p>When you write “create a landing page,” you’re not starting from zero. You’re starting from:</p><ul><li>A pre-selected component library (or not)</li><li>Default color tokens (usually purple)</li><li>Spacing systems (8px grid or arbitrary)</li><li>Typography choices (serif vs sans-serif)</li><li>Animation philosophy (Framer Motion vs CSS vs none)</li><li>Code architecture (Tailwind vs traditional CSS)</li></ul><p>These inherited defaults explain why the same prompt produces different results across platforms. It’s not randomness. It’s different design philosophies baked into different systems.</p><p><strong>What the user actually cares about (and what they don’t)</strong></p><p>Here’s the truth: most users like me who are vibe coding their apps don’t care that Emergent uses CSS files while Replit uses Tailwind. They care about:</p><ul><li>Does it look good?</li><li>Can I ship this?</li><li>How much do I need to fix?</li></ul><p>The technical implementation is invisible to us. But it affects everything we see.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jLp0wD9hY2JXoRht67pRAw.png" /></figure><p><strong>The Claude Question: Why does Emergent use CSS?</strong></p><p>When I started exploring and reverse engineering these platforms purely by prompts, this was genuinely puzzling. Emergent uses Claude (same as many other platforms). So why traditional CSS instead of Tailwind?</p><p>Possible explanations:</p><p><strong>Theory 1: Intentional Product Decision</strong> Emergent may believe traditional CSS produces more maintainable, customizable code for developers who will modify it later.</p><p><strong>Theory 2: Training/Prompting Differences</strong><br>Emergent’s system prompt may specifically request traditional CSS architecture, overriding Claude’s Tailwind tendencies.</p><p><strong>Theory 3: Target Audience</strong> Emergent targets full-stack developers who prefer separation of concerns. Replit targets rapid prototypers who want all-in-one files.</p><p><strong>Theory 4: Output Quality Optimization</strong> Emergent may have found that Claude produces better hover effects and complex animations with traditional CSS than with Tailwind utilities.</p><p>We can’t know for certain without seeing their system prompts. But the difference is real and affects every output.</p><p><strong>What actually determines design quality?</strong></p><p>After all this testing, here’s what the “score” really measures:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yhjfvqC6qzs_-yQNbc5fSA.png" /></figure><p>The model is the foundation. The platform adds constraints and defaults. Your prompt is the final 20%.</p><p>This means: <strong>choosing the right platform matters more than perfecting your prompt.</strong></p><p>If you want glassmorphism and Framer Motion animations, Replit will give you that with minimal prompting. If you want traditional CSS with detailed hover effects, Emergent will deliver. Fighting against a platform’s defaults is harder than choosing the right platform.</p><p><strong>The Scoring System: What are we really measuring?</strong></p><p>Our 5-tier test measures:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VDhK20F_ZFDV2uuRDh3tsg.png" /></figure><p>High scores mean: the platform has strong defaults that produce shippable output with minimal prompting.</p><p>Low scores mean: you’ll need to specify more, fix more, or accept lower quality.</p><h3><strong>For People using Vibe Coding platforms</strong></h3><ol><li><strong>Know your platform’s defaults before you start.</strong> Run a simple test prompt. See what colors, fonts, and components it chooses. That’s your starting point.</li><li><strong>Specify what you want to be different, not what you want to be the same.</strong> If the platform defaults to purple and you want coral, say so. If it defaults to Tailwind and that’s fine, don’t mention it.</li><li><strong>The first output reveals the ceiling.</strong> If the first generation is close to what you want, iteration will get you there. If it’s fundamentally different, consider switching platforms.</li><li><strong>Mobile and accessibility are where platforms diverge most.</strong> Test responsive behavior and keyboard navigation. These reveal whether the platform generates production code or just pretty pictures.</li></ol><p><strong>For Platform Builders</strong></p><ol><li><strong>Your defaults ARE your product.</strong> Users don’t see your system prompt. They see the output. Invest in defaults that produce shippable work.</li><li><strong>The animation gap is real.</strong> Platforms with Framer Motion feel more polished. CSS transitions are fine, but scroll-triggered animations create perceived quality.</li><li><strong>Color originality is a missed opportunity.</strong> Every AI product uses purple. The platform that defaults to distinctive, memorable palettes will stand out.</li><li><strong>Component libraries vs raw HTML is a fundamental choice.</strong> shadcn/ui gives you accessibility for free. Raw HTML gives you flexibility. Pick one and commit.</li></ol><p><strong>For the Industry</strong></p><ol><li><strong>“Design quality” needs a standard definition.</strong> DesignArena scores are useful but opaque. The frameworks exist (Nielsen, WCAG, Gestalt). Let’s use them consistently.</li><li><strong>The model matters less than the system prompt.</strong> Two platforms using Claude produce different results. The differentiation is in the configuration, not the model.</li><li><strong>We’re measuring the wrong thing.</strong> “Does it look good?” is subjective. “Can I ship this without modification?” is measurable. Let’s optimize for shippability.</li></ol><h3><strong>The bottom line</strong></h3><p>Vibe coding platforms are not magic. They’re Claude or GPT with a design education pre-loaded.</p><p>The quality of that education from the defaults, the component libraries, the animation philosophy, the system prompt determines the quality of your output.</p><p>You can fight the defaults with detailed prompts. Or you can choose the platform whose defaults match your taste.</p><p>I would love to reverse engineer other platforms as well. Let me know if there is something specific you want me to test!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=983f42dee380" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Build a personal Chief of Staff for yourself in 15 mins w/Claude]]></title>
            <link>https://medium.com/@writertripathi/build-a-personal-chief-of-staff-for-yourself-in-15-mins-w-claude-ed03ea390b5c?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/ed03ea390b5c</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Tue, 27 Jan 2026 16:17:04 GMT</pubDate>
            <atom:updated>2026-01-27T16:17:04.635Z</atom:updated>
            <content:encoded><![CDATA[<p>You’re doing everything right.</p><p>You’ve got the todo app. <br>You’ve blocked your calendar. <br>You’re even doing the “deep work” thing.</p><p>But somehow, you still feel scattered.</p><p>I know because I’ve been there. <br>Your tasks live in three different apps and your brain. <br>Client files are buried somewhere between Google Drive, email attachments, and that Slack thread you swear you bookmarked but can’t find.</p><p>Here’s what finally clicked for me:</p><blockquote>The best operators don’t manage tasks better. They manage systems better.</blockquote><p>Think about any high-performing founder or exec you know.</p><p>They all have one thing in common, there’s someone behind the scenes who keeps everything organized. Someone who reviews their priorities every morning, preps them for meetings, processes their inbox so nothing dies in there, and actually thinks strategically about their week.</p><p><strong>That person is called a Chief of Staff.</strong></p><p>Most of us can’t hire one. (I sure can’t.)</p><p>But what if you could build your own? <br>What if you could use Claude, clean up your file system, and document a few workflows to create something that actually works?</p><p>That’s what I figured out. <br>And I’m about to show you exactly how to do it, with a complete system you can copy and start using today.</p><p>(Fair warning: this isn’t another productivity hack. This is about fundamentally changing how you operate.)</p><h3>Let me share: Where is the real problem?</h3><p>I will tell you my setup honestly.</p><p>My tasks: Half are in my head, the other half are split between Notion, Notes app, and some even in my personal Slack chats!</p><p><strong><em>Files:</em></strong><em> Google Drive has 847 files and I know the one I need is “somewhere in here”, probably named “Final_FINAL_v3_actualfinal.docx”</em></p><p><strong>Processes</strong>: Now to prepare for client calls or any other meeting, I have to research about the task or the company from multiple sources.</p><p><strong>Context</strong>: Every time I have switched projects, I have spent almost 10 minutes staring at your screen thinking “wait, where did I leave this?”</p><p>Sounds familiar?</p><h3>Solution what I have built: A personal CoS</h3><p>What if instead of scattered chaos, you had:</p><ul><li><strong>One place</strong> for all your work (organized file structure)</li><li><strong>Documented workflows</strong> (exactly how YOU work, written down)</li><li><strong>Consistent executor</strong> (Claude follows your systems perfectly, every time)</li></ul><p>This is your Personal Chief of Staff system.</p><p>It has three simple components:</p><h3>Component 1: File system (The Database)</h3><p>Everything lives in organized markdown files. That’s it. Just text files.</p><pre>your-workspace/<br>├── projects/<br>│ ├── client-lime/<br>│ │ └── brief.md # Project scope, status, notes<br>│ └── saas-project/<br>│ └── roadmap.md # Your side hustle<br>├── personal/<br>│ └── goals.md # Fitness, learning, life<br>└── inbox/<br> └── items.md # Unprocessed stuff</pre><h3>Component 2: My skills (The SOPs)</h3><p>We will document HOW we want things to be done. These are our Standard Operating Procedures.</p><pre>skills/chief-of-staff/<br>├── morning-review.md          # How to start your day<br>├── client-prep.md             # How to prep for meetings<br>├── weekly-planning.md         # How to plan strategically<br>└── inbox-processing.md        # How to triage information</pre><p>Each SKILL file contains:</p><ul><li>Our decision frameworks (what gets priority?)</li><li>Our communication style (how do you talk to clients?)</li><li>Our prioritization rules (client work before side projects?)</li><li>Our specific preferences (deep work blocks in the morning)</li></ul><p>Think of these as training manuals. Not for you, it is for your Chief of Staff.</p><h3>Component 3: Claude (The Executor)</h3><p>Claude reads our files + follows our skills = executes our systems consistently.</p><p><strong>When we type:</strong></p><pre>&quot;Run my morning review&quot;</pre><p><strong>Claude:</strong></p><ol><li>Reads morning-review.md (learns HOW you want this done)</li><li>Reads all your project files (learns WHAT you’re working on)</li><li>Applies YOUR prioritization framework</li><li>Delivers a focused briefing</li></ol><h3>How it works together?</h3><ul><li>You wake up → “Run my morning review” → clear priorities in 30 seconds</li><li>You have a meeting → “Prep me for this call” → walk in fully prepared</li><li>You plan your week → “Help me plan next week” → strategic allocation of time</li></ul><p>Let me show you this in action with the most powerful workflow: your morning review.</p><h3>The setup</h3><p>We have a few steps to follow before generating the folder structure.</p><p>This system works best when Claude can access your files directly. Here’s how to set that up:</p><ol><li>Install Claude code:</li></ol><p>Open your Terminal (Mac) or Command Prompt (Windows) and run:</p><pre>npm install -g @anthropic-ai/claude-code</pre><p>2. Create your workspace</p><pre>cd ~/Documents<br>mkdir my-workspace<br>cd my-workspace</pre><h3>Daily Usage</h3><p>Every time you want to use your Chief of Staff:</p><pre>cd ~/Documents/my-workspace<br>claude</pre><p>Then just talk in plain English:</p><ul><li>“Run my morning review”</li><li>“Prepare me for my Acme call”</li><li>“Process my inbox”</li></ul><p>Type exit when you&#39;re done.</p><p><strong>That’s all the “terminal” you need to know.</strong></p><blockquote>Look how it looks like when I tried building one skills for generating the relevant tweets for me based on how I write, my best tweets, and what kind of content I bookmark:</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5ovdFK7r071QANor65IZZg.png" /></figure><h3>How to build your workspace?</h3><h3>Step 1: Create your workspace</h3><p>First, you create a simple folder structure. You can do this in your file explorer, or ask Claude to help:</p><pre>&quot;Help me set up my Chief of Staff workspace. Create folders for:<br>- projects (where my work lives)<br>- personal (my goals and habits)<br>- inbox (unprocessed items)<br>- skills (my workflows)&quot;</pre><p>After you type this prompt, Claude generates the folder structure in this</p><pre>my-workspace/<br>├── projects/<br>├── personal/<br>├── inbox/<br>└── skills/<br>    └── chief-of-staff/</pre><h3>Step 2: Add your first project</h3><p>Now you add a real project you’re working on. Let’s say you’re working with a client called Lime Inc on a brand refresh.</p><p><strong>You create:</strong> /projects/client-lime/brief.md</p><p><strong>You add:</strong></p><pre># Lime Inc: Brand Refresh Project<br><br>**Status:** 🟡 In Progress<br>**Deadline:** March 30, 2026<br><br>## This Week<br>- Finalizing mood board for Friday presentation<br>- Waiting on brand strategy doc from Mike<br><br>## Next Steps<br>- Present mood board: Jan 25<br>- Start logo concepts: Feb 1<br><br>## Notes<br>- Sarah (CMO) is main contact<br>- They want &quot;modern but trustworthy&quot;<br>- Possible Q2 project if this goes well</pre><blockquote><strong>Note: </strong>I am not sharing my exact file system due to privacy concerns but using psuedo file system just for reference. Replace this with you exact work.</blockquote><p>You just write down what you already know about the project. That’s it.</p><h3>Step 3: Add your side project (If you have one)</h3><p>If you’re building something on the side:</p><p><strong>You create:</strong> /projects/saas-project/roadmap.md</p><p><strong>You add:</strong></p><pre># DesignQueue: My SaaS Project<br><br>**Status:** 🟡 Validation phase<br><br>## This Week<br>- 5 customer interviews scheduled<br>- Jordan interview on Tuesday 2pm<br><br>## Next Milestone  <br>- Finalize MVP feature set by Feb 1</pre><h3>Step 4: Capture “What’s on your mind”</h3><p>Everything floating in your head or scattered in emails goes here:</p><p><strong>You create:</strong> /inbox/items.md</p><p><strong>You add:</strong></p><pre>## To Process<br><br>- Sarah (Lime Inc) emailed asking about timeline<br>- Freelancer invoice needs approval ($3,400)<br>- Conference invite: need to decide by Friday<br>- Update LinkedIn (been meaning to do this)</pre><p>Brain dump. Everything that’s on your mind.</p><h3>Step 5: Now set up your morning workflow</h3><p>This is where the magic happens. You document HOW you want Claude to run your morning review.</p><p><strong>You create:</strong> /skills/chief-of-staff/morning-review.md</p><p><strong>You add:</strong></p><pre># Morning Review Workflow<br><br>## Purpose<br>Start each day with clarity on priorities<br><br>## Process<br>1. Read all project files to understand current status<br>2. Check inbox for urgent items<br>3. Identify today&#39;s top priorities<br>4. Suggest time-blocked schedule<br><br>## My Decision Framework<br>- Client work always comes first<br>- Flag anything overdue or due today<br>- Deep work blocks: 9am-12pm (my best hours - protect this)<br>- Personal goals: at least 1 action per day<br><br>## Output Format<br>Give me:<br>- Today&#39;s top 2-3 focus items<br>- Urgent items needing immediate attention<br>- Suggested schedule based on my energy<br>- Heads up on potential issues<br>```<br><br>This is YOUR workflow. Your preferences. Your style.<br><br>**Or use the template:** I&#39;ve included a complete `morning-review.md` skill <br>in the download that you can use as-is or customize.<br><br>### Step 6: Run Your First Morning Review<br><br>Now everything is set up. You have:<br>- ✅ Your projects documented<br>- ✅ Your inbox captured  <br>- ✅ Your workflow defined<br><br>**You type:**<br>```<br>&quot;Run my morning review using the skill at /path/to/skills/chief-of-staff/morning-review.md&quot;<br>```<br><br>Claude:<br>1. Reads your morning-review skill (learns HOW you want this done)<br>2. Reads all your project files (learns WHAT you&#39;re working on)  <br>3. Reads your inbox (sees what needs attention)<br>4. Applies YOUR decision framework<br>5. Generates YOUR briefing<br><br>### What You Get (30 seconds later)<br>```<br>🌅 MORNING BRIEFING - Tuesday, Jan 21, 2026<br><br>TODAY&#39;S FOCUS:<br>- Finalize Acme mood board for Friday presentation<br>- Complete Jordan interview (DesignQueue validation)<br><br>URGENT:<br>- Sarah (Lime) waiting on timeline: respond by noon<br>- Freelancer invoice needs approval ($3,400)<br>- Mike&#39;s brand doc still missing - follow up today<br><br>QUICK WINS:<br>- Approve invoice (5 min)<br>- Email Sarah (10 min)<br><br>SUGGESTED SCHEDULE:<br>9:00-11:30  → Deep work: Acme mood board<br>11:30-12:00 → Admin (invoice, emails)<br>12:00-1:00  → Lunch<br>1:00-1:45   → Prep Jordan interview questions<br>2:00-3:00   → Jordan interview<br>3:00-4:30   → DesignQueue notes + follow-up<br>4:30-5:00   → Inbox processing<br><br>⚠️ WATCH OUT FOR:<br>- Still waiting on Mike&#39;s doc: could delay next phase<br>- Full day ahead: protect morning deep work time</pre><h3>Total setup time: 30–45 Minutes</h3><p>That’s it. You now have:</p><ul><li>Your work organized in one place</li><li>Your workflows documented</li><li>Claude executing your systems</li></ul><p>And tomorrow morning? Just type “Run my morning review” again.</p><pre>&quot;Run my morning review&quot;</pre><p>Get focused briefing for the day.</p><p><strong>Weekly (30 minutes):</strong></p><pre>&quot;Help me plan next week&quot;</pre><p>Strategic review and planning.</p><p><strong>As needed:</strong></p><pre>&quot;Prepare me for my call with [Client]&quot;<br>&quot;Process my inbox&quot;<br>&quot;Give me a status report&quot;</pre><blockquote>If you need the exact file setup, you can leave a comment and I will share the exact files that you can start using!</blockquote><h3>What else can you do?</h3><h3>Beyond morning review: Your complete system</h3><p>The morning review is powerful, but it’s just one workflow. Here are the other core workflows that come with the system:</p><h3>1. Client Prep (Before any meeting)</h3><p><strong>You type:</strong></p><pre>&quot;Prepare me for my Lime Inc call on Friday at 10am&quot;</pre><p><strong>What Claude does:</strong></p><ul><li>Reads the client-prep.md skill</li><li>Pulls all context from /projects/client-lime/</li><li>Checks recent notes and action items</li><li>Applies your meeting prep framework</li></ul><p><strong>What you get:</strong></p><pre>📋 CLIENT PREP - Lime Inc - Friday 10am<br><br>MEETING TYPE: Mood Board Review<br><br>PROJECT SNAPSHOT:<br>- Status: On track<br>- Recent win: Mood board completed ahead of schedule<br>- Open item: Still waiting on Mike&#39;s brand doc<br><br>AGENDA TO COVER:<br>1. Present the 3 mood board directions<br>2. Get feedback on color palette<br>3. Confirm timeline for logo phase<br>4. (Gently) follow up on brand strategy doc<br><br>MATERIALS READY:<br>- Mood board presentation deck<br>- Updated timeline document<br><br>QUESTIONS FOR THEM:<br>- Which direction resonates most and why?<br>- Any concerns about &quot;modern but trustworthy&quot;?<br>- Should we loop in other stakeholders?<br><br>HEADS UP:<br>- Sarah mentioned possible Q2 project - good time to explore<br>- Be ready with mitigation plan if brand doc causes delay<br><br>AFTER MEETING:<br>- Send recap email within 2 hours<br>- Update brief with decisions<br>- Schedule next check-in</pre><h3>2. Weekly planning</h3><p><strong>You type:</strong></p><pre>&quot;Help me plan next week&quot;</pre><p><strong>What Claude does:</strong></p><ul><li>Reads the weekly-planning.md skill</li><li>Reviews all projects for progress/blockers</li><li>Checks your personal goals</li><li>Assesses capacity vs. commitments</li></ul><p><strong>What you get:</strong></p><pre>📊 WEEKLY PLANNING - Week of Jan 27<br><br>LAST WEEK REVIEW:<br>✅ Completed: Acme mood board, 3 DesignQueue interviews<br>🟡 In Progress: Logo concepts starting, 2 more interviews<br>📈 Pattern: Client work expanding - set better boundaries<br><br>TOP 3 PRIORITIES THIS WEEK:<br>1. Lime Inc logo concepts (first client impression - critical)<br>2. TechStart launch materials (deadline approaching)<br>3. Complete DesignQueue validation (5 interviews total)<br><br>CAPACITY CHECK:<br>Client work: 32 hours<br>Side project: 8 hours  <br>Personal: 5 hours<br>Total: 45 hours (reasonable)<br><br>🟢 GREEN: Good balance<br><br>DEEP WORK BLOCKS SCHEDULED:<br>- Monday 9-12pm: Logo concept exploration<br>- Wednesday 9-12pm: TechStart social assets<br>- Friday 9-11am: DesignQueue analysis<br><br>PERSONAL COMMITMENTS:<br>- 3 workouts (Mon/Wed/Sat)<br>- 2 Spanish lessons<br>- Finish book chapter 4-5<br><br>WATCH FOR:<br>- Mike&#39;s doc deadline (Monday) - follow up if missing<br>- TechStart launch moved up - stay ahead of schedule</pre><h3>3. Inbox processing (Get to Zero)</h3><p><strong>You type:</strong></p><pre>&quot;Process my inbox&quot;</pre><p><strong>What Claude does:</strong></p><ul><li>Reads the inbox-processing.md skill</li><li>Applies your decision framework (urgent/important/defer/delete)</li><li>Converts chaos into organized actions</li><li>Updates relevant project files</li></ul><p><strong>What you get:</strong></p><pre>📥 INBOX PROCESSING - Jan 22<br><br>PROCESSED: 8 items<br><br>✅ COMPLETED (under 2 min each):<br>- Approved freelancer invoice<br>- Responded to Sarah about timeline<br>- Booked photographer for mom&#39;s party<br><br>📂 ADDED TO PROJECTS:<br>- &quot;Review TechStart blog&quot; → client-techstart/deliverables.md (due Friday)<br>- &quot;Update LinkedIn&quot; → personal/goals.md (this week)<br>- &quot;File Q4 taxes&quot; → personal/admin.md (deadline Feb 15)<br><br>💡 IDEAS CAPTURED:<br>- Blog post: &quot;How to price design projects&quot; → content-ideas.md<br>- DesignQueue feature: Auto-tag urgency → saas-project/features.md<br><br>🚮 DELETED:<br>- Conference invite ($1,200) - not worth it right now<br>- Podcast interview - wrong audience<br><br>⏰ WAITING ON:<br>- Mike (Lime Inc) - brand doc<br>- David (TechStart) - feedback on assets<br><br>═══════════════════════════<br>INBOX STATUS: ✨ ZERO<br>═══════════════════════════<br><br>IMMEDIATE ACTIONS:<br>- Review TechStart blog (urgent - due Friday)<br>- Follow up with Mike about brand doc</pre><h3>4. Project status (Check any time of the day)</h3><p><strong>You type:</strong></p><pre>&quot;Give me a status report on all projects&quot;</pre><p><strong>What Claude does:</strong></p><ul><li>Reads the project-status.md skill</li><li>Scans all project files</li><li>Categorizes by health (🟢🟡🔴)</li><li>Flags what needs attention</li></ul><p><strong>What you get:</strong></p><pre>📊 PROJECT STATUS - Jan 22<br><br>🟢 Lime Inc - Brand Refresh<br>On track | Next: Logo concepts by Feb 1<br>Note: Mood board approved, strong momentum<br><br>🟡 TECHSTART - Product Launch  <br>Slight risk | Blog review due Friday<br>Issue: Launch date moved up, timeline tight<br><br>🟢 DESIGNQUEUE - SaaS Project<br>On track | Next: 2 more interviews this week<br>Note: Strong validation signals<br><br>PORTFOLIO HEALTH:<br>- 3 active projects<br>- 2 green, 1 yellow, 0 red<br>- 32/40 billable hours (good utilization)<br><br>THIS WEEK&#39;S FOCUS:<br>- Complete TechStart deliverables (time-sensitive)<br>- Maintain Lime momentum<br>- Finish DesignQueue validation phase<br><br>WATCH FOR:<br>- TechStart timeline pressure<br>- Need to invoice Lime Inc for Phase 1</pre><h3>Common questions you might have</h3><p><strong>Q: Do I need to be technical?</strong></p><p>A: No. If you can create a text file and copy-paste, you’re good.</p><p><strong>Q: What if I’m not organized?</strong></p><p>A: Perfect! That’s the point. The system helps you GET organized. Start messy, improve over time.</p><p><strong>Q: Can I use this with my current tools (Notion, Todoist, etc)?</strong></p><p>A: Yes. This adds a “Chief of Staff layer” on top. Keep using what works.</p><p><strong>Q: What if I miss updating files?</strong></p><p>A: Just tell Claude what happened and it updates them. Or don’t update and let things get slightly stale. It still works.</p><p><strong>Q: How is this different from just asking Claude questions?</strong></p><p>A: The skills ensure CONSISTENT execution of YOUR specific workflows. Ad-hoc questions = ad-hoc results. Documented systems = consistent results.</p><p><strong>Q: What if I want to add my own workflows?</strong></p><p>A: That’s the best part! Add new SKILL.md files for anything you do repeatedly. Sales outreach? Content creation? Financial review? Document it once, execute it forever.</p><h3>Start today!</h3><p>This isn’t about perfect systems. It’s about that moment when you stop feeling like you’re drowning in your own to-do list.</p><p>I made this template because I was tired of starting each day already behind. You know that feeling, coffee still hot, inbox already overwhelming, and somehow it’s only 8 AM.</p><p>Download it. Try one morning review. I think you’ll notice the shift immediately.</p><p>Your Chief of Staff is sitting there waiting. Might as well put it to work.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ed03ea390b5c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How is Claude’s $100M Bet quietly breaking Nvidia’s AI Monopoly]]></title>
            <link>https://medium.com/@writertripathi/how-is-claudes-100m-bet-quietly-breaking-nvidia-s-ai-monopoly-89def9068c2c?source=rss-607ff582a360------2</link>
            <guid isPermaLink="false">https://medium.com/p/89def9068c2c</guid>
            <dc:creator><![CDATA[Ankita Tripathi]]></dc:creator>
            <pubDate>Sun, 18 Jan 2026 16:23:52 GMT</pubDate>
            <atom:updated>2026-01-18T16:23:52.549Z</atom:updated>
            <content:encoded><![CDATA[<h4>Well, Claude’s Opus model is partly built using Google’s TPUs. But why and how? Here’s why the choice reveals everything about the future of AI.</h4><p>Picture this: It’s 2013, and you’re sitting in a Google conference room looking at projections that basically say your company is about to hit a wall.</p><p>The infrastructure team had just run the numbers on voice search adoption. If users started talking to their phones for just three minutes a day, which seemed inevitable, Google would need to double its entire data center footprint. Not add some servers. <strong>Double everything</strong>.</p><p>I’ve seen a lot of “oh shit” moments in tech, but this was different.</p><p>The math was brutal: neural networks need serious compute power, CPUs were slow, and GPUs were better but would literally bankrupt the economics of offering voice search for free.</p><blockquote><strong>Jeff Dean and the Brain team</strong> faced the kind of choice that defines companies: give up on the AI features that clearly represented the future, or build something that had never been built before.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Lqc6lXG8OeOsWkxt0Lc8qg.png" /></figure><p>Fifteen months later, and honestly, anyone who’s worked in chip development will tell you that timeline is absolutely bonkers, the first TPU was running in production.</p><p>Most people using Google Photos or Maps had no clue they were running on custom Google silicon. They just knew it worked.</p><p>Now here’s where it gets interesting: fast-forward to today, and Gemini 3 (Google’s answer to GPT-4o) was trained entirely on those TPUs.</p><p>But Anthropic, the folks behind Claude, which is arguably just as good, just bet tens of billions on a completely different approach.</p><h4>They’re using TPUs, Amazon’s Trainium chips, AND Nvidia GPUs.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3HTlneOF-Phgv39CemuF5g.png" /></figure><p>Same destination, totally different paths.</p><p>What’s really happening here isn’t just a story about chips. <br>It’s about a fundamental question every AI company is wrestling with right now: <br><strong>When do you build versus buy?</strong> <br><strong>When do you bet your company on custom hardware versus just writing cheques to Nvidia?</strong></p><p>The answer involves some elegant math from the 1970s, a $100 million gamble that could have killed Google’s margins, and a trade-off that I think will define the next decade of AI.</p><p>Let me walk you through it.</p><h3>What’s actually happening here?</h3><p><strong>“Okay cool, big tech companies are using different chips. Why should I care?”</strong></p><p>Fair question. Here’s why this actually matters, even if you’re never going to train a giant AI model:</p><h4>For developers/engineers:</h4><p>The tools you’re learning right now?</p><p>They exist because of these infrastructure decisions.</p><p>I’ve watched PyTorch default to CUDA for years now. <br>Every tutorial I’ve seen assumes you have Nvidia GPUs. <br>Google gives you free GPU access in Colab because they’re betting on their ecosystem.</p><p>But if TPUs and custom chips really take off?</p><p>Everything changes. <br>The frameworks, the assumptions, the way you think about building things. I’m not saying drop everything and learn TPU programming tomorrow, but I am saying pay attention.</p><h4>For startups/founders:</h4><p>Your compute costs are about to get weird.</p><p>Right now, you basically have one choice: rent Nvidia GPUs from AWS or Google Cloud. That’s it. That’s the menu.</p><p>But look at what Anthropic’s doing, they’re spreading their bets across TPUs, Amazon’s Trainium chips, and still keeping some Nvidia in the mix. That tells me we’re heading toward a world where you’ll actually have real decisions to make about compute. Understanding these trade-offs early? That’s how you don’t get caught paying 3x what your competitor pays.</p><h4>For anyone trying to understand where AI is going:</h4><p>Here’s what I’ve realized: the infrastructure determines everything else.</p><p>Models don’t just appear, they’re shaped by the chips they run on. <br>GPT-4 looks the way it does partly because of Nvidia’s architecture. <br>Claude can handle those crazy-long conversations because Anthropic made specific hardware choices. <br>Gemini processes video and images efficiently because Google built it on TPUs from day one.</p><p><strong>Google’s optimization target:</strong> Maximum efficiency at maximum scale</p><ul><li>They have unlimited demand (Search, YouTube, Gmail, Photos, Maps all use AI)</li><li>They control both the chip design AND the software stack</li><li>Vendor lock-in isn’t a risk when you ARE the vendor</li></ul><p><strong>Anthropic’s optimization target:</strong> Maximum flexibility with acceptable risk</p><ul><li>They’re growing explosively but demand is harder to predict</li><li>They need leverage when negotiating with chip suppliers</li><li>A single point of failure could take down their entire business</li></ul><p>The scale here is honestly hard to wrap your head around:</p><p><strong>Anthropic is deploying 1 million TPUs.</strong></p><p>That’s over a gigawatt of power, enough to run a city. We’re talking tens of billions of dollars.</p><p>And they’re not putting all their eggs in one basket. <br>They’re running Google Cloud TPUs, Amazon’s Trainium chips through this massive <a href="https://www.aboutamazon.com/news/aws/aws-project-rainier-ai-trainium-chips-compute-cluster"><strong>AWS deal called Project Rainier</strong></a>, plus still keeping Nvidia GPUs in the mix.</p><p>Meanwhile, Google trained Gemini 3 using only TPUs. Same manufacturing, same supply chains as everyone else, completely different approach.</p><p>The result? Both companies have models that are genuinely impressive. Both are hitting the benchmarks everyone cares about. But they got there through totally different paths.</p><p>I think understanding why they made these choices tells you something important about where all of this is heading.</p><h3>TPU vs GPU 101: What you actually need to know</h3><p>The chip powering Claude right now exists because some teenagers in the ’90s wanted better graphics for Quake. I’m not kidding.</p><h4>Stage 1: The CPU Era (1970s-1990s)</h4><p>This entire story starts with one question in the 1990s: <strong>How do you make 3D games look realistic in real-time?</strong></p><p>Back in the day, there was just the CPU, the “brain” of your computer. CPUs are like that one friend who’s brilliant at everything but can only focus on one thing at a time. They’ll run your operating system, juggle your files, handle complex decisions. Pure sequential genius.</p><p>Imagine you’re playing Quake in 1996.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*c6upOosZ_mkrIW4tzoXJ_w.jpeg" /><figcaption>Fig: The difference in graphics from 1996 to 2023</figcaption></figure><p>For every frame of the game, your computer needs to:</p><ul><li>Calculate where every object is in 3D space</li><li>Figure out lighting and shadows for each surface</li><li>Apply textures to every polygon</li><li>Determine what color each of the million+ pixels should be</li><li>Do all of this <strong>60 times per second</strong> for smooth gameplay</li></ul><p>CPUs trying to do this one calculation at a time? Forget it. You’d get maybe 5 frames per second.</p><h4>Stage 2: The GPU Revolution (1990s-2000s)</h4><h4><strong>Nvidia’s 1999 Breakthrough: </strong><a href="https://entelechyasia.com/2024/10/14/nvidias-geforce-256-25-years-on/#:~:text=Perhaps%20the%20most%20surprising%20legacy,and%20speech%20understanding%20by%202015."><strong>GeForce 256</strong></a></h4><blockquote><strong>Then Nvidia had this crazy idea:</strong> What if instead of one brilliant mathematician working alone, we had an entire stadium of people doing simple math at the same time?</blockquote><p>That’s a GPU. Thousands of small, not-particularly-bright processors all working in parallel. None of them would win a math contest, but together? They could crunch massive amounts of data instantly.</p><p>Suddenly:</p><ul><li><strong>One CPU:</strong> Calculates 1 pixel at a time</li><li><strong>One GPU:</strong> Calculates 10,000 pixels simultaneously</li></ul><p>NVIDIA’s <strong>GeForce 256</strong>, released in October 1999, was a major breakthrough because it introduced hardware-accelerated <strong>Transform and Lighting (T&amp;L)</strong>, offloading geometry calculations from the CPU to the graphics card. This innovation was the foundation of the modern Graphics Processing Unit (GPU) and enabled a significant leap in 3D gaming performance</p><p>The whole point was making <strong>Quake</strong> playable in real-time. That’s it.</p><h4><strong>2012: The ImageNet Moment</strong></h4><p>A team at University of Toronto used <strong>gaming GPUs</strong> to train a neural network that crushed the competition in image recognition.</p><blockquote>Alex Krizhevsky, Ilya Sutskever, and Geoffrey Hinton built AlexNet. An eight-layer neural network with 60 million parameters.</blockquote><p>Why did it work? Because training neural networks is just:</p><ul><li>Multiply matrix A × matrix B</li><li>Multiply matrix C × matrix D</li><li>Multiply matrix E × matrix F</li><li>Repeat billions of times</li></ul><p>Sound familiar? It’s the same type of parallel, repetitive math that GPUs were doing for game graphics.</p><p><strong>Gaming GPUs became AI GPUs overnight.</strong></p><p>Nvidia pivoted fast:</p><ul><li>Created CUDA (framework for programming GPUs for non-graphics tasks)</li><li>Started marketing to AI researchers</li><li>Became the default standard for training models</li></ul><p><a href="https://www.aljazeera.com/economy/2025/7/9/nvidia-becomes-first-us-company-to-reach-4-trillion-market-cap#:~:text=The%20stock&#39;s%20recent%20rally%20comes,listed%20companies%20in%20the%20UK.">By 2023, Nvidia’s market cap hit $1 trillion</a>. Because gamers wanted better graphics in the 90s.</p><p>Imagine!!</p><h4>The Accidental AI Revolution</h4><blockquote><strong>GPUs weren’t even designed for AI. They just happened to be perfect for it. I wonder, sometimes the best discoveries are accidents.</strong></blockquote><h4>Stage 3: The TPU Specialization (2013-Present)</h4><p>By 2013, Google had a problem. Their AI workloads were exploding, voice search, photo recognition, translation. Running all this on GPUs would mean doubling their data centers.</p><p>So, Jeff Dean and team looked at GPUs and realized:</p><ul><li>GPUs have texture mapping hardware → <strong>AI doesn’t need this</strong></li><li>GPUs have rasterization units → <strong>AI doesn’t need this</strong></li><li>GPUs have display outputs → <strong>AI doesn’t need this</strong></li><li>GPUs do lots of things AI never uses → <strong>wasted silicon, wasted power</strong></li></ul><p>So, they dug up some dusty 1978 PhD thesis about <a href="https://www.ukessays.com/essays/engineering/systolic-architecture.php#:~:text=HISTORY:%2D,was%20theColossus%20Mark%20IIin%201944.">“systolic arrays”</a> (I love that someone’s 40-year-old homework became the foundation for modern AI), built the Tensor Processing Unit, and deployed it in 2015.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eHaz_nq_4JcqVlio19PZrw.png" /></figure><p>By 2016, it was powering Google Search, Photos, Maps. The stuff you use every day.</p><p><strong>What is a Systolic Array?</strong></p><p>The term “systolic” comes from your heartbeat, that rhythmic pulse pushing blood through your body without your heart constantly running back to some blood reservoir to grab more.</p><p>I’ve been thinking about this analogy because it perfectly captures why Google’s TPUs work so differently from regular chips.</p><p><strong>The old way (what your CPU and GPU do):</strong><br>- Worker runs to the well<br>- Grabs a bucket<br>- Does something with it<br>- Runs back to storage<br>- Repeats this dance thousands of times</p><p>You can see the waste, right? All that running back and forth.</p><p><strong>The systolic way (what TPUs do):</strong><br>Picture a human chain passing buckets of water. Each person does one small thing, maybe adds a drop of something, then passes it along. No one’s running anywhere. The buckets just flow.</p><p>In chip terms, imagine 65,536 tiny calculators arranged in a grid (that’s what TPU v1 actually has). Instead of each one constantly fetching numbers from memory:</p><p>- Data enters at one edge<br>- Flows across like a wave<br>- Each calculator does its one operation as data passes through<br>- Results emerge at the other side</p><p>I find this beautiful because matrix multiplication, the math that runs neural networks, is perfectly suited for this flow. You’re doing the same operation over and over, and each result feeds into the next calculation.</p><p><strong>Here’s where it gets interesting:</strong></p><blockquote>Your GPU spends about 70% of its time just moving data around. Only 30% actually computing.</blockquote><blockquote><strong>A TPU flips this</strong>: 20% moving data, 80% computing.</blockquote><p>At Google’s scale? That difference is worth billions.</p><p><strong>But here’s the twist I love:</strong></p><p>This isn’t new technology.</p><p>H.T. Kung at Carnegie Mellon University wrote about systolic arrays in a 1978 thesis. For signal processing. The idea got buried because these chips are incredibly inflexible, you design the grid for one specific calculation, and that’s all it can do.</p><p>For general computing, that inflexibility was a dealbreaker.</p><p>But for Google’s AI workloads? They’re running the same matrix operations billions of times. Transformer models are predictable math. When you know exactly what you’re computing, flexibility doesn’t matter.</p><p>The forgotten architecture became perfect for the modern problem.</p><p><em>Sometimes I wonder what other “dead” ideas are sitting in old papers, waiting for their moment.</em></p><p><strong>Why this actually matters?</strong></p><p>We’re living through a shift. From 2012–2023, AI ran on repurposed gaming chips. Now AI is big enough to justify building its own specialized hardware from scratch.</p><p>That’s why Anthropic is spending billions on TPUs while keeping GPUs around. They’re betting AI has reached the scale where specialization beats general-purpose tools. But honestly? They’re also hedging in case they’re wrong.</p><blockquote>P.S. This article is written in a humanized manner by <a href="https://www.aislop.review/">aislop.review</a>.</blockquote><h3>So, does that mean TPUs are better than GPUs?</h3><p>I’ve been thinking about this TPU vs GPU debate for months now, and honestly? I’m tired of the “which is better” question. It’s the wrong question entirely.</p><p>Here’s what I’ve figured out after watching companies make both brilliant and catastrophic decisions: it’s not about better. It’s about what you’re actually optimizing for.</p><h4>Trade-off #1: Specialization vs. Flexibility</h4><p><strong>TPUs</strong> are like that one friend who’s absolutely incredible at chess but can’t figure out how to use a can opener.</p><p>They’re surgical tools, 30% more cost-efficient at training transformers, completely useless for everything else.</p><p><strong>GPUs?</strong></p><p>Swiss Army knife.</p><p>Pretty good at AI, pretty good at graphics, decent at crypto mining. <br>Not perfect at anything, but you can actually build a business on them.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WvRpY2kkAJM09G244T8Z1g.png" /></figure><p><strong>Google training Gemini 3:</strong></p><p>Google training Gemini 3 on TPUs makes perfect sense. They know exactly what they’re building, they know it won’t change mid-training, and they’ll run billions of identical operations. At their scale, 30% efficiency = actual billions saved.</p><p><strong>Why Anthropic uses both:</strong> They’re big enough that TPU efficiency matters (30% savings at their scale = huge), but still innovating enough that GPU flexibility is insurance.</p><h4>Trade-off #2: Ecosystem Maturity vs. Raw Efficiency</h4><p>Here’s the brutal truth nobody wants to admit: CUDA has been around for 20 years. That’s two decades of tutorials, Stack Overflow answers, debugging tools, and CS students learning to think in CUDA.</p><p>When your TPU code breaks at 2 AM (and it will), you’re googling error messages that three other people have ever seen. When your GPU code breaks, there are 100,000+ answered questions waiting for you.</p><p>I’ve seen teams save 30% on compute costs with TPUs, then lose it all because their engineers spent 3x longer debugging weird edge cases. The “cheaper” option suddenly isn’t.</p><p><strong>GPU Ecosystem (Nvidia/CUDA):</strong></p><ul><li>CUDA has existed since 2006: nearly 20 years of tooling</li><li>Every ML tutorial assumes you’re using GPUs</li><li>PyTorch/TensorFlow default to GPU support</li><li>Stack Overflow: 100,000+ GPU questions answered</li><li>University CS programs teach CUDA</li><li>Debugging tools, profilers, optimization guides = abundant</li></ul><p><strong>TPU Ecosystem (Google/JAX/XLA):</strong></p><ul><li>JAX/TensorFlow work well but has a smaller community</li><li>Fewer tutorials, less Stack Overflow coverage</li><li>Debugging errors = harder (fewer people have seen your issue)</li><li>Hiring TPU-experienced engineers = more expensive/rare</li><li>Third-party libraries may not support TPUs</li></ul><p><strong>Why Anthropic hedges:</strong> They have TPU experts (many ex-Google engineers), so they can capture efficiency gains. But they keep GPUs for cases where ecosystem maturity accelerates development.</p><h4>Trade-off #3: Vendor Lock-in vs. Vertical Integration</h4><p>This is where it gets interesting strategically. TPUs only exist in Google Cloud. Period. You want TPUs, you’re Google’s customer, and they know it.</p><blockquote><strong>But here’s what’s clever, OpenAI reportedly got a 30% discount from Nvidia in 2024 by threatening to consider Google TPUs. They probably never intended to switch, but having the option gave them leverage.</strong></blockquote><p><strong>The TPU Lock-in:</strong></p><ul><li>Google controls entire stack (chip + compiler + software)</li><li>Tight integration = maximum performance</li><li>Google optimizes for their own use cases first (you benefit)</li><li>❌ <strong>Only available on Google Cloud</strong></li><li>❌ Can’t move to AWS or Azure without rewriting everything</li><li>❌ Negotiating leverage = zero (Google is the only TPU supplier)</li><li>❌ If Google discontinues a TPU generation, you’re stuck</li></ul><p><strong>The GPU Multi-Cloud Option:</strong></p><ul><li>Available on AWS, Azure, GCP, on-premise</li><li>Can switch providers if pricing/terms change</li><li>Use competition for negotiating leverage</li><li>Not dependent on single vendor’s roadmap</li><li>❌ Less optimization (no vertical integration)</li><li>❌ Higher cost per operation</li></ul><p><strong>The Anthropic Strategy:</strong></p><p>By using all three platforms (TPU + Trainium + GPU), Anthropic:</p><ul><li>Gets TPU cost efficiency where it makes sense</li><li>Maintains GPU as backup/leverage</li><li>Adds Amazon Trainium as AWS partnership requirement</li><li>Can play vendors against each other for pricing</li><li>Pays massive engineering complexity cost (more on this below)</li></ul><h4>Trade-off #4: The one nobody talks about: Engineering Complexity</h4><p>Now for the story nobody’s talking about. Anthropic runs on three platforms: TPUs, GPUs, and Amazon Trainium. Sounds smart, right? Diversification, cost optimization, vendor leverage.</p><p>In August-September 2025, Claude users reported degraded performance. Anthropic’s postmortem revealed <strong>three distinct infrastructure bugs</strong>, each affecting different platforms differently:</p><ol><li><strong>Context window routing error</strong> (16% of Sonnet 4 requests affected on one platform)</li><li><strong>Output corruption from TPU server misconfiguration</strong> (affected Opus 4 and Sonnet 4)</li><li><strong>XLA:TPU compiler bug</strong> (affected Haiku 3.5 for two weeks)</li></ol><p>Every model update has to be tested on three different architectures. Every bug has three potential causes. Every deployment is 3x more complex.</p><p><strong>Anthropic’s own words:</strong></p><blockquote><em>“We deploy Claude across multiple hardware platforms, namely AWS Trainium, NVIDIA GPUs, and Google TPUs… each bug produced different symptoms on different platforms at different rates. This created a confusing mix of reports that didn’t point to any single cause.”</em></blockquote><h4>What could be ideal?</h4><p>Most people reading this aren’t choosing between million-dollar compute budgets. So let’s be practical:</p><p><strong>Spending under $100K/year? Use GPUs. The ecosystem wins, the complexity isn’t worth it, and you need to move fast.</strong></p><p><strong>$100K to $10M?</strong> This is where it gets interesting. Try TPUs for your stable production stuff, the models you know work and won’t change much. Keep GPUs for experimentation. You’re big enough that 30% savings matter but not big enough to bet the company on Google’s roadmap.</p><p>Over $10M? Now you’re in Anthropic territory. The engineering complexity tax might be worth paying for vendor leverage and cost optimization. Maybe.</p><p>What is next?</p><h3>This isn’t really about Chips: It is what comes next!</h3><p>Let’s talk about what comes next, because the decisions being made today will reshape the entire AI industry.</p><h4><strong>Prediction #1: The Amazon/Trainium Dark Horse</strong></h4><p>Here’s what we didn’t cover enough: <strong>Amazon is quietly building the third pillar of AI infrastructure.</strong></p><p><strong>Why Trainium matters more than people realize:</strong></p><p>While everyone focuses on the Google vs Nvidia battle, Amazon has been methodically building:</p><ul><li><strong>Trainium (training chips):</strong> Custom silicon for training large models</li><li><strong>Inferentia (inference chips):</strong> Optimized for running models in production</li><li><strong>AWS as distribution:</strong> Already the largest cloud provider</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7sxYF8gWoM8zb5JF1m7_Xw.jpeg" /></figure><p><strong>The strategic advantage:</strong></p><p>Unlike Google (TPUs only on GCP), Amazon can offer Trainium to:</p><ul><li>The entire AWS customer base (dominant market share)</li><li>Companies already locked into AWS ecosystem</li><li>Enterprises that will never move to Google Cloud (Microsoft competitors, regulated industries)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DQhzu9IIGJ0ZEoz6wHlKBA.png" /><figcaption>Fig: AWS the dominant player of Cloud</figcaption></figure><p><strong>Who’s already using Trainium:</strong></p><ul><li><strong>Anthropic:</strong> Primary training partner (Project Rainier: hundreds of thousands of chips)</li><li><strong>Amazon’s own models:</strong> Titan, Alexa AI</li><li><strong>Growing roster of AWS customers</strong> testing it for cost optimization</li></ul><p><strong>Why this is significant:</strong></p><p>If you’re a company spending $50M/year on AWS already:</p><ul><li>Switching to GCP for TPUs = massive migration cost</li><li>Switching to Trainium = config change on same platform</li></ul><p><strong>The math changes completely.</strong></p><p><strong>The prediction:</strong> By 2027, we’ll see:</p><ul><li><strong>Trainium as the #2 custom silicon platform</strong> (after TPUs, ahead of everyone else)</li><li><strong>Anthropic-like multi-platform becoming standard</strong> (GPU + TPU + Trainium)</li><li><strong>AWS Trainium revenue rivaling Google’s TPU cloud revenue</strong></li></ul><p><strong>Why it’s not happening faster:</strong></p><p>Trainium is newer (2022 launch vs TPU’s 2015), ecosystem is less mature, and AWS is being cautious about competing too directly with Nvidia (their biggest GPU customer).</p><p>But the writing is on the wall: <strong>Every hyperscaler wants their own silicon.</strong></p><h4><strong>Prediction #2: Custom Silicon becomes standard at hyperscale</strong></h4><p><strong>The pattern we’re seeing:</strong></p><ul><li><strong>Google:</strong> TPUs (7 generations deep, powering all internal AI)</li><li><strong>Amazon:</strong> Trainium + Inferentia (aggressive expansion)</li><li><strong>Meta:</strong> <a href="https://www.aicerts.ai/news/meta-eyes-google-tpu-chips-in-high-stakes-ai-partnership/#:~:text=Reuters%20summarised%20that%20Meta%20might,of%20Nvidia%20revenue%20over%20time.">Reportedly in talks for massive TPU deployment</a></li><li><strong>Microsoft:</strong> <a href="https://www.varindia.com/news/Microsoft%E2%80%99s-Maia-AI-Chip-Delayed-to-2026,-Lags-Behind-Nvidia-and-Rivals#:~:text=The%20media%20speculates%2C%20the%20delay,chip%2C%20expected%20later%20this%20year.">Developing Maia and Cobalt AI chips</a></li><li><strong>Apple:</strong> Custom Neural Engine in every device</li><li><strong>Tesla:</strong> <a href="https://www.kukarella.com/news/tesla-shuts-down-dojo-supercomputer-project-shifts-ai-focus#:~:text=What%20Actually%20Happened,to%20leveraging%20external%2C%20specialized%20foundries.">Pivoting from Dojo to new AI5/AI6 chips </a>+ massive Nvidia Cortex cluster</li><li><strong>ByteDance:</strong> Rumored custom silicon program</li></ul><p><strong>What’s coming:</strong></p><p>Every company spending $100M+/year on AI compute will either:</p><ol><li><strong>Build their own ASIC</strong> (if you’re Google/Apple scale)</li><li><strong>Work with Broadcom/Marvell on semi-custom silicon</strong> (if you’re Meta/Microsoft scale)</li><li><strong>Use a mix of custom + commodity</strong> (if you’re Anthropic scale)</li></ol><p><strong>Why this is inevitable:</strong></p><p>At billion-dollar compute budgets, 30% efficiency = <strong>$300M saved annually</strong>. Even if custom chip development costs $100M upfront, ROI is less than 6 months.</p><p><strong>The companies positioned to win:</strong></p><ul><li><strong>Broadcom:</strong> Already designing Google’s TPUs, Meta’s chips, Apple’s silicon</li><li><strong>TSMC:</strong> Manufacturing all custom AI chips (same bottleneck as Nvidia)</li><li><strong>Marvell:</strong> Second-largest custom chip designer, AWS’s Trainium partner</li></ul><p><strong>Who this leaves behind:</strong></p><p>Companies spending &lt;$10M/year on compute. For them, GPUs remain the only viable option. The ecosystem advantage is insurmountable.</p><p><strong>The result: A two-tier AI industry emerging:</strong></p><ul><li><strong>Tier 1 (hyperscalers):</strong> Custom silicon, 30% cost advantage, vertical integration</li><li><strong>Tier 2 (everyone else):</strong> Nvidia GPUs, slower, more expensive, but ecosystem advantages</li></ul><p><strong>Prediction #3: The Nvidia moat weakens</strong></p><p><strong>What’s happening:</strong></p><ul><li>Google proved you can train frontier models without Nvidia (Gemini 3)</li><li>Anthropic proved multi-platform is viable at scale (1M TPUs)</li><li>Amazon is aggressively pushing Trainium</li><li>Even OpenAI used TPU leverage for Nvidia discounts</li></ul><p><strong>What this means:</strong></p><p>Nvidia’s AI market share will decline from ~95% to ~60–70% over the next 3–5 years.</p><p><strong>But they’ll remain dominant because:</strong></p><ul><li>CUDA ecosystem is too entrenched (20 years of developer mindshare)</li><li>Most companies are below the scale where alternatives make sense</li><li>Nvidia’s innovation velocity is actually accelerating (Blackwell → Rubin → next gen)</li><li>Gaming/graphics revenue provides cushion (unlike pure-play AI chip startups)</li></ul><p><strong>The parallel:</strong> Intel vs AMD in CPUs. AMD gained significant share, but Intel still leads. Nvidia will follow a similar path where they have a weakened monopoly, but still stay as the market leader.</p><p><strong>The wildcard:</strong> If Nvidia’s next-gen chips (post-Blackwell) significantly outperform custom silicon, the pendulum could swing back.</p><h4><strong>Prediction #4: Multi-Platform becomes the norm</strong></h4><p><strong>Right now:</strong> Running across TPU + Trainium + GPU is painful (see: Anthropic’s August 2025 bugs)</p><p><strong>The future:</strong> Software tooling will abstract away hardware differences</p><p><strong>Think about what happened with databases:</strong></p><ul><li><strong>2000s:</strong> Switching from Oracle to MySQL = rewrite everything</li><li><strong>2020s:</strong> Modern ORMs let you switch databases with config changes</li></ul><p><strong>The same will happen for AI chips:</strong></p><p>Frameworks will emerge that let you write code once, deploy to any chip:</p><ul><li>High-level abstractions that compile to TPU/GPU/Trainium</li><li>Automated testing across platforms</li><li>Unified debugging tools</li><li>“Hardware-agnostic” becoming the default</li></ul><p><strong>Who’s building this:</strong></p><ul><li><strong>Google (JAX):</strong> Already more portable than CUDA, compiles to TPU/GPU</li><li><strong>OpenAI (Triton):</strong> Hardware-agnostic kernel language</li><li><strong>Meta (PyTorch 2.0):</strong> Better compilation targets</li><li><strong>Startups:</strong> Modal, Anyscale, etc. focusing on multi-cloud ML</li></ul><p><strong>When this happens:</strong> Multi-platform stops being “Anthropic can afford the pain” and becomes “everyone does this by default.”</p><p><strong>The tipping point:</strong> When debugging complexity drops by 10×, adoption accelerates rapidly.</p><p><strong>Timeline:</strong> 2–3 years for tooling maturity, 5 years for widespread adoption</p><h4><strong>Prediction #5: Energy becomes the real bottleneck</strong></h4><blockquote><a href="https://thecerebralai.com/how-much-energy/">Training GPT-4 scale models required ~25,000 GPUs</a> running for months. The energy consumption is equivalent to powering a small city.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FVZ2goAmJo7A6OGGUDL1Yw.png" /></figure><p>As models get bigger:</p><ul><li>Data centers hit <strong>power limits</strong> (can’t add more GPUs if your facility can’t supply electricity)</li><li>Energy costs become <strong>majority of operating expense</strong></li><li>Regulatory pressure on AI energy use increases (EU, California already proposing limits)</li></ul><p><strong>Why this matters MORE than chip costs:</strong></p><p>You can negotiate chip prices. You can’t negotiate physics.</p><p><strong>Current situation:</strong></p><ul><li>A single H100 GPU: ~700W power consumption</li><li>A TPU v5e chip: ~450W for equivalent AI compute</li><li>Scale to 100,000 chips: <strong>30–70 megawatts difference</strong></li></ul><p>At the scale of training GPT-5 or Gemini 4, energy efficiency might be the PRIMARY constraint, not chip availability or cost.</p><p><strong>The companies positioned to win:</strong></p><ul><li><strong>Google:</strong> TPUs are significantly more energy-efficient per operation</li><li><strong>Amazon:</strong> Building data centers near hydroelectric power (cheap renewable energy)</li><li><strong>Whoever cracks algorithmic efficiency:</strong> Train GPT-4 quality with 10× less compute</li></ul><p><strong>The dark horse bet:</strong></p><p>Neuromorphic chips (like Intel’s Loihi, IBM’s TrueNorth) that mimic biological brains for <strong>orders of magnitude better energy efficiency</strong>.</p><p>Currently niche, but if energy regulations tighten or electricity costs spike, physics might force their adoption.</p><p><strong>Timeline:</strong> 3–5 years before energy becomes the binding constraint (we’re already seeing early signs)</p><h3>Final thought</h3><p>In 2013, Google’s team ran calculations that scared them into building custom chips.</p><p>In 2022, Amazon ran similar math and built Trainium.</p><p>In 2025, every major AI company is running those same calculations.</p><p>The question isn’t whether the infrastructure layer transforms, it’s who adapts fastest.</p><p>Because the chip you train on determines how fast you iterate, how much you spend, whether you survive margin compression, and if you’re beholden to vendors who could cut you off.</p><p>The next five years won’t be won by algorithms alone. They’ll be won by whoever figures out training at scale without going bankrupt, staying independent without breaking their systems, and keeping the lights on as models get bigger.</p><p>Google’s got efficiency figured out. Anthropic’s pioneering flexibility. Amazon’s the dark horse for both. Nobody’s solved the energy problem yet.</p><p>The company that cracks all three will own the 2030s.</p><p>And now you understand the game better than most people playing it.</p><p>What do you think!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=89def9068c2c" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>