<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Matthew Revell</title>
    <description>The latest articles on Forem by Matthew Revell (@matthewrevell).</description>
    <link>https://forem.com/matthewrevell</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F157525%2Fb47266bf-dccb-4566-b01e-733c103702d5.jpg</url>
      <title>Forem: Matthew Revell</title>
      <link>https://forem.com/matthewrevell</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/matthewrevell"/>
    <language>en</language>
    <item>
      <title>Solana Writing Challenge: End of Epoch 1</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 15 May 2026 09:45:48 +0000</pubDate>
      <link>https://forem.com/100daysofsolana/solana-writing-challenge-end-of-epoch-1-1jl9</link>
      <guid>https://forem.com/100daysofsolana/solana-writing-challenge-end-of-epoch-1-1jl9</guid>
      <description>&lt;p&gt;If you’ve been taking part in &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt; so far, you’ve probably discovered that Web3 isn’t as mysterious as it first appears.&lt;/p&gt;

&lt;p&gt;And now it's your turn to help other web and mobile developers make the same realization.&lt;/p&gt;

&lt;p&gt;To celebrate the end of Epoch 1, where we looked at Solana fundamentals, we're running a week-long &lt;strong&gt;100 Days of Solana Writing Challenge&lt;/strong&gt;. The focus is simple: write a DEV post that helps another developer understand, build, debug, or try something in Solana.&lt;/p&gt;

&lt;p&gt;You don’t need to be an expert. You don’t need to write the definitive guide to anything. The best post might be a small explanation, a useful analogy, a bug you fixed, a project you built, or the moment a concept finally clicked.&lt;/p&gt;

&lt;p&gt;What matters is that another developer can read it and come away thinking: “Okay, that makes more sense now.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Prizes
&lt;/h2&gt;

&lt;p&gt;And, of course, we have prizes.&lt;/p&gt;

&lt;p&gt;We’ll award &lt;strong&gt;$500&lt;/strong&gt; prizes in three categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Most helpful post:&lt;/strong&gt; for the post that does the best job of helping another developer understand, build, debug, or try something in Solana.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Most read, on-topic post:&lt;/strong&gt; for the eligible post with the most reads during the challenge period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best posting streak:&lt;/strong&gt; for the strongest set of &lt;strong&gt;four high-quality, helpful posts&lt;/strong&gt; published during the challenge week.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also have &lt;strong&gt;ten DEV++ subscriptions&lt;/strong&gt; for notable submissions that stand out for clarity, originality, practical value, or community spirit.&lt;/p&gt;

&lt;p&gt;To be eligible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your post must be published on DEV between &lt;strong&gt;15 May and 22 May&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Your post must include the &lt;a href="https://dev.to/100daysofsolana"&gt;100daysofsolana&lt;/a&gt; tag&lt;/li&gt;
&lt;li&gt;Your post must be relevant to Solana or your 100 Days of Solana learning journey&lt;/li&gt;
&lt;li&gt;Your post must be written to help other developers, not just to announce participation&lt;/li&gt;
&lt;li&gt;You must be registered for the &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana challenge&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://mlh.link/solanawrite-epoch1" rel="noopener noreferrer"&gt;Use our template to get started&lt;/a&gt;!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions?
&lt;/h2&gt;

&lt;p&gt;Have questions about the challenge or whether your post idea fits?&lt;/p&gt;

&lt;p&gt;Ask in the &lt;strong&gt;100 Days of Solana Discord channel&lt;/strong&gt;. We’re happy to help you find an angle, shape an idea, or turn something you learned into a useful DEV post.&lt;/p&gt;

&lt;p&gt;If you're having trouble joining the Discord, &lt;a href="mailto:solana-100@mlh.io"&gt;email us&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>learning</category>
      <category>writing</category>
    </item>
    <item>
      <title>Arc 3 Catch-Up: Solana Transactions Explained for Web2 Developers</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Mon, 11 May 2026 12:32:11 +0000</pubDate>
      <link>https://forem.com/100daysofsolana/arc-3-catch-up-solana-transactions-explained-for-web2-developers-4f5i</link>
      <guid>https://forem.com/100daysofsolana/arc-3-catch-up-solana-transactions-explained-for-web2-developers-4f5i</guid>
      <description>&lt;p&gt;Arc 3 of &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt; was the arc where Solana stopped being something we &lt;em&gt;read from&lt;/em&gt; and started being something we &lt;em&gt;wrote to&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Across the arc, we inspected transactions, sent SOL on devnet, built a transfer tool, tracked confirmation, and deliberately triggered failures. That shift changes how everything else fits together: accounts, programs, fees, confirmation, errors, and application state.&lt;/p&gt;

&lt;p&gt;They all hang off one idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Solana transaction is a signed request to change on-chain state.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Reading is pretty much like Web2. Writing is not.
&lt;/h2&gt;

&lt;p&gt;Reading from Solana maps neatly onto things most Web2 developers already do. You ask for a balance. You fetch account data. You look up a transaction. The network answers.&lt;/p&gt;

&lt;p&gt;Writing is different. It is closer to making a &lt;code&gt;POST&lt;/code&gt; request that changes production data, except there is no single server receiving it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwetpmub28c6vp6eabxyh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwetpmub28c6vp6eabxyh.jpg" alt="Infographic titled “From Read to Write” showing the Arc 3 mental model for 100 Days of Solana. The left panel, labeled “READ,” lists getBalance(), fetch account data, look up transaction, and network answers. An arrow points to the right panel, labeled “WRITE,” which lists build transaction, sign transaction, submit to network, and state changes." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In a Web2 app, a write usually follows a familiar path: take some input, check authorization, run logic, change state, return a result. Solana has the same broad shape, but the mechanics are different. To change state, you create a transaction: a signed, time-limited message that says which accounts are involved, which program should run, and what instruction that program should execute.&lt;/p&gt;

&lt;p&gt;That is why a SOL transfer is such a useful first write. It is small enough to understand, but it contains the ingredients that keep showing up across Solana development: accounts, signatures, instructions, fees, confirmation, and failure modes.&lt;/p&gt;

&lt;p&gt;Calling a program, minting a token, swapping an asset, or updating application state all build on the same foundation. The details change, but the shape remains familiar: prepare the instruction, sign the transaction, submit it to the network, and handle the result.&lt;/p&gt;

&lt;p&gt;That was the real purpose of Arc 3: not just sending SOL, but learning Solana’s write path.&lt;/p&gt;

&lt;h2&gt;
  
  
  The HTTP analogy helps, until it doesn't
&lt;/h2&gt;

&lt;p&gt;If you're coming from a Web2 background, the easiest on-ramp is to think of a Solana transaction as something like an HTTP request. At first, the comparison is useful. A transaction has structure, travels over the network, carries authorization, asks another system to do something, and produces a result you can inspect afterwards.&lt;/p&gt;

&lt;p&gt;But it breaks down once you look closer.&lt;/p&gt;

&lt;p&gt;An HTTP request is handled by an application server or backend service. A Solana transaction is validated by a network.&lt;/p&gt;

&lt;p&gt;An HTTP request usually authenticates with a cookie, API key, or bearer token. A Solana transaction is signed with a cryptographic keypair before it leaves your machine.&lt;/p&gt;

&lt;p&gt;And unlike a chain of separate API calls, a Solana transaction is atomic. If one instruction fails, the whole transaction fails. You do not get partial success where step two worked but step three did not.&lt;/p&gt;

&lt;p&gt;There is also a freshness constraint. Every transaction includes a recent blockhash, which means it is only valid for a short window before the network refuses it.&lt;/p&gt;

&lt;p&gt;So maybe it's better to think of it like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A Solana transaction is a signed message that says: “Run these instructions, against these accounts, before this short validity window closes.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That makes it different from a normal API request. It is authorized before it is sent, it only works for a short window, and it succeeds or fails as one unit. On Solana, that short window is enforced with a recent blockhash, which stops old transactions from being replayed forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's actually inside a transaction
&lt;/h2&gt;

&lt;p&gt;Transactions can feel abstract because most of the time we only see the receipt: a signature, a success message, or an Explorer link.&lt;/p&gt;

&lt;p&gt;But a transaction is not just a receipt. It is the actual message sent to the network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp7qopgmw5gpi8h9u5ll.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp7qopgmw5gpi8h9u5ll.jpg" alt="Infographic titled “What’s Inside a Transaction?” showing the anatomy of a Solana transaction. A central transaction card lists four parts: signatures, which show who authorized the transaction; account keys, which show which accounts are touched; recent blockhash, used as a freshness check; and instructions, which define what should run. A side note explains that account order matters because the header uses position to determine signer, writable, and read-only permissions." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have ever opened your browser’s network tab and inspected a request, the idea is similar. You stop seeing “the button worked” and start seeing the parts underneath: who sent the request, what data went with it, what endpoint it hit, and what the server returned.&lt;/p&gt;

&lt;p&gt;Solana gives us the same kind of visibility. Using &lt;code&gt;solana confirm -v&lt;/code&gt; and Solana Explorer, you can open up a transaction and see the main pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Signatures&lt;/strong&gt;: proof of who authorized the transaction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Account keys&lt;/strong&gt;: the accounts the transaction reads from or writes to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recent blockhash&lt;/strong&gt;: the freshness check that helps stop old transactions being replayed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instructions&lt;/strong&gt;: the operations the transaction asks a program to run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The account list is not just a bag of addresses. Its ordering matters. The transaction header uses position to work out which accounts are signers, which are writable, and which are read-only.&lt;/p&gt;

&lt;p&gt;You do not need to memorize the whole transaction format before building anything. The important thing is to see that a transaction is structured data, not magic.&lt;/p&gt;

&lt;p&gt;It has authorization. It has inputs. It has instructions. It has constraints.&lt;/p&gt;

&lt;p&gt;Once you have seen that structure once, a transaction stops feeling like a mysterious blockchain blob and starts looking more like something a developer can inspect, reason about, and debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a simple SOL transfer teaches so much
&lt;/h2&gt;

&lt;p&gt;A SOL transfer is a good first write because it is small enough to follow, but complete enough to show the full pattern.&lt;/p&gt;

&lt;p&gt;In Web2 terms, it is like starting with the simplest useful endpoint: &lt;code&gt;POST /transfer&lt;/code&gt;. You are not building the whole application yet, but you are exercising the important pieces of a write path.&lt;/p&gt;

&lt;p&gt;A single SOL transfer includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;fee payer&lt;/strong&gt;, who pays for the transaction&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;source account&lt;/strong&gt;, where the SOL comes from&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;recipient public key&lt;/strong&gt;, where the SOL is going&lt;/li&gt;
&lt;li&gt;an &lt;strong&gt;amount&lt;/strong&gt;, measured in lamports&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;System Program instruction&lt;/strong&gt;, which performs the transfer&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;signature&lt;/strong&gt;, which authorizes it&lt;/li&gt;
&lt;li&gt;an &lt;strong&gt;Explorer record&lt;/strong&gt;, which proves what happened&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a lot of Solana in one action. It shows accounts, signatures, instructions, fees, confirmation, and verification without needing to write a custom program first.&lt;/p&gt;

&lt;p&gt;It also introduces an important idea for Arc 4: a public key can exist before there is an on-chain account for it. When SOL lands at a brand-new recipient, the System Program can create the account state the network will track from that point on.&lt;/p&gt;

&lt;p&gt;That is the first hint that an “account” on Solana is not just another word for “wallet.” It is where state lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping a transfer in a tool
&lt;/h2&gt;

&lt;p&gt;Running a transfer from the CLI proves the basic idea. Turning it into a tool makes the pattern reusable.&lt;/p&gt;

&lt;p&gt;In Arc 3, that tool was a small Node.js command-line app built with &lt;code&gt;@solana/kit&lt;/code&gt;, the newer Solana JavaScript SDK. You will still see plenty of tutorials using &lt;code&gt;@solana/web3.js&lt;/code&gt;, so it is useful to know both names.&lt;/p&gt;

&lt;p&gt;The tool did the same things a good wrapper around any important operation should do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;accept a recipient and amount&lt;/li&gt;
&lt;li&gt;validate the input&lt;/li&gt;
&lt;li&gt;check the sender’s balance&lt;/li&gt;
&lt;li&gt;build and sign the transaction&lt;/li&gt;
&lt;li&gt;submit it to devnet&lt;/li&gt;
&lt;li&gt;print an Explorer link as a receipt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That shape should feel familiar. If you have ever wrapped a payment API, built an internal CLI, or added guardrails around a production write, you already know the pattern: validate, prepare, execute, return something the user can trust.&lt;/p&gt;

&lt;p&gt;The difference is what sits underneath.&lt;/p&gt;

&lt;p&gt;This tool was not sending a normal API request to one company’s backend. It was creating a signed transaction and submitting it to a decentralized network.&lt;/p&gt;

&lt;p&gt;That was the practical bridge in Arc 3: moving from “I understand what a transaction is” to “I can build something that uses one.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Confirmation is a product decision
&lt;/h2&gt;

&lt;p&gt;One of the most useful realizations in Arc 3 was that “success” on Solana is not a single moment.&lt;/p&gt;

&lt;p&gt;A transaction moves through commitment levels: &lt;strong&gt;processed&lt;/strong&gt;, &lt;strong&gt;confirmed&lt;/strong&gt;, and &lt;strong&gt;finalized&lt;/strong&gt;. Each stage tells you something different about how far the transaction has moved through the network.&lt;/p&gt;

&lt;p&gt;For developers, that is not just blockchain terminology. It affects the product experience.&lt;/p&gt;

&lt;p&gt;If you are building a wallet, payment flow, marketplace, game, or developer tool, you have to decide what the user sees after they click the button.&lt;/p&gt;

&lt;p&gt;Do you show “pending” as soon as the transaction is submitted? Do you show success once it is confirmed? Do you wait for finalization before enabling the next action? Do you include an Explorer link so the user can verify the result themselves?&lt;/p&gt;

&lt;p&gt;A signature is a receipt, but not an explanation. Good tools show progress.&lt;/p&gt;

&lt;p&gt;That is why the Arc 3 tool added confirmation feedback. It helped turn the gap between “sent” and “settled” into something visible, understandable, and useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failed transactions are still real transactions
&lt;/h2&gt;

&lt;p&gt;The most useful thing we did in Arc 3 was break things on purpose.&lt;/p&gt;

&lt;p&gt;We tried sending from an empty wallet. We tried sending more SOL than the wallet held. We skipped preflight checks to push a doomed transaction onto the network anyway. Then we inspected what came back: CLI output, Explorer pages, logs, and transaction metadata.&lt;/p&gt;

&lt;p&gt;The lesson is important for Web2 developers: on Solana, a failed transaction is still a real transaction attempt.&lt;/p&gt;

&lt;p&gt;If signature verification succeeds, the transaction can still pay the base signature fee — 5,000 lamports per signature, before any optional priority fee — even if execution later fails. Validators still did work. The chain still attempted the change. The intended state change failed, but the fee was still real.&lt;/p&gt;

&lt;p&gt;That reframes error handling.&lt;/p&gt;

&lt;p&gt;You validate before signing. You simulate before submitting. You read structured errors like &lt;code&gt;meta.err&lt;/code&gt; and &lt;code&gt;InstructionError&lt;/code&gt;. You watch for blockhash expiry. You design flows that avoid wasting user fees on failures you could have caught earlier.&lt;/p&gt;

&lt;p&gt;In Web2, error handling is mostly about user experience and reliability. On Solana, it is also part of the cost model.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Arc 3 sets up
&lt;/h2&gt;

&lt;p&gt;Strip Arc 3 back to its core and the main ideas are clear:&lt;/p&gt;

&lt;p&gt;Transactions are how Solana changes state. They are signed before submission. They contain instructions. Those instructions act on accounts. Confirmation happens in stages. Failed transactions can still cost money.&lt;/p&gt;

&lt;p&gt;That leads directly to the next question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If transactions change state, where does that state live?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On Solana, the answer is accounts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowqfql0d8qeg06egyi13.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowqfql0d8qeg06egyi13.jpg" alt="Infographic titled “Where Does State Live?” with an “Arc 4 Preview” label. A card on the left says “Transactions change state,” with an arrow pointing to a larger card labeled “Accounts.” The accounts card lists three ideas: store state, define ownership, and hold data. A caption explains that Arc 4 explores how state is stored, who owns it, and how programs interact with it." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is where Arc 4 goes next: how state is stored, who owns it, and how programs interact with it.&lt;/p&gt;

&lt;p&gt;Use this post as the map, revisit the Arc 3 challenges whenever you want the hands-on version, and jump into Arc 4 from here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;Join us on the 100 Days of Solana journey!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>100daysofsolana</category>
      <category>web3</category>
      <category>blockchain</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Best AI Agent Frameworks for Production in 2026 (OpenClaw + Gemini)</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Thu, 07 May 2026 12:18:03 +0000</pubDate>
      <link>https://forem.com/matthewrevell/best-ai-agent-frameworks-for-production-in-2026-openclaw-gemini-30o7</link>
      <guid>https://forem.com/matthewrevell/best-ai-agent-frameworks-for-production-in-2026-openclaw-gemini-30o7</guid>
      <description>&lt;h2&gt;
  
  
  TLDR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenClaw + an agent framework + Gemini is a practical default production architecture for long-context, tool-heavy agents.&lt;/li&gt;
&lt;li&gt;Gemini 3.1 Pro is OpenClaw's recommended default model (&lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt;), mostly for its 1M token context window and native tool-use support.&lt;/li&gt;
&lt;li&gt;LangChain/LangGraph is one of the most widely used combinations for Gemini + OpenClaw workflows in production.&lt;/li&gt;
&lt;li&gt;Frameworks covered: LangChain, LangGraph, CrewAI, AutoGen, Google ADK, SmolAgents.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;A code-review agent fetches a pull request, analyzes three files, flags an issue, then loops back to re-examine the diff. Somewhere between steps two and three, tool call history drops out of context. The agent hallucinates a fix or stalls. The reasoning step succeeded. The state didn't persist.&lt;/p&gt;

&lt;p&gt;These failures are rarely dramatic. They show up as lost context, repeated tool calls, inconsistent state between steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.openclaw.ai" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt; runs execution and manages tool runtimes. Agent frameworks control orchestration and workflow logic. Gemini provides reasoning. The question is which framework connects those layers without introducing new points of failure. Other models like Claude and GPT-4 may outperform Gemini in raw reasoning depth or autonomous decision-making, but for OpenClaw's workload profile (large codebases, multi-step tool execution, long sessions), Gemini's 1M token context window means the model can often hold an entire agent session in memory without chunking tricks.&lt;/p&gt;

&lt;p&gt;Recent Gemini API improvements preserve tool call history and responses across steps. That single change helps address a major source of agent failure in multi-step loops. This guide breaks down which frameworks fit which workflows, with Gemini as the LLM backbone and &lt;a href="https://docs.openclaw.ai/providers/google" rel="noopener noreferrer"&gt;OpenClaw as the execution environment&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is an AI Agent Framework?
&lt;/h2&gt;

&lt;p&gt;An agent framework is the software layer that orchestrates LLM calls, tool invocations, and memory management. It sits between the execution environment and the reasoning model, managing state, branching, retries, and multi-agent coordination.&lt;/p&gt;

&lt;p&gt;Three trends define the 2026 landscape. First, Gemini API improvements have reduced tool call history loss in multi-step workflows, shifting some state management burden away from frameworks. Second, MCP and A2A protocols are gaining adoption, giving agents standardized ways to interoperate across frameworks. Third, &lt;a href="https://www.langchain.com/blog/langsmith-is-now-available-in-google-cloud-marketplace" rel="noopener noreferrer"&gt;LangSmith is now available on Google Cloud Marketplace&lt;/a&gt;, giving production teams observability tooling on the same cloud infrastructure where many Gemini workloads already run.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Choose: A Quick Decision Heuristic
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simple or single-task agents&lt;/strong&gt; → SmolAgents, or skip the framework entirely&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast role-based prototyping&lt;/strong&gt; → CrewAI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversational multi-agent loops&lt;/strong&gt; → AutoGen&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complex stateful or cyclical workflows&lt;/strong&gt; → LangGraph&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google-native stack with first-party tooling&lt;/strong&gt; → Google ADK&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production workflows needing governance and observability&lt;/strong&gt; → LangChain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, framework choice usually comes down to failure modes: use LangGraph when state consistency matters, CrewAI when speed of iteration matters, and AutoGen when behavior emerges from interaction rather than control flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Concrete Example: Code-Review Agent with OpenClaw + LangGraph + Gemini
&lt;/h2&gt;

&lt;p&gt;Consider a code-review agent that monitors a repository for new pull requests. OpenClaw runs the agent, manages &lt;a href="https://docs.openclaw.ai/tools-and-plugins" rel="noopener noreferrer"&gt;tool access&lt;/a&gt; (GitHub API, linter, static analysis), and handles auth. LangGraph defines the workflow as a graph with nodes for fetching the PR diff, analyzing each changed file, flagging issues, and conditionally looping back if the analysis is incomplete.&lt;/p&gt;

&lt;p&gt;Gemini 3.1 Pro powers reasoning at each node. Because OpenClaw workflows often involve large codebases and multi-step tool execution, Gemini's 1M token context window means the full diff, linter output, and prior analysis can stay in a single session without chunking or state rehydration. LangGraph's cycle support enables a human-in-the-loop checkpoint: a reviewer approves or rejects flagged issues before the agent posts comments.&lt;/p&gt;

&lt;p&gt;When the agent encounters an ambiguous diff (a refactor that changes function signatures across multiple files, for example), LangGraph's cycle support means it can loop back to re-examine surrounding context rather than failing silently or hallucinating an interpretation. With LangSmith connected, each node's inputs, outputs, and latency are traceable. Debugging a misbehaving review step stays straightforward even when the graph has cycled multiple times.&lt;/p&gt;

&lt;p&gt;You end up with a stateful, auditable agent that doesn't lose context between steps. The framework manages the graph. OpenClaw manages execution. Gemini powers reasoning.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Best AI Agent Frameworks for OpenClaw in 2026
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. LangChain + LangGraph
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;LangChain is commonly used in production setups for Gemini + OpenClaw workflows. The team updated their Google GenAI integration using Google's consolidated Generative AI SDK, accessible through the &lt;code&gt;langchain-google-genai&lt;/code&gt; package and the &lt;code&gt;ChatGoogleGenerativeAI&lt;/code&gt; class. LangGraph adds stateful, cyclical workflow graphs on top of LangChain's chain primitives.&lt;/p&gt;

&lt;p&gt;LangSmith, LangChain's observability and tracing platform, became available on Google Cloud Marketplace in February 2026. &lt;a href="https://www.langchain.com/blog/introducing-agent-builder-template-library" rel="noopener noreferrer"&gt;Agent Builder templates launched in January 2026&lt;/a&gt; with native support for Gemini models, lowering the barrier to production agent builds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Production workflows requiring governance, audit logs, and complex state management with Gemini as the reasoning layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Updated Gemini integration (langchain-google-genai)&lt;/strong&gt; lets you use both Gemini API and Vertex AI through a single package, with &lt;code&gt;createDeepAgent&lt;/code&gt; supporting &lt;code&gt;google_genai:gemini-3-flash-preview&lt;/code&gt; as a model string&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;500+ integrations&lt;/strong&gt; cover vector stores (Pinecone, FAISS), document loaders, and retrieval chains out of the box&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LangSmith on Google Cloud Marketplace&lt;/strong&gt; gives production teams observability without leaving their existing cloud infrastructure. LangSmith traces at the node level in LangGraph graphs, which matters when agents loop or branch unexpectedly and you need to pinpoint where behavior diverged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cycle and branch support&lt;/strong&gt; in LangGraph means agents can loop, retry, and conditionally fork, not just execute linear DAGs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apache-2.0 license&lt;/strong&gt; with built-in audit log support makes LangChain viable for regulated environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Steeper learning curve&lt;/strong&gt; than CrewAI or SmolAgents, particularly around LangGraph's graph-based mental model. The full stack has real setup overhead; teams new to graph-based workflows should expect several days before reaching productive iteration speed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verbose abstractions&lt;/strong&gt; can slow early iteration when you're still validating whether the agent concept works at all. Swapping a single chain component triggered cascading type errors across three abstraction layers, turning a five-minute experiment into an hour of debugging imports.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (Apache-2.0). LangSmith has paid tiers for production tracing and observability.&lt;/p&gt;

&lt;p&gt;Something to consider: Google Cloud's Vertex AI SDK &amp;amp;quot;Generative AI module&amp;amp;quot; is deprecated, with removal scheduled for June 24, 2026. If you're on the old SDK, migrate to &lt;code&gt;langchain-google-genai&lt;/code&gt; before that deadline.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. CrewAI
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;If you need a working multi-agent prototype by end of day, CrewAI is probably where you start. Define agent &amp;amp;quot;crews&amp;amp;quot; with distinct roles (researcher, writer, coder), assign them tasks, and CrewAI handles delegation. Gemini integration works through &lt;code&gt;langchain-google-genai&lt;/code&gt; or direct Gemini API calls. Version 0.5.2 is stable as of 2026 under the MIT license.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Fast prototyping of role-based agent teams with Gemini as the shared LLM backbone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A relatively small amount of code&lt;/strong&gt; to define a working multi-agent crew. Genuinely the fastest path from idea to running prototype.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower cost-per-query&lt;/strong&gt; than AutoGen according to some third-party benchmarks, though the gap varies by workload&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intuitive role abstraction&lt;/strong&gt; maps well to OpenClaw's task model, where distinct tools and responsibilities already exist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fewer third-party integrations&lt;/strong&gt; than LangChain (roughly an order of magnitude fewer), which limits extensibility for complex pipelines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No native RBAC&lt;/strong&gt; and only basic streaming support, which matters once you move beyond prototyping into production with access control requirements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No built-in persistent memory store.&lt;/strong&gt; Agents share context through task outputs passed sequentially. This works for short workflows but falls apart in long-running sessions where accumulated state matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based abstraction complicates unit testing.&lt;/strong&gt; CrewAI's role model is intuitive until you need to test a single agent's decisions in isolation. At that point, the crew's delegation logic becomes something you have to mock around, and the mocking gets ugly fast once you have three or more agents passing context.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Microsoft AutoGen
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;Where most frameworks have you define explicit workflows, AutoGen takes a different approach: agents communicate through message passing, and complex behaviors emerge from dialogue patterns. Python and .NET are both supported. Version 0.4.5 is current, licensed under MIT.&lt;/p&gt;

&lt;p&gt;Gemini integration is available via adapters or OpenAI-compatible layers in some setups, but Gemini is not a natively supported first-class model in AutoGen's SDK.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Conversational agent loops and research automation workflows where emergent multi-agent behavior is the goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Emergent multi-agent behaviors&lt;/strong&gt; arise naturally from AutoGen's conversational design, which suits exploratory and research-oriented workflows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python and .NET dual support&lt;/strong&gt; broadens team compatibility when not everyone writes Python&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active development community&lt;/strong&gt; with strong representation in academic and research use cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Higher token usage per query&lt;/strong&gt; than LangChain-based approaches, based on directional signals from third-party benchmarks. The conversational loop model also makes it harder to predict token costs at scale, since back-and-forth exchange counts vary per run. Budget for 2-3x your initial estimates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2025 API shifts broke portions of legacy code&lt;/strong&gt;, documented across &lt;a href="https://github.com/microsoft/autogen" rel="noopener noreferrer"&gt;GitHub issues&lt;/a&gt;, which creates real migration risk for existing projects. If you built on AutoGen before 0.4, expect to rewrite, not refactor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini requires adapter layers&lt;/strong&gt;, adding a failure surface compared to frameworks with native Gemini API support. Adapter mismatches can silently drop tool call metadata, the kind of bug you don't catch until your agent starts repeating itself three steps into a loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limited built-in observability.&lt;/strong&gt; AutoGen lacks tracing comparable to LangSmith. Production debugging typically requires custom logging infrastructure, which adds engineering overhead that teams consistently underestimate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Google ADK (Agent Development Kit)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;Google ADK is the only framework here that talks to the Gemini API without any adapter layer. It supports MCP and A2A protocols for agent interoperability, which can be useful if you're planning for multi-agent communication across framework boundaries. The framework is still emerging, though, with a smaller community than LangChain or CrewAI and fewer production deployments to learn from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers building on a Google-native stack who want first-party tooling and protocol-level interoperability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native Gemini API support&lt;/strong&gt; eliminates the adapter layer entirely, reducing the number of things that can break between your code and the model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP/A2A protocol support&lt;/strong&gt; enables cross-agent interoperability as these protocols gain adoption. Concretely, agents built with ADK can communicate with agents built on LangGraph, CrewAI, or custom setups, so you're not locked into a single framework as your system grows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roadmap alignment with Gemini&lt;/strong&gt; means updates tend to track Gemini API releases closely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smaller community and documentation&lt;/strong&gt; compared to LangChain or CrewAI. When you hit an edge case, you're often reading source code rather than Stack Overflow answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fewer production examples&lt;/strong&gt; in the wild make it harder to evaluate edge-case behavior before committing. Community-contributed integrations and battle-tested deployment patterns are still limited compared to LangChain's ecosystem of 500+ integrations or CrewAI's growing library of role templates. The documentation covers the happy path well but has less to say on error handling and retry semantics, which is exactly where you need guidance in production.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Contact Google for enterprise pricing.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. LangGraph (Without Full LangChain Stack)
&lt;/h3&gt;

&lt;p&gt;Most of the orchestration power in the LangChain ecosystem comes from LangGraph, not LangChain itself. If you don't need chains, retrievers, or document loaders, LangGraph works as a standalone graph-based workflow engine with the same cycle support and state management, minus the overhead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Complex workflows with branching, cycles, and human-in-the-loop checkpoints where full LangChain abstractions aren't needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fine-grained state control&lt;/strong&gt; over agent transitions, letting you define exactly when and how agents loop, branch, or terminate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cycle support&lt;/strong&gt; means agents can revisit previous steps based on output evaluation, which linear DAG frameworks cannot do&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lower overhead&lt;/strong&gt; than the full LangChain stack when your workflow doesn't involve chains or retrieval pipelines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-loop via checkpoints.&lt;/strong&gt; LangGraph's checkpoint system lets you pause execution at any node for human review or approval before continuing. For regulated or high-stakes workflows (financial review, medical triage, legal document analysis), this is often a hard requirement rather than a nice-to-have.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Still requires &lt;code&gt;langchain-google-genai&lt;/code&gt; for Gemini access, so you're not fully decoupled from the LangChain ecosystem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph-based mental model&lt;/strong&gt; has a genuine learning curve, particularly for developers accustomed to sequential pipelines. LangGraph's checkpoint system is useful for regulated workflows, but teams new to graph-based workflows may find the mental model challenging when they're coming from linear pipelines. Expect the first week to feel slower than it should.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No built-in tracing when used standalone.&lt;/strong&gt; Without LangSmith, you need to wire up your own observability layer, which adds setup cost compared to the full LangChain + LangSmith stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h3&gt;
  
  
  6. SmolAgents (Hugging Face)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Quick Overview
&lt;/h4&gt;

&lt;p&gt;SmolAgents exists for the cases where a full framework is overkill. It's a lightweight single-agent wrapper from Hugging Face, useful when OpenClaw already handles most orchestration and you just need a thin layer around Gemini for tool dispatch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Contained, single-task agents where framework overhead isn't justified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Minimal setup&lt;/strong&gt; with the fastest path to a running single agent of any framework listed here&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight footprint&lt;/strong&gt; keeps resource usage low relative to LangChain or AutoGen&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MIT license&lt;/strong&gt; with no commercial restrictions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strong fit when OpenClaw already manages &lt;a href="https://docs.openclaw.ai/tools-and-plugins" rel="noopener noreferrer"&gt;tool dispatch and execution&lt;/a&gt;.&lt;/strong&gt; SmolAgents provides a thin orchestration wrapper without adding framework overhead. Well suited for contained tasks like summarization, classification, or single-file code review where multi-agent coordination isn't needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Limited multi-agent support&lt;/strong&gt; makes SmolAgents a poor fit once your workflow grows beyond a single agent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No stateful or cyclical workflows&lt;/strong&gt;, which means any looping or branching logic falls back to your own code. The boundary between &amp;amp;quot;SmolAgents is enough&amp;amp;quot; and &amp;amp;quot;I need a real framework&amp;amp;quot; tends to arrive faster than expected. If you find yourself writing custom state management around SmolAgents, you've already outgrown it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pricing:&lt;/strong&gt; Open source (MIT).&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Pricing&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;th&gt;Key Differentiator&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LangChain/LangGraph&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (Apache-2.0)&lt;/td&gt;
&lt;td&gt;Enterprise stateful workflows&lt;/td&gt;
&lt;td&gt;500+ integrations, audit logs, updated Gemini integration (langchain-google-genai)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CrewAI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Role-based prototyping&lt;/td&gt;
&lt;td&gt;Fast path to a working crew, intuitive roles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AutoGen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Conversational multi-agent&lt;/td&gt;
&lt;td&gt;Python/.NET support, emergent behaviors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Google ADK&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Contact Google&lt;/td&gt;
&lt;td&gt;Google-native Gemini workflows&lt;/td&gt;
&lt;td&gt;MCP/A2A protocols, first-party Gemini API support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LangGraph (standalone)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Cyclical stateful graphs&lt;/td&gt;
&lt;td&gt;Human-in-the-loop, fine-grained state control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SmolAgents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open source (MIT)&lt;/td&gt;
&lt;td&gt;Lightweight single-agent&lt;/td&gt;
&lt;td&gt;Minimal overhead, fast deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you're building long-context, tool-heavy agents with OpenClaw, Gemini is a strong default choice. Pair it with the framework that matches your workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Gemini Is a Strong Fit for OpenClaw Agent Workflows
&lt;/h2&gt;

&lt;p&gt;OpenClaw workflows can involve long sessions with large tool outputs (codebases, API responses, log files) and multi-step execution. Gemini 3.1 Pro's 1M token context window directly reduces the need to chunk inputs or rehydrate state between steps, one of the most common failure modes in production agents.&lt;/p&gt;

&lt;p&gt;Recent Gemini API improvements preserve tool call history and responses across steps. Follow-up steps can reason over prior tool outputs without the framework needing to re-inject them. For execution-heavy workloads where &lt;a href="https://docs.openclaw.ai/agents" rel="noopener noreferrer"&gt;agents&lt;/a&gt; routinely chain five or more tool calls per session, preserving that history matters more than incremental reasoning improvements.&lt;/p&gt;

&lt;p&gt;Three additional features strengthen the fit. Native tool use with structured outputs gives clean function-calling semantics for agent workflows. Gemini API Grounding with Google Search provides web-connected agents without bolting on extra tooling. And &lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt; is &lt;a href="https://docs.openclaw.ai/providers/google" rel="noopener noreferrer"&gt;OpenClaw's own recommended default&lt;/a&gt;, configured with a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw models &lt;span class="nb"&gt;set &lt;/span&gt;google/gemini-3.1-pro-preview
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;[openclaw models set&lt;/code&gt; command](&lt;a href="https://docs.openclaw.ai/concepts/model-providers" rel="noopener noreferrer"&gt;https://docs.openclaw.ai/concepts/model-providers&lt;/a&gt;) configures your default model provider across all sessions.&lt;/p&gt;

&lt;p&gt;Auth setup is straightforward. Set &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; or &lt;code&gt;GOOGLE_API_KEY&lt;/code&gt; as an environment variable, then run &lt;code&gt;[openclaw onboard --auth-choice gemini-api-key](https://docs.openclaw.ai/get-started/install)&lt;/code&gt;. No OAuth complexity required for the standard path.&lt;/p&gt;

&lt;p&gt;If your workload is dominated by short, reasoning-heavy prompts with minimal tool use, other models may be a better fit. Use LangChain + GPT-4 or Claude and skip the context window optimization entirely.&lt;/p&gt;




&lt;h2&gt;
  
  
  How We Chose These Frameworks
&lt;/h2&gt;

&lt;p&gt;Selection criteria were applied consistently across all six frameworks. Each criterion reflects a distinct dimension of production readiness for OpenClaw + Gemini workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini API compatibility&lt;/strong&gt; was verified against official documentation and community reports for each framework. Frameworks with native Gemini support (LangChain, Google ADK) scored higher than those requiring adapter layers (AutoGen).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw integration path&lt;/strong&gt; was confirmed via &lt;a href="https://docs.openclaw.ai/providers/google" rel="noopener noreferrer"&gt;OpenClaw's provider docs&lt;/a&gt;. We evaluated how cleanly each framework connects to OpenClaw's execution environment and &lt;a href="https://docs.openclaw.ai/agents" rel="noopener noreferrer"&gt;agent runtime&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning curve&lt;/strong&gt; was assessed by time-to-first-working-agent, not documentation quality. CrewAI and SmolAgents consistently require the least ramp time, while LangGraph's graph-based model takes several days to reach productive iteration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-agent support&lt;/strong&gt; distinguishes frameworks with native multi-agent coordination (CrewAI, AutoGen) from those where multi-agent patterns are bolted on or absent (SmolAgents).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observability&lt;/strong&gt; was evaluated based on built-in tracing capabilities. LangChain/LangSmith provides the most complete solution out of the box. AutoGen and SmolAgents require custom logging infrastructure for comparable visibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Production readiness&lt;/strong&gt; factors in community size, update cadence, and known breakage history. AutoGen shipped breaking changes in 2025 without a clear migration path, which weighs differently than LangChain's stable releases and active Google partnership.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License type&lt;/strong&gt; (MIT vs. Apache-2.0 vs. proprietary) matters for enterprise adoption. Apache-2.0 (LangChain) includes patent grants that some legal teams prefer. MIT (CrewAI, AutoGen, SmolAgents, LangGraph) is more permissive. Google ADK requires contacting Google for enterprise terms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmark references&lt;/strong&gt; are directional only, sourced from third-party comparisons (Sparkco.ai February 2026, GitHub Gist March 2026). We did not run controlled benchmarks for this guide, and methodology varies significantly across sources. Hard metrics (latency, memory footprint, uptime percentages) were omitted where primary sources were unavailable.&lt;/p&gt;

&lt;p&gt;Community activity and 2026 update cadence were factored into each recommendation.&lt;/p&gt;




&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is an AI agent framework?
&lt;/h3&gt;

&lt;p&gt;A software layer that orchestrates LLM calls, tool invocations, and memory management. It sits between the execution environment (OpenClaw) and the reasoning model (Gemini), handling state, branching logic, and multi-agent coordination.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I choose the right framework for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Match the framework to your workflow complexity. CrewAI suits fast prototyping, LangGraph handles complex stateful workflows, and SmolAgents covers simple single-task agents. All frameworks listed here support the Gemini API, so the decision turns on orchestration needs and team experience rather than model compatibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is LangChain better than CrewAI for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;LangChain is the stronger choice for production deployments requiring governance, audit trails, and complex state management. CrewAI wins on prototyping speed and simplicity for role-based agent teams. Both support Gemini. The choice depends on whether your priority is production hardening or iteration velocity.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does agent orchestration relate to OpenClaw?
&lt;/h3&gt;

&lt;p&gt;OpenClaw is the execution and tool runtime layer. Frameworks provide orchestration logic: how agents call tools, pass state, and coordinate. Gemini reasons at each step. The three layers work together, but they solve different problems. Without a framework, you're rebuilding state management, retries, and coordination yourself. Without OpenClaw, you're managing tool auth and sandboxing yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  If I'm already using OpenClaw with Gemini, do I need a framework?
&lt;/h3&gt;

&lt;p&gt;For simple single-agent tasks, SmolAgents or no framework at all may be sufficient. Multi-agent or stateful workflows benefit significantly from LangGraph or CrewAI. Production deployments with governance requirements point toward LangChain.&lt;/p&gt;

&lt;h3&gt;
  
  
  How quickly can I get a working agent running?
&lt;/h3&gt;

&lt;p&gt;CrewAI offers the fastest path to a working role-based prototype. LangChain and LangGraph require more setup time, which pays off at production scale. SmolAgents is the fastest option for single-agent tasks with minimal configuration. To &lt;a href="https://docs.openclaw.ai/get-started/install" rel="noopener noreferrer"&gt;get started with OpenClaw&lt;/a&gt;, setup takes a single command.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's the difference between LangChain and LangGraph?
&lt;/h3&gt;

&lt;p&gt;LangChain is a broad framework for LLM chains, tool integration, and retrieval. LangGraph is a graph-based extension (from the same team) for stateful, cyclical workflows. In the OpenClaw context, use LangGraph when your agents need to loop, branch conditionally, or include human-in-the-loop checkpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best alternatives to AutoGen for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;CrewAI offers lower overhead and faster prototyping with simpler Gemini integration. LangGraph provides more production stability without the legacy API breakage risk that has affected AutoGen. Google ADK gives native Gemini API support with first-party tooling, though its community is still smaller.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openclaw</category>
      <category>gemini</category>
      <category>agents</category>
    </item>
    <item>
      <title>Best LLM for OpenClaw: Gemini 3.1 Pro vs GPT-5.5 vs Claude Opus 4.7 (2026)</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Tue, 05 May 2026 11:59:31 +0000</pubDate>
      <link>https://forem.com/matthewrevell/best-llm-for-openclaw-gemini-31-pro-vs-gpt-55-vs-claude-opus-47-2026-3na4</link>
      <guid>https://forem.com/matthewrevell/best-llm-for-openclaw-gemini-31-pro-vs-gpt-55-vs-claude-opus-47-2026-3na4</guid>
      <description>&lt;p&gt;That model picker in your OpenClaw config? It determines cost per completed job, how reliably your agent follows SOUL.md instructions, and whether a large PR diff fits in one pass or gets chunked into lossy fragments.&lt;/p&gt;

&lt;p&gt;Three flagship models compete for the spot: Gemini 3.1 Pro, GPT-5.5, and Claude Opus 4.7. One model gets my default recommendation. The other two earn it for specific use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best default:&lt;/strong&gt; Gemini 3.1 Pro. Fits the workload shape of most OpenClaw deployments: large-context code review, lowest cost per job, free dev tier, native multimodal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best for autonomous agents:&lt;/strong&gt; GPT-5.5. Leads reported agentic benchmarks such as Terminal-Bench 2.0, if your context stays under 128K tokens per call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best for strict code review:&lt;/strong&gt; Claude Opus 4.7. Leads reported SWE-bench Pro results (64.3% in Anthropic's evaluation), strong instruction adherence, often exhibits self-checking behavior in practice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When Should You Choose Gemini 3.1 Pro?
&lt;/h2&gt;

&lt;p&gt;Choose Gemini if your OpenClaw workflow involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reviewing large PRs or monorepos&lt;/li&gt;
&lt;li&gt;Combining SOUL.md, MEMORY.md, and code context in a single call&lt;/li&gt;
&lt;li&gt;Working with CI/CD artifacts like screenshots or recordings&lt;/li&gt;
&lt;li&gt;Iterating heavily on prompts during development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your workload fits this pattern, Gemini is usually the most practical choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  What OpenClaw Actually Demands from an LLM
&lt;/h2&gt;

&lt;p&gt;A single OpenClaw task isn't a chatbot turn. It's a system prompt, plus SOUL.md content, plus MEMORY.md accumulated state, plus tool call payloads, plus multiple back-and-forth exchanges. In practice, OpenClaw tasks involve significantly higher token usage than typical chatbot interactions, due to accumulated context from SOUL.md, MEMORY.md, tool calls, and multi-step exchanges.&lt;/p&gt;

&lt;p&gt;OpenClaw is a context-heavy system. The model is not just generating code; it is reasoning over accumulated state (SOUL.md, MEMORY.md, diffs, and tool outputs). That shifts the bottleneck from raw task performance to context handling and cost per call.&lt;/p&gt;

&lt;p&gt;Reliable tool-calling degrades first when context fills up. Instruction adherence drops next, especially with layered SOUL.md rules. Context window behavior under load, whether the model actually reasons over tokens near the middle of a long input, determines whether single-pass analysis works or just looks like it works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two Workload Categories
&lt;/h3&gt;

&lt;p&gt;OpenClaw deployments generally fall into two patterns:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Large-context analysis&lt;/strong&gt; covers code review, diff reasoning, and repo-wide changes. These jobs load full PR diffs alongside SOUL.md, MEMORY.md, and surrounding file context into a single call. Token counts are high, and the ability to reason across the entire input in one pass matters more than raw task-completion speed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-step autonomous tasks&lt;/strong&gt; involve planning, tool use, and execution loops. The model runs multiple shorter calls, each with moderate context, to complete a sequence of actions. Benchmark scores on agentic task completion are the best proxy for performance here.&lt;/p&gt;

&lt;p&gt;Many OpenClaw workflows lean toward large-context analysis, particularly for code review and CI/CD automation. That workload pattern, not just price or benchmarks, should drive model selection. Gemini 3.1 Pro supports large-context workflows without requiring chunking in many cases. GPT-5.5 is built for the second category. Claude Opus 4.7 brings the highest coding-specific benchmark scores and strict instruction adherence across both.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Contenders at a Glance
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemini 3.1 Pro:&lt;/strong&gt; 1M token context, &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;$2/$12 per 1M tokens (standard context)&lt;/a&gt; (≤200K tokens; $4/1M above that threshold), free dev tier through Google AI Studio, natively multimodal across text, images, audio, and video.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPT-5.5:&lt;/strong&gt; 128K context on the standard API, &lt;a href="https://developers.openai.com/api/docs/models/gpt-5.5" rel="noopener noreferrer"&gt;$5/$30 per 1M tokens&lt;/a&gt;, the highest Terminal-Bench 2.0 score of the three at 82.7%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Opus 4.7:&lt;/strong&gt; 1M context at flat pricing, &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;$5/$25 per 1M tokens&lt;/a&gt;, leads reported SWE-bench Pro results (64.3% in Anthropic's evaluation).&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Reference Table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;td&gt;128K (standard API)&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input price ($/1M)&lt;/td&gt;
&lt;td&gt;$2.00 (≤200K) / $4.00 (&amp;amp;amp;amp;gt;200K)&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output price ($/1M)&lt;/td&gt;
&lt;td&gt;$12.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free dev tier&lt;/td&gt;
&lt;td&gt;✅ Google AI Studio&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 2.0&lt;/td&gt;
&lt;td&gt;68.5%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;82.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;69.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-bench Pro&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;64.3%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multimodal (audio/video)&lt;/td&gt;
&lt;td&gt;✅ native&lt;/td&gt;
&lt;td&gt;⚠️ limited&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Evaluation Criteria
&lt;/h2&gt;

&lt;p&gt;Benchmark numbers are drawn from vendor announcements and should be interpreted accordingly. SWE-bench Pro scores come from &lt;a href="https://www.anthropic.com/news/claude-opus-4-7" rel="noopener noreferrer"&gt;Anthropic's Opus 4.7 announcement&lt;/a&gt;. Pricing is sourced from each provider's official API documentation.&lt;/p&gt;

&lt;p&gt;Four dimensions, weighted for OpenClaw production use: context window capacity, cost per completed job, code review quality on benchmarks, and multimodal support for CI/CD workflows.&lt;/p&gt;

&lt;p&gt;For OpenClaw workloads, context capacity and cost per job often matter more than raw benchmark scores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context Window
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro offers a &lt;a href="https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-pro" rel="noopener noreferrer"&gt;1M token context window&lt;/a&gt;, one of the largest available at standard API pricing. For OpenClaw code review, that means single-pass ingestion of a full PR diff plus surrounding file context, SOUL.md, and MEMORY.md without splitting the input.&lt;/p&gt;

&lt;p&gt;Single-pass analysis can capture cross-module relationships that chunked approaches miss. When a renamed interface in one file breaks three consumers in another, Gemini can process the full picture in one call. The tradeoff: requests exceeding &lt;a href="https://getdeploying.com/llms/gemini-3.1-pro-preview" rel="noopener noreferrer"&gt;200K tokens are billed at $4.00/1M input&lt;/a&gt; instead of the standard $2.00.&lt;/p&gt;

&lt;p&gt;Large-context models reduce the need for chunking, but can still struggle if prompts become too diffuse or contain conflicting instructions across files.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5's standard API context window is &lt;a href="https://developers.openai.com/api/docs/models/gpt-5.5" rel="noopener noreferrer"&gt;128K tokens&lt;/a&gt;. Larger context tiers (such as 1M tokens) are not generally available on standard API access, which means it's not the default API experience most teams will use.&lt;/p&gt;

&lt;p&gt;128K is not a soft limit you can occasionally brush against. A 200K-token PR diff plus SOUL.md plus task history fits in one Gemini call; it doesn't fit in GPT-5.5's standard tier at all. That forces chunked processing or context truncation, and for monorepo-scale OpenClaw workflows, chunking means the model never sees cross-file relationships in a single reasoning step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Claude Opus 4.7 provides a &lt;a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener noreferrer"&gt;1M token context window at flat pricing&lt;/a&gt;. A 900K-token request is billed at the same per-token rate as a 100K-token request, with no long-context surcharge.&lt;/p&gt;

&lt;p&gt;For workloads that consistently exceed 200K tokens per call, Opus 4.7 has a pricing edge over Gemini's tiered model. If your typical OpenClaw job stays under 200K input tokens, Gemini's base rate ($2.00/1M) is cheaper by a wide margin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Context Window Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Max context&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;td&gt;128K (standard)&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-context premium&lt;/td&gt;
&lt;td&gt;✅ above 200K&lt;/td&gt;
&lt;td&gt;⚠️ 1M not generally available on standard API&lt;/td&gt;
&lt;td&gt;❌ flat pricing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monorepo-scale code review&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cost Per Completed OpenClaw Job
&lt;/h2&gt;

&lt;p&gt;Gemini 3.1 Pro is typically the cheapest at standard on-demand pricing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;At $2.00 input / $12.00 output per 1M tokens, an illustrative 10-call code review run with roughly 500K input tokens and 50K output tokens comes to approximately &lt;strong&gt;$1.60&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The free dev tier through Google AI Studio is a genuine advantage during development. Iterating on SOUL.md prompts and agent configurations without paying per call removes friction that adds up fast when you're tuning agent behavior. Rate limits on the free tier will constrain sustained production use, but for development and testing, nothing else matches it.&lt;/p&gt;

&lt;p&gt;Gemini also supports OpenAI-compatible interfaces via certain endpoints and adapters (including Google AI Studio), which means teams can switch from another provider without rewriting integration code. The migration cost is a config change, not an engineering project.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5 is the most expensive at standard rates: $5.00 input / $30.00 output per 1M tokens. For the same illustrative scenario, the 10-call code review run costs approximately &lt;strong&gt;$4.00&lt;/strong&gt;, or 2.5x what Gemini charges.&lt;/p&gt;

&lt;p&gt;OpenAI claims GPT-5.5 uses fewer tokens to complete equivalent Codex tasks compared to prior models. Token efficiency partially offsets the higher per-token price on agentic runs. Batch and Flex pricing at half the standard rate is available for workloads that tolerate asynchronous processing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Opus 4.7's headline price is $5.00 input / $25.00 output per 1M tokens. For the same illustrative scenario, the 10-call run costs approximately &lt;strong&gt;$3.75&lt;/strong&gt; before accounting for tokenizer overhead.&lt;/p&gt;

&lt;p&gt;Effective cost can increase depending on tokenization and prompt structure. Prompt caching (up to 90% savings) and batch processing (50% savings) can offset the increase, but only if your workload structure supports them. If you're not caching repeated SOUL.md content across calls, you're leaving money on the table.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Comparison Table
&lt;/h3&gt;

&lt;p&gt;These estimates assume approximately 500K input and 50K output tokens across 10 calls; actual costs vary by workload.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input ($/1M)&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output ($/1M)&lt;/td&gt;
&lt;td&gt;$12.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;$25.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free dev tier&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Est. 10-call run (illustrative)&lt;/td&gt;
&lt;td&gt;~$1.60&lt;/td&gt;
&lt;td&gt;~$4.00&lt;/td&gt;
&lt;td&gt;~$3.75+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hidden cost risk&lt;/td&gt;
&lt;td&gt;⚠️ extended context premium&lt;/td&gt;
&lt;td&gt;✅ token efficiency claim&lt;/td&gt;
&lt;td&gt;⚠️ possible tokenizer overhead&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Code Review Quality
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;68.5% on &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;Terminal-Bench 2.0&lt;/a&gt; and 67.3% on GDPval, the lowest of the three on both agentic benchmarks. On BrowseComp (web research capability), it scores a competitive 85.9%.&lt;/p&gt;

&lt;p&gt;Gemini's value in OpenClaw code review comes from fitting the workload pattern rather than leading on isolated coding tasks. Being able to hold an entire codebase diff in one pass means the model reasons over relationships between files that a higher-scoring model working on chunked input may not see together.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5 leads Terminal-Bench 2.0 at &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;82.7%&lt;/a&gt; and GDPval at 84.9%. BrowseComp at 90.1% makes it the strongest option when web research is part of the agent loop.&lt;/p&gt;

&lt;p&gt;On workloads that fit within 128K tokens, GPT-5.5 will complete agentic tasks more reliably than either competitor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Opus 4.7 leads reported SWE-bench Pro results (&lt;a href="https://www.anthropic.com/news/claude-opus-4-7" rel="noopener noreferrer"&gt;64.3% in Anthropic's evaluation&lt;/a&gt;), the benchmark most directly tied to coding-specific tasks. Terminal-Bench 2.0 at 69.4% puts it slightly ahead of Gemini.&lt;/p&gt;

&lt;p&gt;Two qualitative traits stand out for OpenClaw use: Opus 4.7 often exhibits self-checking behavior in practice (catching its own logical faults during planning) and strict instruction adherence. For teams with complex SOUL.md configurations, Opus 4.7's precision in following multi-layered instructions reduces false positives in code review output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benchmark Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Terminal-Bench 2.0&lt;/td&gt;
&lt;td&gt;68.5%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;82.7%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;69.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GDPval&lt;/td&gt;
&lt;td&gt;67.3%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;84.9%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;80.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SWE-bench Pro&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;64.3%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BrowseComp&lt;/td&gt;
&lt;td&gt;85.9%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;90.1%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;79.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Multimodal Support for CI/CD Workflows
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro &lt;a href="https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-pro" rel="noopener noreferrer"&gt;natively processes text, images, audio, and video&lt;/a&gt; in a single API call. CI/CD build screenshots, architecture diagrams, and video recordings of failing test runs can all be included alongside code context.&lt;/p&gt;

&lt;p&gt;No separate vision or audio model required. For teams whose OpenClaw workflows involve visual artifacts, Gemini handles the full spectrum without workarounds.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5
&lt;/h3&gt;

&lt;p&gt;GPT-5.5 supports text, images, and audio. Video support is limited. Computer use and web search tools are available. The multimodal coverage is broad but stops short of Gemini's native four-modality input.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7
&lt;/h3&gt;

&lt;p&gt;Opus 4.7 handles &lt;a href="https://www.anthropic.com/news/claude-opus-4-7" rel="noopener noreferrer"&gt;text and images only&lt;/a&gt;, with improved resolution compared to Opus 4.6. CI/CD screenshots work well. Audio and video inputs are not supported. If your CI/CD pipeline produces screen recordings or audio logs, Opus 4.7 can't process them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multimodal Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Images&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ (improved res)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audio&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Video&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;⚠️ limited&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD screenshots&lt;/td&gt;
&lt;td&gt;✅ native&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Who Each Model Serves Best
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro: Best Default for Most OpenClaw Teams
&lt;/h3&gt;

&lt;p&gt;Most OpenClaw code review workflows load more than 128K tokens per call. Gemini is built for that. A full PR diff, SOUL.md, MEMORY.md, and surrounding file context fit in a single 1M-token call without splitting or coordination logic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1M context at $2/1M input&lt;/strong&gt; for requests under 200K tokens, making it the cheapest large-context option for typical OpenClaw code review workloads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free dev tier removes iteration cost&lt;/strong&gt; when tuning SOUL.md and agent behavior, a workflow step every OpenClaw team repeats frequently&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native four-modality input&lt;/strong&gt; covers CI/CD screenshots, audio logs, and video artifacts in a single call. No separate vision or audio model required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supports OpenAI-compatible interfaces via certain endpoints and adapters (including Google AI Studio),&lt;/strong&gt; meaning switching from another provider is a config change, not a migration project&lt;/li&gt;
&lt;li&gt;Single-pass monorepo analysis keeps full cross-file context intact in one call&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Coding benchmark scores (68.5% Terminal-Bench, 67.3% GDPval) are the lowest of the three on isolated task precision. If your typical job consistently exceeds 200K input tokens, the $4/1M rate erodes the pricing advantage fast. And the free tier rate limits will not sustain production workloads, requiring a paid plan for anything beyond development and testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  GPT-5.5: Best for Autonomous Multi-Step Workflows
&lt;/h3&gt;

&lt;p&gt;82.7% on Terminal-Bench 2.0 is the strongest agentic score of the three by a wide margin. GPT-5.5's standard context window, however, is 128K tokens. Teams whose primary metric is agentic task completion rate, on workloads that fit within that limit, get the most reliable execution from GPT-5.5.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Token-efficient completions&lt;/strong&gt; partially offset the higher per-token price, according to OpenAI's claims about reduced token usage per task.&lt;/p&gt;

&lt;p&gt;A large PR diff combined with SOUL.md, MEMORY.md, and multi-turn task history will exceed 128K tokens in many monorepo workflows, forcing you to chunk inputs and lose cross-file context. And at an illustrative cost of ~$4.00 per 10-call run, GPT-5.5 is 2.5x the cost of the same workload on Gemini 3.1 Pro.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Opus 4.7: Best for Code Review Precision
&lt;/h3&gt;

&lt;p&gt;64.3% on SWE-bench Pro in Anthropic's evaluation is the highest coding-specific score of the three. For teams where a false positive in code review means a wasted engineering cycle, that number matters more than Terminal-Bench.&lt;/p&gt;

&lt;p&gt;Opus 4.7 often exhibits self-checking behavior in practice, catching logical faults during planning and reducing false positive rates in code review output. Strict instruction adherence makes it the strongest option for teams with complex, multi-layered SOUL.md configurations.&lt;/p&gt;

&lt;p&gt;The cost picture is more nuanced than the headline $5/$25 suggests. Effective cost can increase depending on tokenization and prompt structure. Prompt caching and batch processing can offset this, but only if your workload supports them. And no audio or video support limits usefulness for CI/CD workflows involving non-text, non-image artifacts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Which model has the largest context window for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro and Claude Opus 4.7 both support 1M tokens at the standard API level. GPT-5.5's standard API is 128K; larger context tiers (such as 1M tokens) are not generally available on standard API access. For monorepo code review, Gemini or Claude are the practical choices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does Gemini 3.1 Pro work with OpenClaw out of the box?
&lt;/h3&gt;

&lt;p&gt;Yes. Google AI Studio provides an OpenAI-compatible endpoint that works with OpenClaw's provider configuration. The full setup walkthrough is in the &lt;a href="https://dev.to/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48"&gt;Gemini + OpenClaw guide&lt;/a&gt;. The free dev tier is available immediately; rate limits apply on sustained production workloads.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is GPT-5.5 the best on benchmarks but not the top recommendation?
&lt;/h3&gt;

&lt;p&gt;The Terminal-Bench 2.0 lead (82.7%) is legitimate, but GPT-5.5's standard context window is 128K tokens. Large OpenClaw workflows regularly exceed that limit. Combined with 2.5x the cost of Gemini at standard API rates, the benchmark advantage doesn't offset the practical constraints for most teams. The typical OpenClaw workload is large-context code review, and GPT-5.5's standard tier doesn't fit that pattern.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Claude Opus 4.7 actually more expensive than the headline price suggests?
&lt;/h3&gt;

&lt;p&gt;Effective cost can increase depending on tokenization and prompt structure. The $5/$25 headline price is unchanged, but the same input text may consume more tokens. Prompt caching (up to 90% savings) offsets the increase for repeated content like SOUL.md.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I switch models mid-project in OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Yes. OpenClaw supports any OpenAI-compatible endpoint, so the model is a config-level change. SOUL.md and MEMORY.md files are model-agnostic, though agent behavior may vary between models due to differences in instruction interpretation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which model handles CI/CD screenshot analysis best?
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro processes images, audio, and video natively. Claude Opus 4.7 supports images with improved resolution over its predecessor. GPT-5.5 supports images and audio; video support is limited.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does context size matter so much for OpenClaw?
&lt;/h3&gt;

&lt;p&gt;Because OpenClaw tasks combine multiple sources of context (SOUL.md, MEMORY.md, code diffs, and tool outputs) into a single reasoning step. If that context exceeds the model's limit, it must be split across multiple calls, which adds complexity and can reduce reasoning quality across the full diff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where This Recommendation Breaks Down
&lt;/h2&gt;

&lt;p&gt;Gemini 3.1 Pro is not a universal default.&lt;/p&gt;

&lt;p&gt;If your OpenClaw workflow depends on tight iterative loops with smaller contexts, or if instruction-following precision is the primary constraint, GPT-5.5 or Claude Opus 4.7 may perform better despite higher cost or smaller context windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Verdict
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why Gemini 3.1 Pro Is the Default Choice
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro matches how most OpenClaw teams actually work: loading 200K+ token PR diffs alongside SOUL.md, MEMORY.md, and surrounding file context into a single call, then running multi-step reviews without splitting inputs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Large-context workflows without chunking.&lt;/strong&gt; 1M tokens covers full PR diffs, SOUL.md, MEMORY.md, and surrounding file context in a single pass.&lt;/li&gt;
&lt;li&gt;No need to split inputs, coordinate multiple calls, or merge partial reasoning across chunks. Simpler agent architecture, fewer failure modes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lowest cost per completed job.&lt;/strong&gt; For an illustrative scenario, ~$1.60 per 10-call run vs ~$4.00 for GPT-5.5.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free iteration tier during SOUL.md development.&lt;/strong&gt; Google AI Studio's free tier removes per-call cost from the prompt tuning cycle.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native multimodal for CI/CD pipelines.&lt;/strong&gt; Images, audio, and video in one API call. No separate vision or audio model required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Config-level migration via OpenAI-compatible interfaces.&lt;/strong&gt; No integration rewrite required.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Summary Table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;✅ 1M tokens&lt;/td&gt;
&lt;td&gt;⚠️ 128K standard&lt;/td&gt;
&lt;td&gt;✅ 1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost per job (illustrative)&lt;/td&gt;
&lt;td&gt;✅ lowest (~$1.60)&lt;/td&gt;
&lt;td&gt;❌ highest (~$4.00)&lt;/td&gt;
&lt;td&gt;⚠️ mid (~$3.75+)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agentic task completion&lt;/td&gt;
&lt;td&gt;⚠️ 68.5% Terminal-Bench&lt;/td&gt;
&lt;td&gt;✅ 82.7% Terminal-Bench&lt;/td&gt;
&lt;td&gt;⚠️ 69.4% Terminal-Bench&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code review precision&lt;/td&gt;
&lt;td&gt;⚠️ no SWE-bench data&lt;/td&gt;
&lt;td&gt;⚠️ no SWE-bench data&lt;/td&gt;
&lt;td&gt;✅ 64.3% SWE-bench Pro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multimodal (audio/video)&lt;/td&gt;
&lt;td&gt;✅ native&lt;/td&gt;
&lt;td&gt;⚠️ limited&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Free dev tier&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-context flat pricing&lt;/td&gt;
&lt;td&gt;⚠️ premium above 200K&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Gemini 3.1 Pro Is the Right Default
&lt;/h3&gt;

&lt;p&gt;Most OpenClaw teams are running code review on repositories that exceed 128K tokens. That single fact eliminates GPT-5.5's standard tier from consideration for the majority of production workloads. Between the two 1M-context options, Gemini's cost advantage is substantial: for an illustrative scenario, roughly $1.60 per 10-call run compared to $3.75+ for Opus 4.7.&lt;/p&gt;

&lt;p&gt;The free dev tier removes friction during the SOUL.md iteration cycle that every OpenClaw team goes through repeatedly. Native multimodal support covers CI/CD screenshots and video artifacts without extra configuration or separate model calls. And Gemini supports OpenAI-compatible interfaces via certain endpoints and adapters (including Google AI Studio), meaning zero migration effort if you're switching from another provider.&lt;/p&gt;

&lt;p&gt;Gemini 3.1 Pro wins on the combination of workload fit, cost, multimodal coverage, and developer experience. At scale, the $2.40 per-job savings over Opus 4.7 (and $2.40 more over GPT-5.5) compounds into the difference between a sustainable deployment and one that gets cut in a budget review.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to Choose GPT-5.5 Instead
&lt;/h3&gt;

&lt;p&gt;Your workflow is primarily autonomous multi-step task completion rather than large-context code analysis. Context stays within 128K tokens per call. Your team is already invested in the OpenAI Agents SDK ecosystem and the switching cost outweighs the per-token savings.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to Choose Claude Opus 4.7 Instead
&lt;/h3&gt;

&lt;p&gt;Code review false positive rate is your primary production concern. Your SOUL.md configurations are complex enough that strict instruction adherence is a requirement, not a nice-to-have. You have prompt caching in place to offset Opus 4.7's higher effective cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related Content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48"&gt;Using Gemini with OpenClaw: Setup Guide + Real Use Cases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://deepinfra.com/blog/best-models-openclaw-agentic-workloads" rel="noopener noreferrer"&gt;Best Models for OpenClaw: Top Picks for Agentic Workloads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;Gemini Developer API Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>openclaw</category>
      <category>ai</category>
      <category>llm</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Using Gemini with OpenClaw: Setup Guide + Real Use Cases</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 01 May 2026 09:49:58 +0000</pubDate>
      <link>https://forem.com/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48</link>
      <guid>https://forem.com/matthewrevell/using-gemini-with-openclaw-setup-guide-real-use-cases-2i48</guid>
      <description>&lt;p&gt;OpenClaw supports a wide range of LLM providers, and choosing the right one shapes how your agents perform on real work. Gemini 3.1 Pro has become a compelling option for teams running developer automation, particularly when workflows involve large codebases, multimodal artifacts, or high-frequency agent calls. &lt;/p&gt;

&lt;p&gt;The combination of a large context window, native support for images, audio, and video, and a free development tier through Google AI Studio makes Gemini worth serious consideration as your &lt;a href="https://docs.openclaw.ai/concepts/model-providers" rel="noopener noreferrer"&gt;OpenClaw LLM backend&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This guide walks through the full setup, three practical use cases, and an honest comparison against GPT-5.5 and Claude Opus 4.7 in the same OpenClaw environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Gemini Works Well as an OpenClaw LLM Backend
&lt;/h2&gt;

&lt;p&gt;Three characteristics make Gemini a strong fit for agentic developer workflows: context capacity, cost structure, and multimodal input.&lt;/p&gt;

&lt;h3&gt;
  
  
  Large Context Window
&lt;/h3&gt;

&lt;p&gt;Gemini 3.1 Pro supports a large context window, which changes how OpenClaw agents can approach code review and repository-level tasks. Instead of chunking a PR diff into multiple calls and losing cross-file relationships, an agent can ingest the full diff plus surrounding file context in a single pass. For monorepos or PRs that touch dozens of files, the difference between single-pass and chunked analysis is the difference between catching a subtle cross-module bug and missing it entirely.&lt;/p&gt;

&lt;p&gt;All three major models (Gemini, GPT-5.5, Claude Opus 4.7) support large context windows, though exact limits and effective usage can vary by tier and endpoint. Gemini's &lt;a href="https://deepmind.google/models/model-cards/gemini-3-1-pro/" rel="noopener noreferrer"&gt;context capacity&lt;/a&gt; is among the largest available, which gives it a practical edge for repository-scale analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost for High-Frequency Agentic Calls
&lt;/h3&gt;

&lt;p&gt;Agentic workflows are expensive by nature. A single OpenClaw code review run might make ten or more API calls as the agent reasons through a diff, checks style guides, and drafts comments. Gemini 3.1 Pro includes a free development tier through &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt;, which lets you iterate on agent prompts without paying per call during development. That free tier has rate limits that can be exhausted quickly, sometimes within minutes on real agent workloads. For sustained production use, a paid plan is likely necessary; check &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;ai.google.dev/gemini-api/docs/pricing&lt;/a&gt; for current details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multimodal Input Support
&lt;/h3&gt;

&lt;p&gt;Gemini processes images, audio, and video natively. For CI/CD workflows, an OpenClaw agent can parse a failing build's screenshot artifact or a visual regression diff without requiring a separate OCR pipeline or explicit image-to-text preprocessing. Text-only models typically require external tooling for that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up Gemini as Your OpenClaw LLM Backend
&lt;/h2&gt;

&lt;p&gt;The setup takes about five minutes. Google (Gemini) is a built-in provider in OpenClaw's model catalog, so there's no custom provider configuration required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Get Your Gemini API Key
&lt;/h3&gt;

&lt;p&gt;Go to &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;Google AI Studio&lt;/a&gt; and generate an API key. The free tier works for development and prompt iteration. You do not need a Google Cloud project for this; AI Studio handles key provisioning directly.&lt;/p&gt;

&lt;p&gt;A note on OAuth: some guides mention a Gemini CLI OAuth flow for OpenClaw. The OAuth integration is unofficial and unsupported by Google. Avoid it for any serious use. Stick with the API key method.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Set the Environment Variable
&lt;/h3&gt;

&lt;p&gt;Add your API key to your shell environment or &lt;code&gt;.env&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;OpenClaw reads this variable at startup. If you're running OpenClaw on a VPS or in CI, set it in your deployment config or secrets manager rather than hardcoding it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Select Gemini via the OpenClaw CLI
&lt;/h3&gt;

&lt;p&gt;You have two options. The interactive onboarding flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw agent &lt;span class="nt"&gt;--onboard&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Select "Google (Gemini)" when prompted for your provider.&lt;/p&gt;

&lt;p&gt;Or set the model directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw models &lt;span class="nb"&gt;set &lt;/span&gt;google/gemini-3.1-pro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both approaches write the same configuration. The direct method is faster if you already know which model you want.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Verify the Configuration
&lt;/h3&gt;

&lt;p&gt;Confirm everything is wired up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw models status &lt;span class="nt"&gt;--json&lt;/span&gt; &lt;span class="nt"&gt;--agent&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see output like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"defaults"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"google/gemini-3.1-pro"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"active"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"google/gemini-3.1-pro"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ok"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the &lt;code&gt;active&lt;/code&gt; field shows your selected model, you're ready.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choosing a Model: gemini-3.1-pro vs gemini-3.1-pro-preview
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;google/gemini-3.1-pro&lt;/code&gt; for stable production workloads. The behavior is consistent between updates, and you won't encounter unexpected changes in reasoning patterns mid-sprint.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt; gives you access to the latest capabilities and was &lt;a href="https://blog.meetneura.ai/openclaw-2026-2-21/" rel="noopener noreferrer"&gt;added in OpenClaw 2026.2.21&lt;/a&gt;. Preview variants are useful for evaluating new reasoning improvements, but their behavior may shift between updates. Pin to the stable ref for anything running unattended.&lt;/p&gt;

&lt;h3&gt;
  
  
  Troubleshooting
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw rejects your model selection.&lt;/strong&gt; If you get a model-not-found error, confirm you're on OpenClaw 2026.2.21 or later. Older versions don't include the Gemini 3.1 model refs. Update OpenClaw and try again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API key errors after setup.&lt;/strong&gt; Double-check that &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; is exported in the same shell session where OpenClaw runs. A common mistake: setting it in &lt;code&gt;.bashrc&lt;/code&gt; but running OpenClaw from a different shell profile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rate limit errors on the free tier.&lt;/strong&gt; The free tier's rate limits can be exhausted quickly, sometimes within minutes on real agent workloads. If you're hitting 429 errors consistently, you need the paid tier. As a quick fallback, you can also switch to &lt;code&gt;google/gemini-2.5-flash&lt;/code&gt; for a lighter-weight model that consumes less quota per call.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 Real Use Cases with Gemini + OpenClaw
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Use Case 1: Automated Code Review
&lt;/h3&gt;

&lt;p&gt;An OpenClaw agent configured with Gemini 3.1 Pro can review a full PR diff plus the surrounding file context in a single call. The agent flags style violations, potential security issues, and logic errors, then posts inline comments on the PR.&lt;/p&gt;

&lt;p&gt;The large context window is what makes single-pass review practical. Rather than splitting a 40-file PR into batches (and losing the ability to reason across files), the agent sees everything at once. Cross-file dependency issues, like a renamed function that's still referenced elsewhere, surface naturally. Gemini often works without requiring heavy prompt engineering for this type of structured analysis task.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Case 2: PR Summarization for Engineering Teams
&lt;/h3&gt;

&lt;p&gt;For teams drowning in PR notifications, an OpenClaw agent can generate structured summaries: what changed, why it changed, and a risk-level assessment. These summaries get posted automatically to Slack channels or GitHub PR comments.&lt;/p&gt;

&lt;p&gt;The practical value is triage speed. A tech lead scanning 15 PRs before standup can read summaries instead of diffs, focusing review time on the high-risk changes. Gemini's ability to process large diffs in one pass means the summary reflects the full scope of the change, not a truncated view.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Case 3: CI/CD Workflow Automation
&lt;/h3&gt;

&lt;p&gt;When a build breaks, an OpenClaw agent can monitor the failure, parse log output, examine visual artifacts (screenshots from e2e test failures, for instance), and draft fix suggestions or open issues automatically.&lt;/p&gt;

&lt;p&gt;Gemini's multimodal input is the differentiator here. A failing Playwright test that produces a screenshot comparison can be fed directly to the agent alongside the error log. The agent sees both the visual regression and the stack trace in the same context. Text-only models typically require external tooling for that kind of combined analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini vs GPT-5.5 vs Claude Opus 4.7 in OpenClaw: Quick Comparison
&lt;/h2&gt;

&lt;p&gt;All three are first-class providers in OpenClaw. The right choice depends on your workflow shape.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Gemini 3.1 Pro&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Claude Opus 4.7&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context window&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Large&lt;/td&gt;
&lt;td&gt;Large&lt;/td&gt;
&lt;td&gt;Large&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multimodal input&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Image, audio, video&lt;/td&gt;
&lt;td&gt;Image only&lt;/td&gt;
&lt;td&gt;Image only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tool use &amp;amp; reasoning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Emphasizes tool use and multi-step reasoning&lt;/td&gt;
&lt;td&gt;Strong agentic coding per published benchmarks&lt;/td&gt;
&lt;td&gt;Strong instruction-following&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost considerations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Includes free dev tier via Google AI Studio&lt;/td&gt;
&lt;td&gt;No free tier&lt;/td&gt;
&lt;td&gt;No free tier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Typical use cases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Multimodal CI/CD and agent iteration&lt;/td&gt;
&lt;td&gt;General-purpose agents and coding tasks&lt;/td&gt;
&lt;td&gt;Precise structured code generation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All three models support large context windows, though exact limits and effective usage can vary by tier and endpoint.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Gemini 3.1 Pro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Solo developers, hobbyists, and teams working with large PRs or monorepos, CI/CD workflows that include visual artifacts, and anyone running frequent agent loops or iterating on prompts where development-time cost matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free development and testing tier via Google AI Studio&lt;/strong&gt; means you can iterate on agent prompts without paying per call during development. Useful when you're tuning OpenClaw agent behavior across multiple workflows and running dozens of test invocations per session (note: Gemini 3.1 Pro access at higher usage levels may require a paid plan; see &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;ai.google.dev/gemini-api/docs/pricing&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native multimodal input&lt;/strong&gt; handles screenshots, diagrams, audio, video, and mixed-format build artifacts directly. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Considerations:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Preview variants introduce the latest reasoning improvements but may behave differently between updates.&lt;/strong&gt; Use the stable &lt;code&gt;google/gemini-3.1-pro&lt;/code&gt; ref for production workloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google AI Studio's free tier is well-suited for development and prompt iteration.&lt;/strong&gt; For sustained agent workloads, a paid plan gives you the headroom to run without interruption.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;GPT-5.5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; General-purpose agent workflows and coding tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strong agentic coding performance&lt;/strong&gt; per OpenAI's published benchmarks. &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;Per Terminal-Bench 2.0&lt;/a&gt;, GPT-5.5 shows strong performance on agentic coding tasks, though results vary by workload and evaluation method.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broad tool-calling support&lt;/strong&gt; with a well-established function-calling API that many existing integrations are built against.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No free tier&lt;/strong&gt; for API access. Every call during development and testing costs money.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image-only multimodal input.&lt;/strong&gt; No native support for audio or video, which limits CI/CD use cases involving visual or media artifacts.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Claude Opus 4.7&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Precise structured code generation and tasks requiring strict instruction adherence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strong instruction-following&lt;/strong&gt; makes Claude Opus 4.7 a good fit when your OpenClaw agent prompts require exact output formatting or rigid schema compliance. &lt;a href="https://platform.claude.com/docs/en/about-claude/models/overview" rel="noopener noreferrer"&gt;Claude's model documentation&lt;/a&gt; positions the Opus line for high-precision tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable structured output&lt;/strong&gt; for code generation workflows where the agent needs to produce syntactically valid, well-formatted code consistently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No free tier&lt;/strong&gt; for API access, which raises the cost of iterating on agent prompts during development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image-only multimodal input.&lt;/strong&gt; Like GPT-5.5, Claude Opus 4.7 does not natively accept audio or video.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does OpenClaw support Gemini natively?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. Google (Gemini) is a &lt;a href="https://docs.openclaw.ai/concepts/model-providers" rel="noopener noreferrer"&gt;built-in provider in OpenClaw's model catalog&lt;/a&gt;. No custom provider configuration is needed. Gemini 3.1 model refs were added in the OpenClaw 2026.2.21 release.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which Gemini model should I use with OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;google/gemini-3.1-pro&lt;/code&gt; for stable production workloads. Use &lt;code&gt;google/gemini-3.1-pro-preview&lt;/code&gt; if you want to test the latest reasoning improvements, but be aware that preview behavior may change between updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is Gemini free to use with OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Google AI Studio provides a free tier that works well for development and prompt iteration. The free tier's rate limits can be exhausted quickly, sometimes within minutes on real agent workloads. Higher usage levels may require a paid plan. Check &lt;a href="https://ai.google.dev/gemini-api/docs/pricing" rel="noopener noreferrer"&gt;ai.google.dev/gemini-api/docs/pricing&lt;/a&gt; for current limits and pricing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I set the Gemini API key for OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generate an API key at &lt;a href="https://aistudio.google.com" rel="noopener noreferrer"&gt;aistudio.google.com&lt;/a&gt;, then set &lt;code&gt;export GEMINI_API_KEY=&amp;lt;your_key&amp;gt;&lt;/code&gt; in your shell or &lt;code&gt;.env&lt;/code&gt; file before starting OpenClaw. Do not use the unofficial OAuth method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use Gemini for CI/CD automation in OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, and Gemini's multimodal input gives it an advantage here. An OpenClaw agent backed by Gemini can parse build logs alongside visual artifacts (screenshots, image diffs) without requiring a separate OCR pipeline or explicit image-to-text preprocessing in many cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does Gemini compare to GPT-5.5 and Claude Opus 4.7 in OpenClaw?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemini 3.1 Pro's model capabilities emphasize tool use and multi-step reasoning, and it's the only one of the three that accepts audio and video input natively. GPT-5.5 shows strong agentic coding performance per published benchmarks. Claude Opus 4.7 leads on precise instruction-following. All three support large context windows, though exact limits and effective usage can vary by tier and endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What should I do if OpenClaw rejects my Gemini model selection?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Confirm you're running &lt;a href="https://blog.meetneura.ai/openclaw-2026-2-21/" rel="noopener noreferrer"&gt;OpenClaw 2026.2.21 or later&lt;/a&gt;. The Gemini 3.1 model refs were added in that release. If you're on an older version, update OpenClaw and retry &lt;code&gt;openclaw models set google/gemini-3.1-pro&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Gemini 3.1 Pro is the strongest default for OpenClaw teams running workflows against large codebases, processing multimodal CI/CD artifacts, or iterating rapidly on agent prompts without wanting to pay for every test call. If your daily work involves reviewing PRs that span dozens of files, parsing build failures that include screenshots, or running high-frequency agent loops during development, Gemini is where you should start.&lt;/p&gt;

&lt;p&gt;For teams doing precise structured code generation with strict output formatting, Claude Opus 4.7 is worth evaluating. For general-purpose agent tasks with heavy function-calling, GPT-5.5 remains a solid choice. But for the combination of context capacity, multimodal input, and accessible pricing during development, Gemini paired with OpenClaw covers the most ground for developer automation workflows.&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>gemini</category>
      <category>ai</category>
      <category>devops</category>
    </item>
    <item>
      <title>AMA with Solana's Brianna Migliaccio</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Wed, 29 Apr 2026 13:44:10 +0000</pubDate>
      <link>https://forem.com/100daysofsolana/ama-with-solanas-brianna-migliaccio-ahb</link>
      <guid>https://forem.com/100daysofsolana/ama-with-solanas-brianna-migliaccio-ahb</guid>
      <description>&lt;p&gt;If you're new to Solana—or Web3 and blockchain more broadly—you almost certainly have questions.&lt;/p&gt;

&lt;p&gt;That’s expected.&lt;/p&gt;

&lt;p&gt;Web3 works under different assumptions to traditional web and mobile development.&lt;br&gt;&lt;br&gt;
Plus, there’s a whole new set of concepts and terminology to get familiar with.&lt;/p&gt;

&lt;p&gt;So let’s make that easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join us live
&lt;/h2&gt;

&lt;p&gt;📺 &lt;a href="https://twitch.tv/mlh" rel="noopener noreferrer"&gt;https://twitch.tv/mlh&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🗓 Wednesday, April 29&lt;br&gt;&lt;br&gt;
🕛 12:00 Eastern / 17:00 UK / 21:30 India  &lt;/p&gt;

&lt;p&gt;Come ready with your questions.&lt;/p&gt;

&lt;p&gt;And if you can’t make it, we’ll share the highlights here on DEV.&lt;/p&gt;

&lt;p&gt;Want to learn more about Solana? &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;Join the 100 Days of Solana challenge &amp;gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>learning</category>
      <category>programming</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Web3 Terminology Mapped to What You Already Know</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Mon, 20 Apr 2026 17:10:05 +0000</pubDate>
      <link>https://forem.com/100daysofsolana/web3-terminology-mapped-to-what-you-already-know-4afk</link>
      <guid>https://forem.com/100daysofsolana/web3-terminology-mapped-to-what-you-already-know-4afk</guid>
      <description>&lt;p&gt;Web3 can seem intimidating at first. And a lot of that is to do with terminology.&lt;/p&gt;

&lt;p&gt;But once you make the connection between what you already know from web and mobile dev, for example, everything becomes a little clearer.&lt;/p&gt;

&lt;p&gt;Here are some common Web3 terms and concepts translated into their Web2 equivalents to help you make the move.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  
&lt;h2&gt;
  
  
  100 Days of Solana
&lt;/h2&gt;

&lt;p&gt;Want to learn Web3? Join 100 Days of Solana for free to go from curiosity to building!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Register Now&lt;/a&gt;
&lt;/p&gt;


&lt;/div&gt;


&lt;h2&gt;
  
  
  Web3 Fundamentals
&lt;/h2&gt;

&lt;p&gt;Let's start with the basics. &lt;/p&gt;

&lt;h3&gt;
  
  
  Why is it called Web3?
&lt;/h3&gt;

&lt;p&gt;The idea is that this is third phase of the web.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web 1&lt;/strong&gt; was the original, read-only world wide web of the 90s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web 2&lt;/strong&gt; made things two-way, so the web became participatory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web 3&lt;/strong&gt; uses blockchain technologies to make you the owner of your data, rather than the companies running websites and apps you use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It can take a while to realize why that's important and what it means. Seeing it in action makes all the difference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web3 Core Pillars
&lt;/h3&gt;

&lt;p&gt;To understand how this actually works, you only need to know three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Blockchain:&lt;/strong&gt; A public ledger (think of it like a &lt;em&gt;very&lt;/em&gt; distributed database) that lives on thousands of computers at once. It’s "permissionless", meaning no one can block you from using it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Wallet:&lt;/strong&gt; Your digital identity. Instead of an email and password, you use a private key stored in your wallet to prove you own your assets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart Contracts:&lt;/strong&gt; Pieces of code that live on the blockchain. They execute automatically when certain conditions are met.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fckjt9s6wjux62xs1tf9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fckjt9s6wjux62xs1tf9u.png" alt="The three core " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But there are plenty more ideas and phrases that you'll need to get used to in order to feel fully comfortable in the Web3 world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making Sense of the Rest
&lt;/h2&gt;

&lt;p&gt;Now that you understand the three core pieces — &lt;strong&gt;blockchain, wallet, and smart contracts&lt;/strong&gt; — everything else in Web3 is really just combinations of those ideas.&lt;/p&gt;

&lt;p&gt;The terminology can still feel unfamiliar, though. So let’s map the most common terms to things you already use as a developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identity: Wallets Replace Accounts
&lt;/h3&gt;

&lt;p&gt;You already know that in Web2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;users sign up
&lt;/li&gt;
&lt;li&gt;you store their credentials
&lt;/li&gt;
&lt;li&gt;you authenticate requests
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Web3, your &lt;strong&gt;wallet replaces all of that&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wallet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your account (but you control it, not a platform)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Public Key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your user ID or username&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Private Key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your cryptographic identity — used to prove ownership and sign actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Signing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Logging in / proving who you are&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl22r065tp9zws3gfhmrl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl22r065tp9zws3gfhmrl.jpg" alt="Wallets replace accounts" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key difference is simple but important:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Instead of logging in to a server, you prove who you are by signing requests with your private key.
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Data: The Blockchain Is the Database
&lt;/h3&gt;

&lt;p&gt;You already understand databases, APIs, and writes.&lt;/p&gt;

&lt;p&gt;The blockchain is just a very different kind of database.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Blockchain&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A shared, append-only database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Transaction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A write operation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Node&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A server running the database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gas / Fees&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Paying for compute or writes, just like paying for API calls or cloud compute&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What changes here isn’t what you’re doing but, instead, the constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;writes are &lt;strong&gt;public&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;writes are &lt;strong&gt;permanent&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;writes &lt;strong&gt;cost money&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That can make you think much more carefully about what you store and when.&lt;/p&gt;




&lt;h3&gt;
  
  
  Logic: Smart Contracts Are Your Backend
&lt;/h3&gt;

&lt;p&gt;You already write backend code that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;processes requests
&lt;/li&gt;
&lt;li&gt;enforces rules
&lt;/li&gt;
&lt;li&gt;updates data
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Smart contracts do the same thing.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Smart Contract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Backend logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Program (on Solana)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A deployed service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Calling a contract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Making an API request&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The important shift:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t control the runtime once it’s deployed.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Value: Ownership Is Built In
&lt;/h3&gt;

&lt;p&gt;In Web2, ownership is just a database entry you or someone else controls.&lt;/p&gt;

&lt;p&gt;In Web3, it’s enforced by the system itself.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Money or API credits that aren’t tied to a single service (like Stripe balance, but portable and user-owned)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NFT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Like owning a domain name, it's a unique asset with verifiable ownership (and not just a picture of an ape)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wallet balance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your bank balance but without a bank controlling it&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The difference:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  In Web2, ownership is just a row in someone's database. In Web3, it’s enforced by the network and you can’t change it manually.
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Apps: Same Shape, Different Backend
&lt;/h3&gt;

&lt;p&gt;At a high level, Web3 apps still look familiar.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Web3&lt;/th&gt;
&lt;th&gt;How to think about it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;dApp&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A web app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RPC endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your backend API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Explorer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A read-only database viewer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mainnet / Devnet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Production / staging&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The frontend is still yours.&lt;/p&gt;

&lt;p&gt;The backend is now a public network.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Actually Changes
&lt;/h2&gt;

&lt;p&gt;If this all feels surprisingly familiar, that’s the point.&lt;/p&gt;

&lt;p&gt;Much of Web3 isn't a completely new model, instead it's a new way of thinking about things you already know well. The core differences are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You control identity (wallets instead of accounts)
&lt;/li&gt;
&lt;li&gt;You pay for writes (like calls to a paid API)
&lt;/li&gt;
&lt;li&gt;You deploy immutable logic (contracts instead of editable app code)
&lt;/li&gt;
&lt;li&gt;You rely on shared infrastructure (networks instead of owned backends)
&lt;/li&gt;
&lt;/ul&gt;

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




&lt;h2&gt;
  
  
  The Only Way This Really Clicks
&lt;/h2&gt;

&lt;p&gt;Reading helps. But it won’t fully land until you try it.&lt;/p&gt;

&lt;p&gt;The moment you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate a keypair
&lt;/li&gt;
&lt;li&gt;send a transaction
&lt;/li&gt;
&lt;li&gt;see it appear on-chain
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…all of this terminology stops feeling abstract.&lt;/p&gt;

&lt;p&gt;And we're here to help with that. &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt; is a hands-on daily coding challenge that takes you from no Web3 experience to able to build with Solana. &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;Join free&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqc7g964gmdjo20532smx.png" alt="100 Days of Solana" width="540" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>solana</category>
      <category>learning</category>
    </item>
    <item>
      <title>100 Daily Challenges to Learn Web3 and Solana</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Fri, 17 Apr 2026 15:14:12 +0000</pubDate>
      <link>https://forem.com/100daysofsolana/100-daily-challenges-to-learn-web3-and-solana-3g2i</link>
      <guid>https://forem.com/100daysofsolana/100-daily-challenges-to-learn-web3-and-solana-3g2i</guid>
      <description>&lt;p&gt;Web3 is different. But it doesn't have to be hard.&lt;/p&gt;

&lt;p&gt;Most of what you do in a Web3 ecosystem, like Solana, maps directly to things you already understand from building web and mobile apps. You just need to learn some new terminology and assumptions first.&lt;/p&gt;

&lt;p&gt;That's why we're launching &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;100 Days of Solana&lt;/a&gt;! It's a free, daily programming challenge that will take you from Web3 curiosity to creating your own projects with Solana.&lt;/p&gt;


&lt;div class="crayons-card c-embed"&gt;

  
&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Here's the short version of everything you need to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start date:&lt;/strong&gt; April 20th but you can join any time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What you’ll learn:&lt;/strong&gt; How Solana works in practice, including transactions, accounts, programs, and how to build real apps on top.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How it works:&lt;/strong&gt; One focused challenge per day (~30–60 mins), each building on the last.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Register Now&lt;/a&gt;
&lt;/p&gt;


&lt;/div&gt;


&lt;h2&gt;
  
  
  One Theme Each Week
&lt;/h2&gt;

&lt;p&gt;We’ve structured 100 Days of Solana into Arcs (weekly themes) and Epochs (bigger milestones).&lt;/p&gt;

&lt;p&gt;Each Arc runs Monday to Sunday and focuses on one topic, starting with &lt;em&gt;Identity and Your First Wallet&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If you're busy one week, you can cover just the basics on Monday and Tuesday. But to make the most of the event, it’s worth aiming for all seven days.&lt;/p&gt;

&lt;h2&gt;
  
  
  Big Stories
&lt;/h2&gt;

&lt;p&gt;Each set of Arcs builds into a larger milestone that we’re calling Epochs.&lt;/p&gt;

&lt;p&gt;Those Epochs take you from understanding how data works on Solana to building and shipping your own applications:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reading and Writing Data&lt;/li&gt;
&lt;li&gt;Owning and Moving Data&lt;/li&gt;
&lt;li&gt;Building Programs, Making Contracts&lt;/li&gt;
&lt;li&gt;Shipping and Exploring&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By the end, you'll have learned what you can build with Solana, why you'd choose Solana, and how to put all the pieces together.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Community
&lt;/h2&gt;

&lt;p&gt;You won’t be doing this alone.&lt;/p&gt;

&lt;p&gt;When you &lt;a href="https://mlh.link/solana-100" rel="noopener noreferrer"&gt;register&lt;/a&gt;, you’ll join the 100 Days of Solana Discord, where you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask questions and get help from the event team
&lt;/li&gt;
&lt;li&gt;Share your progress
&lt;/li&gt;
&lt;li&gt;Connect with other developers working through the same challenges
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll also run live AMAs, publish blog posts here on &lt;a href="https://dev.to"&gt;DEV&lt;/a&gt;, and more.&lt;/p&gt;

&lt;p&gt;There’ll be opportunities to win prizes, get your work showcased, and even take part in MLH’s Solana Fellowship.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Solana?
&lt;/h2&gt;

&lt;p&gt;We’re using Solana for this program because it works well for learning by building.&lt;/p&gt;

&lt;p&gt;Transactions are fast and inexpensive, so you can try things out, make mistakes, and see what happens without waiting around or worrying about cost.&lt;/p&gt;

&lt;p&gt;It’s also one of the platforms we see used most often at MLH hackathons. Developers pick it because they can actually build and ship something in a short amount of time.&lt;/p&gt;

&lt;p&gt;That makes it a good place to go from “I kind of get this” to actually putting something together yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get signed-up
&lt;/h2&gt;

&lt;p&gt;Register now so you don't miss our announcement!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlh.link/solana-100" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Register for 100 Days of Solana&lt;/a&gt;
&lt;/p&gt;




</description>
      <category>web3</category>
      <category>solana</category>
      <category>programming</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Wed, 18 Feb 2026 14:35:34 +0000</pubDate>
      <link>https://forem.com/matthewrevell/-11ei</link>
      <guid>https://forem.com/matthewrevell/-11ei</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" class="crayons-story__hidden-navigation-link"&gt;The Future of Software Has a Lot More Builders. They’re Going to Need a Home.&lt;/a&gt;
    &lt;div class="crayons-article__cover crayons-article__cover__image__feed"&gt;
      &lt;iframe src="https://www.youtube.com/embed/gGUkTiiCqxE" title="The Future of Software Has a Lot More Builders. They’re Going to Need a Home."&gt;&lt;/iframe&gt;
    &lt;/div&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/mlh"&gt;
            &lt;img alt="Major League Hacking (MLH) logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2310%2F828f0108-477d-4d0d-8812-973f182358b4.jpg" class="crayons-logo__image" width="800" height="800"&gt;
          &lt;/a&gt;

          &lt;a href="/jonmarkgo" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F379485%2Fd1c1869a-68d7-4536-a542-7775cb27d3e9.jpeg" alt="jonmarkgo profile" class="crayons-avatar__image" width="460" height="460"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/jonmarkgo" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Jon Gottfried
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Jon Gottfried
                
              
              &lt;div id="story-author-preview-content-3265508" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/jonmarkgo" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F379485%2Fd1c1869a-68d7-4536-a542-7775cb27d3e9.jpeg" class="crayons-avatar__image" alt="" width="460" height="460"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Jon Gottfried&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/mlh" class="crayons-story__secondary fw-medium"&gt;Major League Hacking (MLH)&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Feb 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" id="article-link-3265508"&gt;
          The Future of Software Has a Lot More Builders. They’re Going to Need a Home.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/news"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;news&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;98&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mlh/the-future-of-software-has-a-lot-more-builders-theyre-going-to-need-a-home-1k65#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              19&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>discuss</category>
      <category>news</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>Tales of regret from developer onboarding</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Tue, 01 Feb 2022 14:01:00 +0000</pubDate>
      <link>https://forem.com/codesee/tales-of-regret-from-developer-onboarding-34id</link>
      <guid>https://forem.com/codesee/tales-of-regret-from-developer-onboarding-34id</guid>
      <description>&lt;p&gt;Whether you're &lt;a href="https://learn.codesee.io/announcing-the-codesee-emerging-developer-track/" rel="noopener noreferrer"&gt;just starting out as a developer&lt;/a&gt; or you've got years under your belt, learning a new codebase is a defining experience. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr03sryglkxd1y5406t4y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr03sryglkxd1y5406t4y.jpg" alt="A man looking tired and sad, leaning his forehead against his  arm" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Onboarding shapes not only your enjoyment of that project but can influence what sort of work you go on to do next. Either you're running screaming in the opposite direction, or you've found something you want to do again.&lt;/p&gt;

&lt;p&gt;For every codebase onboarding that feels like an effortless walk in a sunny meadow, there are plenty more that evoke a 3am hike up an unlit rocky path during a hurricane.&lt;/p&gt;

&lt;p&gt;Below is an inexhaustive collection of postcard-sized onboarding stories from real developers. They illustrate some of the specific ways in which onboarding can go wrong, and, at the end, there's a hint at &lt;a href="https://www.codesee.io/how-it-works" rel="noopener noreferrer"&gt;one way&lt;/a&gt; we might make it better for the developers who come after us. Names have been changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  I've suffered, so shall you
&lt;/h2&gt;

&lt;p&gt;If a problem shared really is a problem halved, then perhaps that explains what happened to Mark.&lt;/p&gt;

&lt;p&gt;The first day on the job, the incumbent developer asked a question, "How do you feel about spaghetti code?" Not leaving any time to answer, he followed up with, "Because what we have here is code soup."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasi63f6txa0rad7f2g6l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasi63f6txa0rad7f2g6l.jpg" alt="A bowl of spaghetti" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The product should have been straightforward. It was a web front end to research data held in a PostgreSQL database. However, Mark was the fourth developer to work on the system in a short period of time. It was almost as though each prior developer had gone out of their way to avoid any consistency with their predecessor. Instead, they picked the tools and conventions they preferred. That led to fun situations such as Hibernate taking care of user and project records, while JDBC was used for general querying. As Mark says, "Why have one data abstraction layer when you can have two?"&lt;/p&gt;

&lt;p&gt;Sure, the codebase itself was a mess, but the onboarding was essentially a surrender. "I know this is terrible, but I've suffered, so that means you should too," probably isn't the ideal onboarding maxim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mismatched expectations
&lt;/h2&gt;

&lt;p&gt;Starting a new job is somewhat stressful, even in ideal circumstances. There's the pressure to show your best in those 30-60-90 reviews and to win round your new colleagues.&lt;/p&gt;

&lt;p&gt;But for Gavin, a Python developer, starting one job, in particular, was especially fraught. "They knew I wasn't a Ruby developer but somehow also expected that I did know Ruby."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4e4bojnknb9t0grxay2m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4e4bojnknb9t0grxay2m.jpg" alt="Rubies" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On top of learning the new codebase, Gavin also had to learn a new language. Not an impossible task but also one that no one at the company had made allowances for. "They pointed me at rubykoans.com and wished me well. The Koans are good, but they don't cover de facto essential stuff like Rails," Gavin said. After years in the Python ecosystem, he also found that the difference in approach between Python and Ruby docs took some getting used to.&lt;/p&gt;

&lt;p&gt;For Gavin, it was the shock of the mismatched expectations, combined with his own desire to show his best work, that made this particular onboarding hard. "One person's experience of learning new tech can be worlds apart from your own: I was joining a company of Ruby enthusiasts who probably found it hard to put themselves into my shoes. I had 20 other things competing for my time and attention, as well as that huge pressure to be productive. Having to also learn Ruby, Rails, and the special way in which Rails was used at that company, before being able to be productive was very stressful. I came close to quitting or being fired."&lt;/p&gt;

&lt;h2&gt;
  
  
  Why can't you just understand?!
&lt;/h2&gt;

&lt;p&gt;There are situations where a problem space is just plain hard. Some things take time to understand fully. But other times, it's not the problem that's hard to understand, it's more that the person getting you up to speed lacks the necessary empathy.&lt;/p&gt;

&lt;p&gt;One developer, Gráinne, found that the person onboarding her was perhaps too close to the code to see it from a newcomer's point of view.&lt;/p&gt;

&lt;p&gt;"On my first day, I showed up, got access to the code, and then had a two-hour sit down with the CTO. He was also the architect of the product and the lead developer. The trouble was that he talked very fast and got quite exasperated when you didn't immediately understand what he was saying."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvs1p3v79lfo37z1iult.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvs1p3v79lfo37z1iult.jpg" alt="A cat that looks displeased" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For Gráinne that meant making whatever notes she could during the onboarding/interrogation and then trying to fill in the gaps by &lt;a href="https://learn.codesee.io/the-value-of-reading-code/" rel="noopener noreferrer"&gt;reading the code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;But even past the onboarding itself, a Monday morning could put things back to square one, "The CTO would often, over a weekend, massively change huge chunks of the code, breaking things in horrible ways, and then would shout about it until we fixed the mess."&lt;/p&gt;

&lt;h2&gt;
  
  
  We are unreliable narrators
&lt;/h2&gt;

&lt;p&gt;Perhaps there's a theme that unites all of these stories: bad developer onboarding happens when there's no process or a process that fails to take account of people's different expectations and approaches.&lt;/p&gt;

&lt;p&gt;Jeroen, a developer for a large multinational, put it this way, "Much of what we do in our business is communication. When we communicate, we're always referring to knowledge in our heads that we hope or assume is also present in the other party's head."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t4ib2vbnrpzrvub4rrx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t4ib2vbnrpzrvub4rrx.jpg" alt="Mixed up Scrabble tiles" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The problem is that it's hard for us to understand where that shared frame of reference ends and where we need to teach something completely new. Gráinne's CTO became frustrated when other people didn't understand his explanations because he couldn't imagine that other people had different experiences to his own.&lt;/p&gt;

&lt;p&gt;Yes, we can grow as teachers and communicators. But there's a deeper issue. Onboarding shouldn't be an oral tradition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Codebase onboarding as oral tradition
&lt;/h2&gt;

&lt;p&gt;Let's take a moment to imagine something different.&lt;/p&gt;

&lt;p&gt;You're sat around a fire with your family and close friends. The day has gone well. There is food, you have shelter, and yet there's a threat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faiyy0xruwx5jqks106xl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faiyy0xruwx5jqks106xl.jpg" alt="Roasting marshmallows over a campfire" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the younger children have been wandering into the woods and eating mushrooms. Most have been fine, but one or two have become seriously ill.&lt;/p&gt;

&lt;p&gt;You want to protect the children, but they don't understand why some mushrooms are bad, and others are just really tasty. You don't even know yourself. So, you tell a story to put it in a context you can all understand. You think on your feet. One of the elder members of your village can tell good mushrooms from bad. So, you say that all mushrooms have an evil spirit that only old people can cast out.&lt;/p&gt;

&lt;p&gt;The story works. Over the years, it gets retold and embellished. Eventually, there's so much mythos around mushrooms that the original intent of the stories becomes forgotten. Even so, somehow, it continues to protect people, despite there now being a lot of unnecessary ritual associated with preparing mushroom-based meals.&lt;/p&gt;

&lt;p&gt;Stories passed by word of mouth work act as vehicles for important knowledge. And we still use stories in our work as software developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Onboarding is a documentation problem
&lt;/h2&gt;

&lt;p&gt;When everything is urgent, it's hard to prioritize work that will help you in the future. So it's somewhat understandable why onboarding a new colleague can be haphazard, clumsy, and inconsistent.&lt;/p&gt;

&lt;p&gt;However, a bad onboarding is often actually a symptom of other problems. One particular issue is simply that many codebases lack good documentation. While individuals methods might have excellent comments, perhaps understanding of the whole system is less well documented. For example, there are teams where no two members would draw the same &lt;a href="https://www.codesee.io/architecture-diagram" rel="noopener noreferrer"&gt;architecture diagram&lt;/a&gt; despite working on the same product.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://codesee.io" rel="noopener noreferrer"&gt;CodeSee&lt;/a&gt;, they've built tools that make it easier for teams to onboard new developers. And that's not by doing special extra work that just gets used in onboarding. It's by creating a shared understanding that benefits everyone who works on a codebase from onboarding and for the long term.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;a href="https://www.pexels.com/photo/crop-sad-ethnic-man-leaning-with-hand-on-fence-6072365/" rel="noopener noreferrer"&gt;Regretful man photo&lt;/a&gt; by Nipan Chawcharernpon&lt;br&gt;
&lt;a href="https://www.pexels.com/photo/shallow-focus-photo-of-pasta-546945/" rel="noopener noreferrer"&gt;Spaghetti&lt;/a&gt; by Maurijn Pach&lt;br&gt;
&lt;a href="https://www.pexels.com/photo/food-fashion-art-creative-7033929/" rel="noopener noreferrer"&gt;Pomegranate seeds&lt;/a&gt; by by Tima Miroshnichenko&lt;br&gt;
&lt;a href="https://www.pexels.com/photo/short-fur-black-orange-and-gray-cat-208984/" rel="noopener noreferrer"&gt;Angry cat&lt;/a&gt; by Pixabay&lt;br&gt;
&lt;a href="https://www.pexels.com/photo/wood-people-internet-writing-5356420/" rel="noopener noreferrer"&gt;Scrabble tiles&lt;/a&gt; by Kathy Jones&lt;br&gt;
&lt;a href="https://www.pexels.com/photo/barbecue-on-bonfire-1251796/" rel="noopener noreferrer"&gt;Campfire&lt;/a&gt; by Jens Mahnke&lt;/small&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Improve Your Developer Onboarding Path With the 10-3-10 Test</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Tue, 18 Jan 2022 12:19:07 +0000</pubDate>
      <link>https://forem.com/codesee/improve-your-developer-onboarding-path-with-the-10-3-10-test-253j</link>
      <guid>https://forem.com/codesee/improve-your-developer-onboarding-path-with-the-10-3-10-test-253j</guid>
      <description>&lt;p&gt;Getting to the point is essential for a smooth developer onboarding. Within seconds, you need to answer your product or project's what, why, and how.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcscgt7bg628kjqmrtw9u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcscgt7bg628kjqmrtw9u.jpg" alt="Microscope" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But it can be hard to put ourselves in the shoes of a developer who knows nothing of what we do. That's why it's essential that we test and improve the onboarding path we give developers.&lt;/p&gt;

&lt;p&gt;One way to do that is the 10-3-10 test. It's quick to perform, requires no special tools, and pretty much anyone can do it. Here's how.&lt;/p&gt;

&lt;h2&gt;
  
  
  From zero to Hello World in ten minutes
&lt;/h2&gt;

&lt;p&gt;The idea behind the 10-3-10 test is pretty simple. A developer should land on your site without any context and achieve the Hello World state within 10 minutes.&lt;/p&gt;

&lt;p&gt;Before a developer can get to that point, they need to know what the product does and then register to get a developer account.&lt;/p&gt;

&lt;p&gt;Within all three of those milestones -- &lt;strong&gt;understanding&lt;/strong&gt;, &lt;strong&gt;registration&lt;/strong&gt;, and &lt;strong&gt;first product use&lt;/strong&gt; -- lurks danger. At each stage, you're asking the developer to give you something on trust. At first, it's their time, then a small amount of information about themselves, and finally, it's both their time and their mental energy. It might sound over the top, but you need to reward the developer for each of those. Get the reward wrong, and the danger becomes apparent: the developer will lose trust and look elsewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drop-off is real
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dl.acm.org/doi/10.1145/1835449.1835513" rel="noopener noreferrer"&gt;Work by Microsoft Research&lt;/a&gt; shows that typical web users decide whether to stay or go within 10 seconds of arriving at a web page. There is even &lt;a href="https://www.tandfonline.com/doi/abs/10.1080/01449290500330448" rel="noopener noreferrer"&gt;an old study&lt;/a&gt; that suggests web page visitors form an opinion within 50 milliseconds of landing.&lt;/p&gt;

&lt;p&gt;Keeping someone on the page long enough to explain the offering is just the start, though. &lt;a href="https://heap.io/blog/good-conversion-rate-signup-flow" rel="noopener noreferrer"&gt;Research on conversion rates&lt;/a&gt; by product analytics firm Heap suggests that 63% of SaaS users fail to complete product sign-up.&lt;/p&gt;

&lt;p&gt;We are operating in a world of spam, clickbait, unregulated advertising, and other underhanded attempts to grab our attention. People have trained themselves to apply harsh relevance criteria to the information they find on the web.&lt;/p&gt;

&lt;p&gt;Arguably, developers are not typical web users. Whether that makes them more or less patient will depend on their level of motivation, among other factors. What is clear, though, is that you have very little time in which to capture a developer's attention and then turn that into an interest in your product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three questions
&lt;/h2&gt;

&lt;p&gt;There are multiple pressures on your developer onboarding flow. Product marketing might have a particular wording they want you to use. Someone in the growth team wants to try an experiment they read about recently. The VP of Sales is pushing for more data collection to assign new developer sign-ups to the appropriate salesperson.&lt;/p&gt;

&lt;p&gt;Whether good or bad, the reality of these demands is that they can lead to a loss of focus. And in most companies, the demand for such change never really stops.&lt;/p&gt;

&lt;p&gt;The 10-3-10 test is simple, repeatable, and quick, helping you measure whether you're continuing to serve developers. It asks three questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10 (understanding):&lt;/strong&gt; Can a developer get a solid idea of what your product does within ten seconds of arriving on a developer-targeted landing page?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 (registration):&lt;/strong&gt; Can that person register for a developer account within three minutes of landing?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10 (first use):&lt;/strong&gt; Can they get to Hello World ten minutes after first landing on the site? Whether you perform each test informally yourself or set up an ethnographic research session, it's worth diving into some of the factors that influence each stage first.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Understanding
&lt;/h2&gt;

&lt;p&gt;How often have you been to a product website and come away none the wiser about what it does?&lt;/p&gt;

&lt;p&gt;Competing demands too often lead to product pages that say a lot but communicate nothing. A common scenario is messaging that attempts to address too many different audiences at once. If a vendor compromises its message to serve both developers and, say, procurement managers, it'll serve neither well.&lt;/p&gt;

&lt;p&gt;Sometimes, it's just that companies overthink how they talk about their products. As someone writing about a product, it can be hard to extract yourself from the context you have. It's tempting to build every comment, every meeting about the Chief Marketing Officer's vocab preferences, every barb thrown by the competition into that one very clever headline. But does that serve someone who just wants to know what problem your product solves and how?&lt;/p&gt;

&lt;p&gt;The first step to passing the understanding test is to make sure you have a dedicated space to speak primarily to developers.&lt;/p&gt;

&lt;p&gt;Next, stay specific and tell developers what your product does for them. Consider CodeSee's own home page. The headline and sub-head get straight to the action:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Visualize codebases faster&lt;/p&gt;

&lt;p&gt;Map an entire codebase in just a few clicks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The short follow-up paragraph then expands on that in a way that sticks entirely to the facts of how the product benefits developers.&lt;/p&gt;

&lt;p&gt;Avoid the temptation to over-egg how you describe your offering. "SMS API," rather than "customer engagement solution." That kind of messaging has its place for certain audiences, and it makes product marketers feel good, but for developers, it's just another hurdle in the way of understanding whether that thing solves a problem that they have.&lt;/p&gt;

&lt;p&gt;To pass the first test, a typical developer should understand the practical purpose of your product within ten seconds of landing on your developer home page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Registration
&lt;/h2&gt;

&lt;p&gt;Registration is a chasm in your developer onboarding. This is where developers must put the most trust in you by providing personal information without a clear idea of the pay-off. Provide them with guide ropes, way finding, and a hint of the reward that is to come.&lt;/p&gt;

&lt;p&gt;First, how do you get a developer from the landing page to sign-up? The button or link you provide needs to be immediately obvious, not so wordy that people are tempted to skip it, and yet still communicate what's to come. Oh, and the copy must avoid scaring people off.&lt;/p&gt;

&lt;p&gt;"Get started" and "Start now" are common choices. However, &lt;a href="https://www.nngroup.com/articles/get-started/" rel="noopener noreferrer"&gt;at least one study&lt;/a&gt; has shown that "Get started" attracts clicks, but not all are from people who are ready to try, download, or buy your product.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://miro.com/api/" rel="noopener noreferrer"&gt;The Miro API&lt;/a&gt;'s "Start building" is clearer. Click that, and you know you're about to get hands-on with the API.&lt;/p&gt;

&lt;p&gt;CodeSee's "Try Maps now" communicates a lot in three words. "Try" tells you that you're going to be hands-on with the product while making it feel casual rather than intimidating. Naming the product enforces what's coming next, and "now" adds a sense that clicking will lead to a fast pay-off.&lt;/p&gt;

&lt;p&gt;That's a lot for a button.&lt;/p&gt;

&lt;p&gt;The registration process itself must stick to the principle of "minimum viable information". Sales and marketing colleagues might push to capture more and more information during registration, but your primary aim here is not to add another lead to the CRM. Instead, registration is about enabling access and then allowing the rest of the experience and product to win over the developer.&lt;/p&gt;

&lt;p&gt;That doesn't mean you can't ask for more than just an email address and password. Most people have some tolerance for providing extra information. However, you should aim to frame at least some of those additional questions in terms of how they'll benefit the developer. Twilio's registration process is great for this. It asks some questions that might help their sales funnel but also collects information, such as your preferred programming language, that makes the developer dashboard more helpful.&lt;/p&gt;

&lt;p&gt;To pass the second test, a typical developer should be able to get a developer account within three minutes of landing on your developer home page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hello World
&lt;/h2&gt;

&lt;p&gt;Providing a smooth path through registration is good, but it's only a staging post. The developer's goal is to see for themselves whether your product solves their problem and whether they like the idea of working with your company.&lt;/p&gt;

&lt;p&gt;There is enormous scope for ways to improve the path to Hello World, so let's focus on one thing. When the developer first logs into your dashboard, take them by the hand through the steps they need to achieve something worthwhile.&lt;/p&gt;

&lt;p&gt;Such a first use experience is more than flashing up a quick-start guide or a click-through signposting of the dashboard's UI. It is a highly focused path that takes the developer from no knowledge of your product to that Hello World interaction. It builds on the supplemental information you've gathered during sign-up. Are they a Ruby developer? Great, get them to download your SDK's gem. They told you they work for a large company? Suggest they link their new account with Okta or other SSO providers to simplify integration with corporate sign-on.&lt;/p&gt;

&lt;p&gt;That highly focused first use experience should contain everything the developer needs to get a feel for your solution and what it's like to develop with, in as efficient a way as possible.&lt;/p&gt;

&lt;p&gt;If a typical developer can get to Hello World within ten minutes of the first landing on your developer pages, you've passed the 10-3-10 test.&lt;/p&gt;

&lt;h2&gt;
  
  
  And there's more
&lt;/h2&gt;

&lt;p&gt;The 3-10-3 test is a blunt instrument, but it's useful as a way to keep us honest about whether our onboarding serves developers. It works well for commercial products, and there's plenty of scope to adapt it to onboarding a developer onto a team building a product or a developer joining an open source project.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Microscope picture by &lt;a href="https://www.pexels.com/photo/technology-lens-laboratory-medical-60022/" rel="noopener noreferrer"&gt;Public Domain Pictures&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building an app business using Heroku and Salesforce</title>
      <dc:creator>Matthew Revell</dc:creator>
      <pubDate>Tue, 01 Dec 2020 16:22:07 +0000</pubDate>
      <link>https://forem.com/heroku/building-an-app-business-using-heroku-and-salesforce-28pb</link>
      <guid>https://forem.com/heroku/building-an-app-business-using-heroku-and-salesforce-28pb</guid>
      <description>&lt;p&gt;The past decade was the era of the mobile app store. &lt;/p&gt;

&lt;p&gt;Brilliant ideas, well executed, made fortunes for indie developers who were able to reach audiences of billions from their spare rooms, garages, and co-working spaces. &lt;/p&gt;

&lt;p&gt;Thanks to the Google Play Store and Apple’s App Store, the best apps could reach users on merit rather than marketing budget.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But those days are gone&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F82txgm2br734f7b6yf0z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F82txgm2br734f7b6yf0z.jpg" alt="Safari icon shown on an iPhone screen" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today, mobile app stores are dominated by big name vendors, while everyone else fights for a handful of ad dollars among millions of competitors. And mobile users are fickle. &lt;a href="https://www.emarketer.com/content/most-apps-get-deleted-within-a-week" rel="noopener noreferrer"&gt;Most apps are uninstalled within a week of being used&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;There is good news, though. We are now in the era of the business to business app marketplace, such as the Salesforce AppExchange. Motivated customers with long-term needs and realistic budgets are actively looking to buy solutions. So, what is it like for a solo developer or small team to develop such a business?&lt;/p&gt;

&lt;h1&gt;
  
  
  The size of the opportunity
&lt;/h1&gt;

&lt;p&gt;Before we dive into the specifics of developing for an ecosystem such as Salesforce, there’s the question of whether it’s going to be worthwhile.&lt;/p&gt;

&lt;p&gt;The short answer is: yes, absolutely.&lt;/p&gt;

&lt;p&gt;Analyst firm &lt;a href="https://www.salesforce.com/content/dam/web/en_us/www/documents/reports/idc-salesforce-economy-report.pdf" rel="noopener noreferrer"&gt;IDC forecasts&lt;/a&gt; that, by 2024, the Salesforce ecosystem will create 4.2 million jobs and contribute $1.2 trillion in new business revenues to local economies.&lt;/p&gt;

&lt;p&gt;Crucially, the majority of the value created by Salesforce is going to partners, such as companies making apps for the Salesforce AppExchange. In fact, for every dollar that Salesforce generates, its partners earn six dollars.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F13ombuhqofs69blwmfrl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F13ombuhqofs69blwmfrl.png" alt="Salesfore AppExchange" width="800" height="1035"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, big numbers aren’t always relatable so let’s look at the opportunity in terms of relative growth. Spending on cloud software is predicted to grow 19% each year over that period. For non-cloud, it’s just 3%. If you’re creating something new, it stands a better chance of success if you deliver it as SaaS. And a marketplace will help you reach willing customers. &lt;/p&gt;

&lt;h1&gt;
  
  
  Look, I've got my stack and I like it
&lt;/h1&gt;

&lt;p&gt;Even if you haven’t used Salesforce, then you’re almost certainly aware of its reach. All those thousands of organizations using Salesforce to run their day to day business offer a potential audience for app developers.&lt;/p&gt;

&lt;p&gt;So, the opportunity looks good but how do you actually build an app for one of these marketplaces? Perhaps you’re thinking that it means getting used to a bunch of exotic languages and frameworks.&lt;/p&gt;

&lt;p&gt;In the case of Salesforce AppExchange, you use technologies that you’d find anywhere else. Let’s start with the back-end. If you usually work with Ruby, Python, Go, Java, or pretty much any other open source language, then you can use that to do most of your back-end’s heavy lifting on Heroku. Add in Heroku Postgres, Heroku Redis, and tooling such as Apache Kafka on Heroku, and you have a standard, modern web stack.&lt;/p&gt;

&lt;p&gt;So, where does Salesforce come in? As Heroku is part of the Salesforce platform, you can easily sync data between a Heroku Postgres database and one or more Salesforce orgs. In effect, your app’s back-end can live mostly on Heroku and synchronize with Salesforce when the need arises.&lt;/p&gt;

&lt;p&gt;When it comes to the front-end, you’ll need to work more closely with Salesforce itself as your users will interact with your app from within Salesforce’s UI. Even so, the tools you’ll be using will be immediately familiar. Lightning Web Components is a JavaScript front-end framework much like ReactJS, with ready made elements for common scenarios and the flexibility to create your own when you need to.&lt;/p&gt;

&lt;p&gt;In fact, this is another place where mobile development offers a good analogy. If you’re building a mobile app you’ll need to use specific APIs for the front-end, while the back-end can be designed however you like.&lt;/p&gt;

&lt;h1&gt;
  
  
  How SharinPix built their business with Salesforce
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.sharinpix.com/" rel="noopener noreferrer"&gt;SharinPix&lt;/a&gt; is an image management app built specifically for the Salesforce AppExchange. It began life when its founder, Jean-Michel Mougeolle, needed to process photos taken by field agents working for his then company. The agents would upload the images into Salesforce but the company needed to resize them and add supplemental data such as automatic annotation and watermarks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjmqnxji2skqey5qa54h3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjmqnxji2skqey5qa54h3.png" alt="Screenshot of SharinPix" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The challenge for Jean-Michel was that the core Salesforce platform didn’t lend itself to general development tasks, such as image manipulation. However, if he could use a standard web development framework, such as Ruby on Rails, then he could plug into standard image manipulation libraries quite easily. &lt;/p&gt;

&lt;p&gt;Already familiar with Heroku, Jean-Michel built a proof of concept using &lt;a href="https://www.heroku.com/connect" rel="noopener noreferrer"&gt;Heroku Connect&lt;/a&gt;, which synchronizes data between Heroku Postgres and Salesforce. On Heroku, he had a Rails app that would take images from Salesforce, manipulate them, and then sync the processed images and metadata back into Salesforce. Crucially for Jean-Michel, no one who tried the demo app had any clue that Heroku was involved; as far as they were concerned, it was a standard Salesforce application.&lt;/p&gt;

&lt;p&gt;Shortly after, Jean-Michel spun SharinPix out of his original company and today has a team of developers serving 20,000 users. And while the development side has given SharinPix the best of both worlds -- standard web dev on Heroku, with easy integration into Salesforce’s UI -- the company’s success has been as much about the route to market that the AppExchange provides.&lt;/p&gt;

&lt;p&gt;“AppExchange is fantastic,” says Jean-Michel. “Customers know that our app is secure and trustworthy because it has the Salesforce stamp of approval. Discovery is also very good. People can search for image manipulation then find our app page, where they can watch videos, read about the app, and start a trial. We don’t have to play the SEO game or spend on ads, because we have a ready made audience.”&lt;/p&gt;

&lt;h1&gt;
  
  
  Getting your start in the Salesforce ecosystem
&lt;/h1&gt;

&lt;p&gt;The next big opportunities for developer entrepreneurs might not be in the most obvious places. B2B marketplaces are growing, have audiences that have proven their willingness to spend money, and provide an ecosystem of tooling, marketing support, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbduvgxg3f8f5p819n06e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbduvgxg3f8f5p819n06e.jpg" alt="Mug with the text 'Begin'" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, where do you go from here? If you’re interested in building for the Salesforce ecosystem, then there’s a wealth of learning materials on the &lt;a href="https://trailhead.salesforce.com/home" rel="noopener noreferrer"&gt;Trailhead learning site&lt;/a&gt;, as well as a friendly and helpful community of fellow developers.&lt;/p&gt;

&lt;p&gt;&lt;small&gt;&lt;em&gt;&lt;ul&gt;

 &lt;li&gt;Mug image by &lt;a href="https://unsplash.com/@dsmacinnes" rel="noopener noreferrer"&gt;Danielle MacInnes&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;Safari icon photo by &lt;a href="https://unsplash.com/@brett_jordan" rel="noopener noreferrer"&gt;Brett Jordan&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>salesforce</category>
      <category>heroku</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
