<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Soumyadeep Dey </title>
    <description>The latest articles on DEV Community by Soumyadeep Dey  (@soumyadeepdey).</description>
    <link>https://dev.to/soumyadeepdey</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%2F1076361%2F0aa8630b-3826-4103-9ca3-7436013bf933.jpg</url>
      <title>DEV Community: Soumyadeep Dey </title>
      <link>https://dev.to/soumyadeepdey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/soumyadeepdey"/>
    <language>en</language>
    <item>
      <title>Hermes Agent for Developers: The Open Source AI Agent That Learns &amp; Remembers</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 30 May 2026 04:28:57 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/hermes-agent-for-developers-the-open-source-ai-agent-that-learns-remembers-4mb6</link>
      <guid>https://dev.to/soumyadeepdey/hermes-agent-for-developers-the-open-source-ai-agent-that-learns-remembers-4mb6</guid>
      <description>&lt;h1&gt;
  
  
  Why Hermes Agent Is One of the Most Practical Open Source AI Agents for Developers
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hermes-agent-2026-05-15"&gt;Hermes Agent Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Author: &lt;a href="https://github.com/SoumyaEXE" rel="noopener noreferrer"&gt;SoumyaEXE&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Portfolio: &lt;a href="https://isoumya.xyz" rel="noopener noreferrer"&gt;isoumya.xyz&lt;/a&gt;&lt;br&gt;&lt;br&gt;
LinkedIn: &lt;a href="https://www.linkedin.com/in/isoumyadeyy/" rel="noopener noreferrer"&gt;isoumyadeyy&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Agent frameworks are everywhere right now, but most of them still feel like demos dressed up as products. They can answer prompts, call a tool or two, and generate nice screenshots for launch posts, yet many fall apart when the task gets longer, messier, or more dependent on memory.&lt;/p&gt;

&lt;p&gt;That is why Hermes Agent caught attention. It is not positioned as just another chatbot wrapper or an IDE sidekick. Hermes Agent is designed as an autonomous, self-improving agent that can plan, use tools, build reusable skills, and persist memory across sessions. That combination matters a lot for developers who want something more durable than one-shot prompt orchestration.&lt;/p&gt;

&lt;p&gt;This post focuses on the developer angle. Instead of repeating marketing copy, it looks at what Hermes Agent is, why its design stands out, how a developer can start using it, and where it fits in a real workflow. The goal is simple: help other developers decide whether Hermes Agent is worth their time for learning, experimentation, and actual projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this topic matters now
&lt;/h2&gt;

&lt;p&gt;The timing of this challenge is interesting because the AI tooling landscape is moving from simple assistants toward more persistent systems. The official Hermes Agent Challenge asks writers to publish something that educates, inspires, or sparks discussion around Hermes Agent, and submissions are judged on clarity, originality, practical value, and writing quality [1].&lt;/p&gt;

&lt;p&gt;That judging criteria actually says a lot about what kind of post works best. A strong submission should not just praise the tool. It should teach something useful, present a clear point of view, and leave readers with a practical understanding they can apply immediately.&lt;/p&gt;

&lt;p&gt;So instead of writing a shallow overview, this article takes a position: Hermes Agent is one of the more practical open source agent systems for developers because it treats memory, skills, tooling, and deployment as first-class parts of the product rather than afterthoughts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Hermes Agent actually is
&lt;/h2&gt;

&lt;p&gt;According to the official documentation, Hermes Agent is a self-improving AI agent built by Nous Research, and its core idea is a built-in learning loop that creates skills from experience, improves them during use, persists knowledge, and builds a deeper model across sessions [2].&lt;/p&gt;

&lt;p&gt;That description is important because it changes how the agent should be evaluated. Many systems are good at completing a single session well enough. Hermes Agent is trying to become more useful over time. That means the benchmark is not only immediate output quality. The benchmark is whether repeated use produces a smarter, more capable system without forcing the developer to constantly rebuild context from scratch.&lt;/p&gt;

&lt;p&gt;In practice, Hermes Agent presents itself as more than a local toy. The docs highlight that it can run across local environments and multiple terminal backends including Docker, SSH, Daytona, Singularity, and Modal, which makes it easier to think of it as infrastructure rather than a single-device assistant [2].&lt;/p&gt;

&lt;h2&gt;
  
  
  The four ideas that make Hermes Agent stand out
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Persistent memory is not optional
&lt;/h3&gt;

&lt;p&gt;One reason many agent demos feel brittle is that they start fresh too often. A tool might solve a task today, then forget everything tomorrow. Hermes Agent is built around a memory system that grows across sessions, with cross-session recall listed as a core feature in the official docs [2].&lt;/p&gt;

&lt;p&gt;For developers, this matters in obvious ways. If an agent remembers preferred workflows, recurring project context, prior fixes, or known environment quirks, it becomes more valuable with repetition. That turns the system from a novelty into something closer to an assistant that can actually compound usefulness over time.&lt;/p&gt;

&lt;p&gt;This is especially relevant for software work because software work is repetitive in structure, even when the tasks themselves differ. A developer often revisits the same repositories, conventions, setup steps, deployment targets, and debugging habits. An agent that remembers these patterns can reduce friction in a way stateless systems simply cannot.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Skills turn experience into reusable procedure
&lt;/h3&gt;

&lt;p&gt;Hermes Agent also emphasizes a skills system. The docs describe procedural memory and reusable skills as a major feature, and independent writeups on Hermes highlight that the agent can generate and reuse skill documents after completing complex tasks [2][3].&lt;/p&gt;

&lt;p&gt;That is a stronger idea than it sounds at first glance. A lot of AI tooling relies on the user becoming the memory layer. The human has to remember which prompt worked, which sequence of steps got the right result, and which format produced reliable output. Hermes Agent tries to capture some of that procedure itself.&lt;/p&gt;

&lt;p&gt;For a developer, this creates an appealing loop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solve a task once&lt;/li&gt;
&lt;li&gt;Let the agent retain the pattern&lt;/li&gt;
&lt;li&gt;Reuse the pattern later with less prompting&lt;/li&gt;
&lt;li&gt;Improve the pattern as usage continues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is one of the most convincing arguments for Hermes Agent. It is not only trying to answer better. It is trying to operationalize experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Tool use is built into the agent identity
&lt;/h3&gt;

&lt;p&gt;The official documentation positions Hermes Agent as an agent with broad tool access, including web search, browsing, extraction, image generation, TTS, MCP support, and more than 60 built-in tools depending on configuration [2].&lt;/p&gt;

&lt;p&gt;This matters because real agentic work is almost never pure text generation. Useful systems need retrieval, execution, inspection, iteration, and output shaping. A good model alone is not enough. Hermes seems to understand that the value of an agent lies in the relationship between reasoning, memory, and tools.&lt;/p&gt;

&lt;p&gt;There is also a practical advantage here. Developers do not want a fragile stack where every new capability requires wiring together five more packages. Hermes Agent appears to reduce that setup burden by making tool use part of the default mental model rather than an advanced extension.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. It is designed to live outside the laptop
&lt;/h3&gt;

&lt;p&gt;One of the better ideas in the Hermes documentation is the insistence that the agent is not tied to a single laptop session. The docs explicitly frame Hermes as something that can run on a cheap VPS, a GPU cluster, or serverless infrastructure, while also connecting through platforms such as Telegram, Discord, Slack, WhatsApp, Teams, and more [2].&lt;/p&gt;

&lt;p&gt;That changes the type of projects developers can imagine. Instead of thinking only in terms of a command line assistant opened for a few minutes, it becomes easier to imagine background research agents, message-based task bots, or persistent personal infrastructure that can keep working while the user is away.&lt;/p&gt;

&lt;p&gt;A lot of agent products claim flexibility. Hermes Agent makes that flexibility feel architectural.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why developers should care
&lt;/h2&gt;

&lt;p&gt;The strongest reason to care about Hermes Agent is not hype. It is leverage.&lt;/p&gt;

&lt;p&gt;A developer usually does not need an AI tool that looks impressive for thirty seconds. A developer needs a system that can help with repeated workflows, multi-step tasks, context retention, and automation that survives beyond a single prompt window.&lt;/p&gt;

&lt;p&gt;Hermes Agent lines up well with that need in several areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It supports persistent memory, which makes repeated use more valuable [2]&lt;/li&gt;
&lt;li&gt;It supports reusable skills, which can convert successful task patterns into future shortcuts [2][3]&lt;/li&gt;
&lt;li&gt;It supports multiple deployment environments, which opens the door to self-hosted and remote workflows [2]&lt;/li&gt;
&lt;li&gt;It supports many communication platforms and tool integrations, which makes it easier to bring the agent into real work channels instead of leaving it isolated in a terminal [2]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That combination is what makes Hermes Agent interesting beyond the current agent trend cycle. It is built around continuity.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical use case: an automated research pipeline
&lt;/h2&gt;

&lt;p&gt;To make this concrete, consider a small automated research pipeline. This is the sort of project that fits both the challenge spirit and everyday developer needs.&lt;/p&gt;

&lt;p&gt;A basic research workflow usually involves the same sequence again and again:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Accept a topic or question&lt;/li&gt;
&lt;li&gt;Search for relevant sources&lt;/li&gt;
&lt;li&gt;Open and extract content from the strongest pages&lt;/li&gt;
&lt;li&gt;Compare claims across sources&lt;/li&gt;
&lt;li&gt;Summarize findings in a structured format&lt;/li&gt;
&lt;li&gt;Preserve useful patterns for later runs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hermes Agent is well suited to this type of workflow because it combines tool use, memory, and iterative reasoning. The official docs specifically highlight web search, browsing, extraction, memory, scheduled automations, and subagents for parallel workstreams as supported capabilities [2].&lt;/p&gt;

&lt;p&gt;That means a developer can imagine a workflow like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hermes receives a research prompt&lt;/li&gt;
&lt;li&gt;It searches the web using integrated tools&lt;/li&gt;
&lt;li&gt;It extracts content from relevant sources&lt;/li&gt;
&lt;li&gt;It writes a structured summary&lt;/li&gt;
&lt;li&gt;It stores notes about the format, source preferences, and common research patterns for future work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting part is not just that Hermes can do each step. It is that the system is designed to improve the workflow over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fast setup path
&lt;/h2&gt;

&lt;p&gt;The official installation flow is refreshingly direct. The docs provide a one-line install script for Linux, macOS, and WSL2, and they recommend &lt;code&gt;hermes setup --portal&lt;/code&gt; as the fastest path to a working agent with model access plus tool gateway features such as web search, image generation, TTS, and browser access [2].&lt;/p&gt;

&lt;p&gt;Here is a compact example setup flow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
hermes setup &lt;span class="nt"&gt;--portal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That installation story matters more than people admit. In fast-moving AI tooling, the difference between curiosity and abandonment is often ten minutes of setup friction. Hermes Agent looks stronger here because the onboarding path is designed around getting to a usable system quickly [2].&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple developer-oriented workflow
&lt;/h2&gt;

&lt;p&gt;Below is a lightweight conceptual setup for a research-focused Hermes workflow. It is intentionally short because the purpose is to show how approachable the structure can be.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;agent&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;research-agent&lt;/span&gt;
  &lt;span class="na"&gt;profile&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;technical-writer&lt;/span&gt;
  &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;skills&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="na"&gt;runtime&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;backend&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;local&lt;/span&gt;

&lt;span class="na"&gt;models&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;default&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;portal/default&lt;/span&gt;

&lt;span class="na"&gt;goals&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Search for high-quality sources&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Extract useful technical details&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Summarize findings clearly&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Reuse successful workflows later&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And here is the type of prompt that fits Hermes well:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes run research-agent &lt;span class="nt"&gt;--prompt&lt;/span&gt; &lt;span class="s2"&gt;"Research memory-augmented open source AI agents, compare core features, and draft a developer-friendly summary with practical examples."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This type of workflow plays to the platform's strengths. It is not just asking the model to write. It is asking the agent to search, organize, compare, retain, and evolve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Hermes Agent feels stronger than many alternatives
&lt;/h2&gt;

&lt;p&gt;A lot of frameworks in the agent ecosystem are capable. That is worth stating clearly. There are several good options depending on whether someone wants orchestration, workflow control, coding support, or enterprise tooling.&lt;/p&gt;

&lt;p&gt;Still, Hermes Agent feels different in a few practical ways.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Why Hermes Agent stands out&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;Persistent cross-session memory is positioned as a core feature, not a plugin [2]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skills&lt;/td&gt;
&lt;td&gt;Reusable procedural skills are central to the product identity [2][3]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Local, Docker, SSH, Modal, and other backends are documented as supported paths [2]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Communication&lt;/td&gt;
&lt;td&gt;Hermes can connect to many messaging platforms, which expands real-world usage options [2]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learning loop&lt;/td&gt;
&lt;td&gt;The built-in self-improvement story is more explicit than in many general-purpose frameworks [2][3]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That does not mean Hermes Agent is universally better. Some developers may still prefer lower-level orchestration frameworks if they want to custom-build every layer. Others may prefer vendor-specific ecosystems if they are deeply invested in a single cloud stack.&lt;/p&gt;

&lt;p&gt;But Hermes Agent makes a compelling case for developers who want a system that is usable now, extensible later, and architected around long-term improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  What kind of developer should try Hermes Agent
&lt;/h2&gt;

&lt;p&gt;Hermes Agent is especially attractive for a few categories of builders:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers who want to self-host or run agents on their own infrastructure [2]&lt;/li&gt;
&lt;li&gt;Builders interested in long-running assistants rather than one-session chat tools [2]&lt;/li&gt;
&lt;li&gt;People experimenting with research workflows, coding helpers, task bots, or messaging-based agents [2]&lt;/li&gt;
&lt;li&gt;Developers who care about reusable procedure, not just prompt output [2][3]&lt;/li&gt;
&lt;li&gt;Tinkerers who want an open system with MCP support and portable skills [2]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point matters a lot. A framework becomes much more interesting when it lets developers build systems that feel personal and durable. Hermes Agent seems designed for that mode of use.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trade-offs to think about honestly
&lt;/h2&gt;

&lt;p&gt;A good technical post should not read like promotion. So it is worth talking about trade-offs.&lt;/p&gt;

&lt;p&gt;First, a system with memory, tools, multiple backends, and cross-platform integration will naturally be more complex than a simple chat interface. That complexity can be a strength, but it also raises the bar for understanding, debugging, and configuration.&lt;/p&gt;

&lt;p&gt;Second, the promise of self-improvement is powerful, but any learning system depends on the quality of the tasks, stored artifacts, and feedback loops around it. In other words, Hermes Agent may create better workflows over time, but that still requires thoughtful usage. Good systems amplify good practice. They do not remove the need for it.&lt;/p&gt;

&lt;p&gt;Third, the more ambitious the workflow, the more important observability becomes. If an agent searches, extracts, remembers, and adapts, developers need to inspect what it did and why. That is not a Hermes-only issue. It is a general truth of agent engineering.&lt;/p&gt;

&lt;p&gt;These are not reasons to avoid Hermes Agent. They are reasons to approach it like infrastructure rather than magic.&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes a strong DEV challenge post
&lt;/h2&gt;

&lt;p&gt;Since this article is also a challenge submission, it is worth stepping back and asking what kind of Hermes post is likely to perform well with readers and judges.&lt;/p&gt;

&lt;p&gt;The official challenge rules say the write track is judged on clarity and depth of explanation, originality of perspective or insight, practical value to the community, and quality of writing [1]. That means the strongest posts will probably do three things well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Teach something concrete&lt;/li&gt;
&lt;li&gt;Offer a distinct point of view&lt;/li&gt;
&lt;li&gt;Stay readable for developers who are curious but not yet invested&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why Hermes Agent is such a good subject for writing. It naturally supports several strong angles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A setup guide for local or VPS deployment&lt;/li&gt;
&lt;li&gt;A breakdown of the memory and skills model&lt;/li&gt;
&lt;li&gt;A comparison against other agent approaches&lt;/li&gt;
&lt;li&gt;A case study around a useful workflow like research, automation, or coding assistance&lt;/li&gt;
&lt;li&gt;A broader essay on what persistent agents mean for developer tooling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For reach, the best post is usually not the most academic one. It is the one that gives readers enough technical substance to trust the writer while keeping the narrative clear enough that they actually finish it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Hermes Agent is worth watching
&lt;/h2&gt;

&lt;p&gt;There are many open source AI projects that generate excitement for a week and then disappear into a GitHub tab graveyard. Hermes Agent feels more durable because the core ideas behind it map onto real problems developers actually have.&lt;/p&gt;

&lt;p&gt;Developers need systems that remember, adapt, and integrate with tools. They need agents that can live outside a browser tab. They need workflows that become easier after the fifth run, not harder.&lt;/p&gt;

&lt;p&gt;Hermes Agent is interesting because it is trying to solve those exact problems. The official docs frame it as an autonomous agent with persistent memory, reusable skills, broad tool access, multiple runtime backends, and rich communication options across platforms [2]. That is not a small ambition, but it is the right ambition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Hermes Agent stands out because it treats agency as a systems problem, not just a prompting trick. Memory, skills, execution environments, communication channels, and tool access are all part of the same product story [2].&lt;/p&gt;

&lt;p&gt;That makes it one of the more practical open source agent projects to study right now. Not because it promises magic, but because it is built around the idea that useful agents should improve with experience, persist across contexts, and fit into the way developers actually work [2][3].&lt;/p&gt;

&lt;p&gt;For developers exploring open source agent frameworks in 2026, Hermes Agent looks less like a passing novelty and more like a serious attempt at building software that can keep getting better after the first run [2][3].&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Challenge page: &lt;a href="https://dev.to/challenges/hermes-agent-2026-05-15"&gt;Hermes Agent Challenge&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Official rules: &lt;a href="https://dev.to/page/hermes-agent-challenge-2026-05-15-contest-rules"&gt;Hermes Agent Challenge Contest Rules&lt;/a&gt; [1]&lt;/li&gt;
&lt;li&gt;Documentation: &lt;a href="https://hermes-agent.nousresearch.com/docs/" rel="noopener noreferrer"&gt;Hermes Agent Docs&lt;/a&gt; [2]&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/NousResearch/hermes-agent" rel="noopener noreferrer"&gt;NousResearch/hermes-agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub profile: &lt;a href="https://github.com/SoumyaEXE" rel="noopener noreferrer"&gt;SoumyaEXE&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Portfolio: &lt;a href="https://isoumya.xyz" rel="noopener noreferrer"&gt;isoumya.xyz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LinkedIn: &lt;a href="https://www.linkedin.com/in/isoumyadeyy/" rel="noopener noreferrer"&gt;Soumya Dey&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>devchallenge</category>
      <category>agents</category>
      <category>github</category>
    </item>
    <item>
      <title>Your AI agent has amnesia. You've just normalized it.</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 23 May 2026 17:44:06 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/your-ai-agent-has-amnesia-youve-just-normalized-it-40bj</link>
      <guid>https://dev.to/soumyadeepdey/your-ai-agent-has-amnesia-youve-just-normalized-it-40bj</guid>
      <description>&lt;p&gt;Three hackathons in three months. Three different agent setups. Three times I wrote a system prompt that said something like "you are a helpful assistant that can use tools and reason across steps." Three times I shipped something, closed the terminal, and the agent forgot everything it had ever done.&lt;/p&gt;

&lt;p&gt;I didn't think of it as a problem. I thought of it as just how agents work.&lt;/p&gt;

&lt;p&gt;That's the part worth interrogating.&lt;/p&gt;




&lt;p&gt;There's a normalization happening in how we build with AI. We've collectively agreed that agents are stateless, that every session starts cold, that the "memory" problem is either solved by shoving things into a context window or punted to some RAG pipeline you bolt on after the fact. We treat amnesia as a default and then we build around it. Bigger context windows. Better prompts. Smarter retrieval.&lt;/p&gt;

&lt;p&gt;But none of that solves the actual problem, which is: the agent isn't getting better at working with you specifically. It's not accumulating judgment. It's not noticing that you always want JSON back, or that your last three API integrations broke on rate limits, or that you prefer terse explanations over verbose ones. Every session, you re-establish who you are. Every session, the agent starts from scratch.&lt;/p&gt;

&lt;p&gt;That's not intelligence. That's a very fast amnesiac with a lot of knowledge.&lt;/p&gt;




&lt;p&gt;The thing that made me stop and actually think was this line from Hermes Agent's README:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The self-improving AI agent... it creates skills from experience, improves them during use, nudges itself to persist knowledge, searches its own past conversations, and builds a deepening model of who you are across sessions."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not "we have a memory feature." Not "long-term context support." Skills from experience. A deepening model of who you are.&lt;/p&gt;

&lt;p&gt;That's a different claim. And it's architectural, not cosmetic.&lt;/p&gt;

&lt;p&gt;When Hermes completes a task, it can crystallise what it did into a reusable skill, tag it, store it, and pull from it next time a similar problem comes up. The first time you ask it to do something gnarly, it figures it out. By the third time, it's refined the approach. This is not a context window trick. The learning loop is built into the agent itself.&lt;/p&gt;




&lt;p&gt;Here's a concrete thing to sit with: imagine you're onboarding a junior developer. Day one, you explain your codebase, your conventions, your preferences. Day two, they remember. Day thirty, they're fast because they've internalized how you work. Now imagine that junior dev reset every morning with zero memory of the previous day. You'd re-onboard them every single time. You'd eventually stop delegating anything non-trivial because the overhead is too high.&lt;/p&gt;

&lt;p&gt;That's what most of us are doing with agents right now, and calling it "agentic AI."&lt;/p&gt;

&lt;p&gt;Hermes Agent is at least trying to solve the actual problem instead of building better workarounds for it.&lt;/p&gt;




&lt;p&gt;The model-agnostic architecture is worth one paragraph because it doesn't get enough attention. Hermes runs on anything: Claude, GPT-4o, Gemini, 200+ models through OpenRouter, your own endpoint. Switch models with &lt;code&gt;hermes model&lt;/code&gt;, no code changes. This matters less as a convenience feature and more as a philosophical stance. The model is not the agent. The learning loop, the skill library, the memory system, the planning layer: those are the agent. The model is just the reasoning engine you slot in. When the next frontier model drops in six months and blows the current one out of the water, Hermes users swap it in with one command. Everyone building on a single-model API foundation has to rearchitect.&lt;/p&gt;




&lt;p&gt;The infrastructure story also compounds with everything above. You can run this on a $5 VPS. Not "you can try it on a $5 VPS before you upgrade," actually run it there. The serverless option means you're paying essentially nothing when it's idle. You can message it from Telegram while it does work on a cloud machine. That's not a demo feature, it's a deployment story that actually works outside your laptop.&lt;/p&gt;




&lt;p&gt;I want to be honest: I haven't run Hermes for six months and watched it compound knowledge into something that feels like a real collaborator. Neither has basically anyone outside the Nous Research team. The learning loop architecture is genuinely interesting but the proof will be in sustained use cases, and those take time to surface.&lt;/p&gt;

&lt;p&gt;But here's what I do know: the agents I've built and shipped have all hit the same ceiling. They can reason well within a session. They fall apart across sessions. Every improvement I made was either a bigger context window, a more detailed system prompt, or a retrieval system I had to design and maintain separately. None of it made the agent better at working with me. I was compensating for statelessness, not solving it.&lt;/p&gt;

&lt;p&gt;Hermes Agent is trying to solve it. The architecture is open source, the model layer is swappable, and the whole thing runs on infrastructure you control.&lt;/p&gt;

&lt;p&gt;In a space where most "agents" are prompt chains with an API call attached, that's worth taking seriously.&lt;/p&gt;




&lt;p&gt;&lt;code&gt;[NousResearch/hermes-agent](https://github.com/NousResearch/hermes-agent)&lt;/code&gt; on GitHub. Quickstart video is linked in the docs. Worth an afternoon.&lt;/p&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>agents</category>
      <category>ai</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>Gemma 4 Has Four Variants. Here's How to Pick the Right One Before You Write a Single Line of Code.</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 23 May 2026 16:46:16 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/gemma-4-has-four-variants-heres-how-to-pick-the-right-one-before-you-write-a-single-line-of-code-4f9d</link>
      <guid>https://dev.to/soumyadeepdey/gemma-4-has-four-variants-heres-how-to-pick-the-right-one-before-you-write-a-single-line-of-code-4f9d</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Write About Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;The single most common mistake developers make when picking a local model is choosing based on benchmark scores. The second most common mistake is choosing based on what fits in VRAM.&lt;/p&gt;

&lt;p&gt;Both of those things matter. But neither one is the actual first question.&lt;/p&gt;

&lt;p&gt;The actual first question is: &lt;strong&gt;where does your model need to live, and what does it need to do there?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemma 4 ships in four variants - E2B, E4B, 26B A4B (MoE), and 31B - and Google made very deliberate architectural choices for each one. If you understand those choices, picking the right variant takes about five minutes. If you skip that step and benchmark-shop, you'll end up either underbuilding (a phone-ready E4B doing work that needs 256K context) or overbuilding (a 31B model sitting on $80/month of cloud compute when an E4B running locally would have been fine).&lt;/p&gt;

&lt;p&gt;This post is that five-minute decision guide.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Gemma 4 Actually Is
&lt;/h2&gt;

&lt;p&gt;Released on April 2, 2026 under Apache 2.0, Gemma 4 is Google DeepMind's latest open-weight model family. Every variant ships with multimodal understanding (text + image as baseline, audio natively on the two smallest models), native function calling, and support for over 140 languages.&lt;/p&gt;

&lt;p&gt;The headline capability that separates Gemma 4 from previous generations isn't any single feature. It's the intelligence-per-parameter ratio. The 26B MoE model only activates roughly 4B parameters per forward pass. The E4B runs on a phone. The 31B scores 89.2% on AIME 2026 math benchmarks - a score that would have required a model several times larger just a year ago.&lt;/p&gt;

&lt;p&gt;The architecture decisions that make this possible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alternating local/global attention layers (local layers use sliding windows of 512-1024 tokens, global layers handle long-range context)&lt;/li&gt;
&lt;li&gt;Per-Layer Embeddings (PLE) on the edge variants, which keeps the parameter count low while maintaining expressivity&lt;/li&gt;
&lt;li&gt;Mixture-of-Experts on the 26B that routes each token through only the relevant expert layers, not the full network&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't just efficiency for efficiency's sake. It's what allows a 4-billion-parameter model to run offline on an Android phone with 4GB of RAM while still having a 128K context window. That combination didn't exist before.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Four Variants, Actually Explained
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gemma 4 E2B - The Phone Model
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;~2.3B effective parameters, ~5.1B total with PLE, 35 layers, 128K context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the model you reach for when the edge is the deployment target. It runs on Android 12+ via Google AICore, on Raspberry Pi, and on Jetson devices. It supports text, image, and audio natively.&lt;/p&gt;

&lt;p&gt;The "E" in the name stands for effective - because PLE means the model has more total parameters than it activates per forward pass, similar to how MoE works at a different level of the architecture. The practical result is a 1.5GB footprint with capabilities that land well above what a raw 2B parameter count would suggest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use E2B when:&lt;/strong&gt; you're building a mobile app, an edge inference pipeline, a device-local assistant, or anything where network latency or data privacy makes sending requests to a remote API unacceptable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real use case:&lt;/strong&gt; a receipt-scanning expense tracker that runs fully offline, reads image input, parses line items, and categorizes spending - all on device, no API call, no data leaving the phone.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Running E2B locally with transformers
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;

&lt;span class="n"&gt;model_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google/gemma-4-E2B-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;tokenizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;torch_dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bfloat16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;device_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Extract the total amount and vendor name from this receipt text: ...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;apply_chat_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;return_tensors&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;return_dict&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;no_grad&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;input_ids&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;shape&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]:],&lt;/span&gt; &lt;span class="n"&gt;skip_special_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Gemma 4 E4B - The Laptop Model
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;~4.5B effective parameters, ~8B total, 42 layers, 128K context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the everyday workhorse for developers who want to run a capable model locally without dedicated GPU hardware. It runs comfortably on a MacBook with 16GB unified memory, on a mid-range laptop with an integrated GPU, and on any machine where you'd rather not spin up a cloud instance.&lt;/p&gt;

&lt;p&gt;The jump from E2B to E4B isn't just more parameters. The additional layers and parameter budget give it noticeably better instruction following, more reliable structured output, and stronger performance on tasks that require holding context across a long conversation.&lt;/p&gt;

&lt;p&gt;It supports the same text, image, and audio modalities as E2B, which makes it genuinely multimodal in a way that matters for developer tooling - you can feed it screenshots, diagrams, or audio transcripts as part of a pipeline without needing a separate vision model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use E4B when:&lt;/strong&gt; local inference is the requirement, your hardware doesn't have a discrete GPU, or you're prototyping something you'll later scale to a larger model and want fast iteration cycles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real use case:&lt;/strong&gt; a local code review tool that takes a screenshot of your editor alongside the diff, understands both, and gives context-aware feedback - all running on your laptop, no telemetry.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Quick Ollama setup for E4B (easiest local path)
# After installing Ollama: https://ollama.com
&lt;/span&gt;
&lt;span class="c1"&gt;# In terminal:
# ollama pull gemma4:e4b
&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ollama&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ollama&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma4:e4b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review this function for edge cases and suggest improvements:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;num_ctx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8192&lt;/span&gt;  &lt;span class="c1"&gt;# can go up to 128K
&lt;/span&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Gemma 4 26B A4B (MoE) - The Consumer GPU Model
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;25.2B total parameters, ~3.8B active per forward pass, ~30 layers, 256K context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the one that makes the architecture story interesting. The 26B MoE sounds like it needs 26 billion parameters worth of compute. It doesn't. Only about 4 billion parameters activate for each token, which means it runs on a single RTX 3090 or RTX 4090 at full precision while delivering quality that competes with much larger dense models.&lt;/p&gt;

&lt;p&gt;The jump to 256K context window is significant for developers. At 128K you can fit roughly a medium-sized codebase or a very long document. At 256K you're fitting large repositories, multi-document research contexts, or full conversation histories in customer-facing applications.&lt;/p&gt;

&lt;p&gt;The MoE architecture also means that quality degrades more gracefully with quantization than a dense model of equivalent total parameters would. INT4 at 26B MoE looks better than INT4 at a comparable dense model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use 26B A4B when:&lt;/strong&gt; you have a consumer GPU (24GB VRAM), need 256K context, and want near-flagship quality without flagship hardware costs. Also the right choice for anything agentic where the model needs to reason across large amounts of context to plan multi-step tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real use case:&lt;/strong&gt; an agentic document processor that ingests a full legal contract (or a full codebase) in a single prompt, reasons across the entire document, and extracts structured data or answers specific questions - running locally on a 4090.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Using the Gemma 4 26B with native function calling
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;model_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google/gemma-4-26B-A4B-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;tokenizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;torch_dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bfloat16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;device_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;load_in_4bit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;  &lt;span class="c1"&gt;# fits on 24GB with 4-bit quant
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Native function calling - define your tools
&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;search_contracts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Search the contract database by clause type or party name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Search query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;clause_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;enum&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;liability&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;termination&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;payment&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;IP&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Type of clause to filter by&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;query&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Find all termination clauses across the Q1 vendor contracts and summarize the notice periods.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;apply_chat_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;return_tensors&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;return_dict&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;input_ids&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;shape&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]:],&lt;/span&gt; &lt;span class="n"&gt;skip_special_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Gemma 4 31B - The Server Model
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;31 billion dense parameters, 256K context, full multimodal, thinking mode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the flagship. Every capability available in the family is present here. Thinking mode (chain-of-thought reasoning) is enabled. Math benchmark scores are serious: 89.2% on AIME 2026, compared to Gemma 3 27B's 20.8% on the same benchmark. It sits at #3 on the Arena open model leaderboard.&lt;/p&gt;

&lt;p&gt;It requires ~20GB VRAM at FP16, or ~12GB with INT4 quantization. A single A100 80GB handles it comfortably at full precision. Two RTX 4090s with tensor parallelism also work. This is the model you deploy to a server, not run on a laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use 31B when:&lt;/strong&gt; benchmark quality matters for your application, you need thinking mode for reasoning-heavy tasks, you're building a production service that will handle requests from multiple users, or you need the best math and coding performance available in an open-weight model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real use case:&lt;/strong&gt; a coding assistant API that developers on your team query through a self-hosted endpoint - one 31B instance serving your whole engineering org at a cost that's a fraction of equivalent proprietary API calls.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Serving 31B with vLLM for production throughput
# pip install vllm
&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;vllm&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LLM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SamplingParams&lt;/span&gt;

&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LLM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google/gemma-4-31B-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tensor_parallel_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   &lt;span class="c1"&gt;# across 2x RTX 4090
&lt;/span&gt;    &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bfloat16&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_model_len&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;65536&lt;/span&gt;        &lt;span class="c1"&gt;# 64K for production balance
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;sampling_params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SamplingParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;top_p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2048&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Thinking mode for complex reasoning
&lt;/span&gt;&lt;span class="n"&gt;prompts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;start_of_turn&amp;gt;user&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;Think step by step: Given this algorithm, what&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s the worst-case time complexity and where is the bottleneck?&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt;[your code here]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;end_of_turn&amp;gt;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;start_of_turn&amp;gt;model&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sampling_params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Decision Matrix
&lt;/h2&gt;

&lt;p&gt;Here's the five-minute version:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mobile app, Raspberry Pi, offline-first&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;E2B&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Laptop development, no GPU, fast iteration&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;E4B&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consumer GPU (24GB), 256K context needed&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;26B A4B MoE&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server deployment, best quality, team-serving&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;31B&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agentic pipeline with many tool calls&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;26B A4B MoE&lt;/strong&gt; (active param efficiency)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Math, coding, or reasoning-heavy production&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;31B&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privacy-sensitive user data, no API calls&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;E4B or E2B&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You have an A100 and want the best&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;31B&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The Bigger Thing Happening Here
&lt;/h2&gt;

&lt;p&gt;I want to step back from the specs for a second.&lt;/p&gt;

&lt;p&gt;A model that scores 89.2% on a serious math benchmark, supports 256K context, runs multimodal inference, and has native function calling for agentic tasks... is now open-weight, Apache 2.0, and runs on hardware that a developer can actually own.&lt;/p&gt;

&lt;p&gt;The E4B running on a laptop with 128K context and audio support isn't a "small model compromise." It's a capability that would have been frontier-level two years ago. The E2B running on a phone offline isn't a demo trick. It's a production-viable deployment target.&lt;/p&gt;

&lt;p&gt;What that actually means is that the architectural question of "cloud or local?" is no longer primarily a capability question. It's a cost, latency, and privacy question. And for a lot of applications - the ones where user data is sensitive, where offline availability matters, where API costs compound at scale - local wins.&lt;/p&gt;

&lt;p&gt;Gemma 4 doesn't make that argument. It just makes it very hard to argue against.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started in Under 5 Minutes
&lt;/h2&gt;

&lt;p&gt;The fastest path to running any Gemma 4 variant locally is Ollama:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install Ollama (macOS/Linux)&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh

&lt;span class="c"&gt;# Pull the variant you want&lt;/span&gt;
ollama pull gemma4:e4b     &lt;span class="c"&gt;# ~5GB, laptop-ready&lt;/span&gt;
ollama pull gemma4:26b     &lt;span class="c"&gt;# ~15GB, GPU-ready&lt;/span&gt;

&lt;span class="c"&gt;# Run it&lt;/span&gt;
ollama run gemma4:e4b

&lt;span class="c"&gt;# Or use the API directly&lt;/span&gt;
curl http://localhost:11434/api/chat &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
  "model": "gemma4:e4b",
  "messages": [
    { "role": "user", "content": "Hello, what can you do?" }
  ]
}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want Python with the full transformers ecosystem (function calling, thinking mode, multimodal), the Hugging Face model cards for each variant have complete working examples. Start with &lt;code&gt;google/gemma-4-E4B-it&lt;/code&gt; - it's the most accessible entry point and covers most development use cases.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Note on Licensing
&lt;/h2&gt;

&lt;p&gt;Apache 2.0 means you can use Gemma 4 commercially, modify the weights, build products on top of it, and distribute your derivative work - without paying royalties or asking permission. That is not the case for every "open" model out there, and it matters a lot for anyone building a business on top of local inference.&lt;/p&gt;




&lt;p&gt;The right Gemma 4 variant is the one that runs where your users are, fits the hardware you can actually provision, and has enough context to do the task you're designing for. Everything else is optimization.&lt;/p&gt;

&lt;p&gt;Start with E4B if you're unsure. Scale up when the task demands it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;code&gt;devchallenge&lt;/code&gt; &lt;code&gt;gemmachallenge&lt;/code&gt; &lt;code&gt;gemma&lt;/code&gt; &lt;code&gt;ai&lt;/code&gt; &lt;code&gt;machinelearning&lt;/code&gt; &lt;code&gt;python&lt;/code&gt; &lt;code&gt;opensource&lt;/code&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
    </item>
    <item>
      <title>What Is WebMCP? The Google I/O 2026 Web Standard That Changes AI Agent Tool Use</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 23 May 2026 16:39:52 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/why-webmcp-is-the-most-important-thing-google-announced-at-io-2026-and-nobodys-talking-about-it-2edf</link>
      <guid>https://dev.to/soumyadeepdey/why-webmcp-is-the-most-important-thing-google-announced-at-io-2026-and-nobodys-talking-about-it-2edf</guid>
      <description>&lt;p&gt;&lt;em&gt;A first-look at the most underreported thing to come out of Google I/O 2026&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I was watching the Google I/O 2026 Developer Keynote on my laptop at 11:30 PM with a cup of cold chai. Gemini 3.5 Flash landed. Antigravity 2.0 got a standing ovation. The smart glasses got the screenshots. Everyone was talking about Gemini Omni.&lt;/p&gt;

&lt;p&gt;And then, buried between slide 40 and a code snippet, a presenter said the words &lt;em&gt;"WebMCP."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I sat up straight. I replayed that section three times.&lt;/p&gt;

&lt;p&gt;Here is why.&lt;/p&gt;




&lt;h2&gt;
  
  
  A little context on what I'm building
&lt;/h2&gt;

&lt;p&gt;For the past few months I've been working on a sales platform that stitches together an omnichannel inbox (Chatwoot) with a generative UI layer inside chat. The core problem is this: sales agents need to close deals inside conversations, not by jumping between five tabs. I want the chat widget itself to become the deal-closing surface - surfacing interactive UI components, pulling CRM context, letting a buyer sign a proposal &lt;em&gt;inside the chat thread&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The hardest unsolved piece of that puzzle has always been: how do you let an AI agent do something meaningful on a webpage without either (a) screen-scraping like it's 2019, or (b) building a bespoke API integration for every single surface it needs to touch?&lt;/p&gt;

&lt;p&gt;WebMCP is Google's answer to that question. And it's a good one.&lt;/p&gt;




&lt;h2&gt;
  
  
  What WebMCP Actually Is
&lt;/h2&gt;

&lt;p&gt;WebMCP is a proposed open web standard that lets developers annotate their JavaScript functions and HTML forms so that browser-based AI agents can call them directly as structured tools - with the same reliability you'd expect from a typed API, not from a model guessing where to click.&lt;/p&gt;

&lt;p&gt;Think of it as MCP, but for the open web. Regular MCP handles the vertical connections: agent to database, agent to file system, agent to third-party API. WebMCP handles the horizontal layer: agent to the website sitting in front of you right now.&lt;/p&gt;

&lt;p&gt;The origin trial starts in Chrome 149. Here is what the developer-side contract looks like conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// You annotate your JS functions with WebMCP metadata&lt;/span&gt;
&lt;span class="c1"&gt;// so agents know what they can call, what inputs they need,&lt;/span&gt;
&lt;span class="c1"&gt;// and what effect they'll produce&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;webmcpManifest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;schedule_demo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Books a product demo for a qualified lead&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;preferred_slot&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;enum&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;morning&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;afternoon&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;evening&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;scheduleDemo&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;generate_proposal&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Creates a personalized pricing proposal and returns a preview URL&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;company_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;seats&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;number&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;enum&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;starter&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;growth&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;enterprise&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;generateProposal&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// Register once. Any WebMCP-capable agent can now call these&lt;/span&gt;
&lt;span class="c1"&gt;// without scraping your DOM or guessing your form structure.&lt;/span&gt;
&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;__webmcp__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;webmcpManifest&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent on the other end - whether it's Gemini in Chrome, an Antigravity subagent, or your own custom orchestrator - now has a reliable, developer-defined surface to work with. No brittle CSS selectors. No "find the button that looks like it submits the form." Just a typed function call.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters More Than It Looks
&lt;/h2&gt;

&lt;p&gt;Here is the frame I keep coming back to: &lt;strong&gt;every website becomes a tool&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Right now, when you build an AI agent that needs to do anything on the web, you have two bad options and one expensive option.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bad option 1&lt;/strong&gt; is prompt the model to act like a browser automation script. You're essentially doing Playwright-via-LLM, which works until a div gets renamed and your entire pipeline breaks silently at 2 AM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bad option 2&lt;/strong&gt; is write a bespoke connector for every website or service you want the agent to interact with. Fine for the five services you use every day. Not fine for the long tail of things your users will eventually ask your agent to handle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The expensive option&lt;/strong&gt; is to build everything in-house, behind your own API, so the agent only ever talks to surfaces you control. This is what most serious teams do. It scales, but it costs months.&lt;/p&gt;

&lt;p&gt;WebMCP opens a fourth path: the website author defines the agent interface themselves, once, as part of their normal development work. You annotate the functions that make sense to expose. You describe what they do. You ship it as part of your site. From that point forward, any agent with WebMCP support can call those functions correctly - without you writing a new connector, and without the agent guessing.&lt;/p&gt;

&lt;p&gt;The protocol also composes cleanly with the rest of the stack Google laid out this year:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt; handles agent-to-infrastructure connections (databases, APIs, file systems)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A2A&lt;/strong&gt; handles agent-to-agent coordination across vendors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebMCP&lt;/strong&gt; handles agent-to-website interaction in the browser&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three protocols, three layers, one coherent answer to "how does an agent actually do things in the real world?"&lt;/p&gt;




&lt;h2&gt;
  
  
  The Angle Nobody Is Talking About
&lt;/h2&gt;

&lt;p&gt;Most I/O coverage framed WebMCP as a tool for making AI assistants more useful to end users. Fair. But I think the more interesting frame is what it does for &lt;em&gt;developers building agentic products&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If I'm building the sales platform I described above, WebMCP means that instead of my agentic layer needing to "know" how to use each tool on the page through brittle DOM inspection, I can define those tools explicitly as part of my product. My checkout flow, my proposal generator, my slot-booking widget - they're all first-class agent interfaces the moment I annotate them.&lt;/p&gt;

&lt;p&gt;The generative UI layer I was building with Tambo (the agentic React UI toolkit) suddenly has a much cleaner answer to "how does the agent actually trigger actions?" instead of "it passes props and hopes for the best." The agent calls a WebMCP-registered tool. The tool fires a handler. The handler updates state. The UI responds.&lt;/p&gt;

&lt;p&gt;That is a clean, auditable, testable loop. That matters when you are building something real, not a demo.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'm Watching Next
&lt;/h2&gt;

&lt;p&gt;A few things I'm paying close attention to as WebMCP moves through the origin trial:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security boundaries.&lt;/strong&gt; Right now the spec assumes the website author is intentional about what they expose. But as soon as agent-browsing becomes mainstream, you'll see adversarial cases: pages that register fake tools designed to manipulate agents into taking actions users didn't intend. The security model around what a WebMCP tool is "allowed" to do on behalf of a user needs to be tight before this goes anywhere near financial or identity workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-browser adoption.&lt;/strong&gt; This is proposed by Google and Microsoft engineers under the W3C Web Machine Learning community group - which is a good sign for eventual cross-browser support. But Chrome 149 origin trials don't mean it's in Firefox next quarter. For developers building agent-facing products today, you'll need fallback strategies for a while.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Standardization lag vs. tooling speed.&lt;/strong&gt; The web standards process moves on a timescale that AI tooling doesn't. By the time WebMCP is a full W3C Recommendation, the agent landscape will have changed dramatically. Google's bet here is that shipping an origin trial fast and getting real-world feedback is worth more than waiting for perfect committee consensus. I think that bet is correct.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bigger Shift Underneath All of It
&lt;/h2&gt;

&lt;p&gt;There was a line in the keynote that I keep turning over in my head: &lt;em&gt;"We've transitioned from AI that simply assists you, to agents that can independently navigate complex tasks across your entire workflow."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is a product vision, not a product feature. And WebMCP is one of the infrastructure pieces that makes that vision non-fictional.&lt;/p&gt;

&lt;p&gt;The assistive AI era had a ceiling: the model could help you think, draft, and plan, but doing required a human in the loop who could actually click the button, fill the form, and trigger the action. The agentic era removes that ceiling - but only if agents can interact with the web in a way that's reliable enough to trust in production.&lt;/p&gt;

&lt;p&gt;WebMCP is a small, well-scoped proposal. It doesn't solve everything. But it solves the exact right problem at the exact right layer: giving website developers a first-class way to say "here is what an agent is allowed to do on this page, and here is how to do it correctly."&lt;/p&gt;

&lt;p&gt;For anyone building agentic products on the web, that is not a quiet announcement. That is the foundation you were waiting for.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you're building something that sits at the intersection of AI agents and web UIs, I'd genuinely love to compare notes. Drop a comment or find me at my usual haunts.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;code&gt;googleiochallenge&lt;/code&gt; &lt;code&gt;webdev&lt;/code&gt; &lt;code&gt;ai&lt;/code&gt; &lt;code&gt;javascript&lt;/code&gt; &lt;code&gt;webstandards&lt;/code&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleiochallenge</category>
    </item>
    <item>
      <title>I built a fully interactive 3D Solar System you can explore right from your browser.</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 16 Aug 2025 13:55:40 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/explore-the-universe-my-3d-solar-system-with-threejs-vite-4ldj</link>
      <guid>https://dev.to/soumyadeepdey/explore-the-universe-my-3d-solar-system-with-threejs-vite-4ldj</guid>
      <description>&lt;h2&gt;
  
  
  🪐 Explore the Cosmos from Your Browser
&lt;/h2&gt;

&lt;p&gt;I’m stoked to share my recent project: &lt;strong&gt;3D Solar System Simulation&lt;/strong&gt;, crafted with &lt;strong&gt;Three.js&lt;/strong&gt; and accelerated with &lt;strong&gt;Vite&lt;/strong&gt;! Tap into the wonders of our cosmic neighborhood through your screen—no telescopes needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Check out the live project below:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://3d-solar-system-three-js.vercel.app/" rel="noopener noreferrer"&gt;https://3d-solar-system-three-js.vercel.app/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 Gallery Snapshot
&lt;/h2&gt;

&lt;p&gt;
  &lt;a href="https://postimg.cc/PLcg3QKh" 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%2Fi.postimg.cc%2FfLTMbH93%2Flocalhost-5173-High-Res.png" alt="3D solar system preview" width="800" height="450"&gt;
  &lt;/a&gt;
&lt;/p&gt;  




&lt;h2&gt;
  
  
  💡 Why I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To visualize planetary orbits, rotations, and atmospheres in real-time&lt;/li&gt;
&lt;li&gt;To flex the power of Three.js combined with modern tooling like Vite&lt;/li&gt;
&lt;li&gt;To experiment with interactive controls and responsive design&lt;/li&gt;
&lt;li&gt;To have a fun showcase for learning and collaboration&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Project Highlights
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Realistic 3D models&lt;/strong&gt; of the Sun, planets, dwarf planets, and moons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smooth orbit animations&lt;/strong&gt; combined with planet rotations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scaled visuals&lt;/strong&gt; for better clarity and navigation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full interaction&lt;/strong&gt; via mouse: orbit, zoom, and pan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern tooling&lt;/strong&gt; with Vite for blazing-fast development&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile-friendly&lt;/strong&gt; interface with responsive scaling&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠 Behind the Scenes
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3d-Solar-System-ThreeJS/
├── public/
│   └── textures/             # Planet &amp;amp; celestial textures
├── src/
│   ├── main.js               # Core rendering logic
│   └── additional modules... # Planet classes, UI controls, etc.
├── index.html
├── package.json
├── vite.config.js
└── README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚡ Installation &amp;amp; Local Run
&lt;/h2&gt;

&lt;p&gt;Clone and run locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/SoumyaEXE/3d-Solar-System-ThreeJS.git
&lt;span class="nb"&gt;cd &lt;/span&gt;3d-solar-system-three-js
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then visit&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://localhost:5173
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To build a production version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📚 What I Learned
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Takeaway&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Three.js fundamentals&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Scene setup, camera controls, mesh rendering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Animation techniques&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Smooth orbits &amp;amp; rotations using &lt;code&gt;requestAnimationFrame&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance tuning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Optimized for smoother animations with Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Responsive design&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;UI/UIX that works seamlessly across devices&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🌌 Join the Journey
&lt;/h2&gt;

&lt;p&gt;I’d love your thoughts! Let me know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What features you’d like added next&lt;/li&gt;
&lt;li&gt;How the scaling feels on mobile&lt;/li&gt;
&lt;li&gt;Any performance hiccups you spotted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don’t forget to ⭐ the repo if you enjoy the simulation — and open an issue or PR if you want to contribute!&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Related Projects &amp;amp; Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://threejs.org/examples/" rel="noopener noreferrer"&gt;Three.js Examples&lt;/a&gt; — official showcase&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://threejs.org/docs/" rel="noopener noreferrer"&gt;Three.js Documentation&lt;/a&gt; — API deep dive&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vitejs.dev/" rel="noopener noreferrer"&gt;Vite&lt;/a&gt; — next-gen frontend tooling&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Thanks for exploring with me!&lt;br&gt;
&lt;strong&gt;— Soumya&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vibecoding</category>
      <category>vite</category>
      <category>coding</category>
    </item>
    <item>
      <title>What Is Vibe Coding? How To Do It In 2025</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 12 Jul 2025 07:00:25 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/what-is-vibe-coding-how-to-do-it-4e9j</link>
      <guid>https://dev.to/soumyadeepdey/what-is-vibe-coding-how-to-do-it-4e9j</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;🧑‍💻 &lt;strong&gt;Follow me on GitHub&lt;/strong&gt; for more experiments, tools, and guides: &lt;a href="https://github.com/SoumyaEXE" rel="noopener noreferrer"&gt;github.com/SoumyaEXE&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;What if you could skip the boilerplate and just say what you want your app to do?&lt;/p&gt;

&lt;p&gt;That’s &lt;strong&gt;vibe coding&lt;/strong&gt;—a 2025 workflow where you build web apps, prototypes, and backend APIs using plain English. Whether you’re a pro developer tired of repetitive tasks or a beginner with big ideas, vibe coding changes how you ship.&lt;/p&gt;

&lt;p&gt;This article breaks down what vibe coding is, how it works, tools to try, and how GitHub plays a major role in your AI-powered workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What Is Vibe Coding?
&lt;/h2&gt;

&lt;p&gt;Vibe coding is building software by describing your app, component, or logic in natural language. Tools like &lt;strong&gt;Cursor&lt;/strong&gt;, &lt;strong&gt;Claude Code&lt;/strong&gt;, or &lt;strong&gt;Replit AI&lt;/strong&gt; translate your intent into code. GitHub Copilot and Vercel’s AI SDKs are integrating this even deeper into production-ready workflows.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 &lt;em&gt;“The hottest new programming language is English.”&lt;/em&gt; — Andrej Karpathy&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Vibe coding isn't just code generation—it's &lt;strong&gt;iteration + intention + automation&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Why Developers (and Non-Devs) Love It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🧑‍🎓 Beginners:&lt;/strong&gt; Build apps with zero syntax knowledge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💼 Professionals:&lt;/strong&gt; Skip boilerplate, test logic fast&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⏱️ Everyone:&lt;/strong&gt; Launch MVPs in hours, not weeks&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ Tools for Vibe Coding in 2025
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it’s good for&lt;/th&gt;
&lt;th&gt;GitHub Integration&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cursor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Code generation in VS Code&lt;/td&gt;
&lt;td&gt;✅ Commits + Copilot sync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Complex structured logic via prompts&lt;/td&gt;
&lt;td&gt;❌ Manual export&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Replit AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full-stack in-browser development&lt;/td&gt;
&lt;td&gt;✅ GitHub sync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vercel AI SDK&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Integrate AI responses in Next.js apps&lt;/td&gt;
&lt;td&gt;✅ Native&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Postman AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;API testing &amp;amp; backend autogen&lt;/td&gt;
&lt;td&gt;✅ Push collections&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Want GitHub commits that make sense? Cursor and Replit are great for &lt;strong&gt;AI-generated commits&lt;/strong&gt;, clean histories, and Copilot X preview features.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✍️ How to Vibe Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Write Specific Prompts
&lt;/h3&gt;

&lt;p&gt;Bad:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make a website&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build a dark-themed Next.js blog with a subscribe form and Markdown support.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even better:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a TypeScript-based Next.js 14 app with Tailwind CSS. Add a newsletter form using Vercel’s Edge Functions and connect to a Notion DB.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  2. Test, Commit, Repeat
&lt;/h3&gt;

&lt;p&gt;Once the tool generates the code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run locally (&lt;code&gt;npm run dev&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Test features and endpoints&lt;/li&gt;
&lt;li&gt;Fix bugs via prompts&lt;/li&gt;
&lt;li&gt;Auto-commit to GitHub
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"✨ AI-generated landing page with Tailwind and form handling"&lt;/span&gt;
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI even suggests commits now. Just review and approve.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Use GitHub for Versioning + Deploying
&lt;/h3&gt;

&lt;p&gt;Every good AI project needs version control. Here's a simple Vercel-integrated flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vercel init
vercel &lt;span class="nt"&gt;--prod&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want preview links after every push? GitHub Actions + Vercel CI does it for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 Pitfalls to Avoid
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vague prompts&lt;/td&gt;
&lt;td&gt;Be specific with structure + tech&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong framework&lt;/td&gt;
&lt;td&gt;Always mention your stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code doesn't run&lt;/td&gt;
&lt;td&gt;Use Replit or local dev server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI bloats the code&lt;/td&gt;
&lt;td&gt;Refactor manually or with Copilot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debugging is messy&lt;/td&gt;
&lt;td&gt;Break into smaller prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🧪 Example Vibe Prompt (Backend + DB)
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Create an Express.js REST API with a /books route, connect it to a SQLite DB, and deploy it with Vercel Serverless Functions.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;⬇️ AI Output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/api/books.js&lt;/code&gt; with CRUD routes
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;db.sqlite&lt;/code&gt; pre-seeded with sample data
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;vercel.json&lt;/code&gt; configured
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.env&lt;/code&gt; support added
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All ready to deploy + preview live via GitHub commits.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔮 What’s Next?
&lt;/h2&gt;

&lt;p&gt;AI-driven workflows are becoming GitHub-native.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copilot Workspace&lt;/strong&gt; is in preview
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions&lt;/strong&gt; trigger based on AI-generated code
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;aidd.io&lt;/strong&gt; is launching something major on &lt;strong&gt;July 15, 2025&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Get ready for AI-powered commit messages, automated PR descriptions, and test coverage reports—all from natural language.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Vibe coding is a real shift in how we build. You still need logic and structure, but AI handles the scaffolding.&lt;/p&gt;

&lt;p&gt;✅ Start small&lt;br&gt;&lt;br&gt;
✅ Be specific&lt;br&gt;&lt;br&gt;
✅ Use GitHub for backup and versioning&lt;br&gt;&lt;br&gt;
✅ Iterate fast  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Want to ship ideas without the grind? Vibe coding might be your new workflow.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🔗 Stay in the Loop
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Follow me on &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/SoumyaEXE" rel="noopener noreferrer"&gt;SoumyaEXE&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Leave a ❤️ if you vibe with this
&lt;/li&gt;
&lt;li&gt;Share your AI-generated repos in the comments!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See you on the other side of the commit log 🚀&lt;/p&gt;




</description>
      <category>coding</category>
      <category>programming</category>
      <category>webdev</category>
      <category>github</category>
    </item>
    <item>
      <title>Top 10 Must-Know GitHub Repositories for Backend Developers (2025) 🔥</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 12 Jul 2025 06:43:05 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/top-10-must-know-github-repositories-for-backend-developers-2025-24j2</link>
      <guid>https://dev.to/soumyadeepdey/top-10-must-know-github-repositories-for-backend-developers-2025-24j2</guid>
      <description>&lt;p&gt;As a backend developer, mastering the right tools and libraries can significantly improve your workflow, scalability, and project maintainability. Here’s a concise list of 10 highly useful GitHub repositories tailored for backend developers in 2025.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. &lt;a href="https://github.com/expressjs/express" rel="noopener noreferrer"&gt;expressjs/express&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Minimalist Web Framework for Node.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Express is a fast, unopinionated, and widely-used web framework for building APIs and server-side applications.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello Backend World!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Server running&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Lightweight and flexible&lt;/li&gt;
&lt;li&gt;✅ Robust routing&lt;/li&gt;
&lt;li&gt;✅ Middleware support&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. &lt;a href="https://github.com/typeorm/typeorm" rel="noopener noreferrer"&gt;typeorm/typeorm&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ORM for TypeScript and JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TypeORM allows you to interact with SQL databases using an object-oriented approach.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Entity&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;PrimaryGeneratedColumn&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Supports multiple DB engines (PostgreSQL, MySQL, etc.)&lt;/li&gt;
&lt;li&gt;✅ Migration and CLI support&lt;/li&gt;
&lt;li&gt;✅ Decorator-based modeling&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. &lt;a href="https://github.com/prisma/prisma" rel="noopener noreferrer"&gt;prisma/prisma&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Next-Generation Type-Safe ORM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prisma offers a powerful and type-safe interface for querying your database using auto-generated TypeScript types.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  posts Post[]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Type safety for queries&lt;/li&gt;
&lt;li&gt;✅ Built-in migrations&lt;/li&gt;
&lt;li&gt;✅ Great developer experience&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. &lt;a href="https://github.com/nestjs/nest" rel="noopener noreferrer"&gt;nestjs/nest&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Progressive Framework for Building Scalable Server-Side Apps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NestJS uses modern JavaScript, TypeScript, and modular architecture inspired by Angular.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UsersController&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;This returns all users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Dependency injection&lt;/li&gt;
&lt;li&gt;✅ Modular architecture&lt;/li&gt;
&lt;li&gt;✅ Ideal for microservices and enterprise apps&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. &lt;a href="https://github.com/docker/awesome-compose" rel="noopener noreferrer"&gt;docker/awesome-compose&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Collection of Docker Compose Examples&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This repository provides practical and production-ready Docker Compose templates.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;backend&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;3000:3000&lt;/span&gt;
  &lt;span class="na"&gt;db&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;postgres&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;POSTGRES_PASSWORD&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;example&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Quick environment setup&lt;/li&gt;
&lt;li&gt;✅ Great for learning and deployment&lt;/li&gt;
&lt;li&gt;✅ Covers common backend stacks&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. &lt;a href="https://github.com/sql-js/sql.js" rel="noopener noreferrer"&gt;sql-js/sql.js&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SQLite Compiled to JavaScript&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL.js allows you to run a full SQLite database in the browser or Node.js.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;SQL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sql.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;SQL&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Database&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;CREATE TABLE test (col1, col2);&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ No external dependencies&lt;/li&gt;
&lt;li&gt;✅ Perfect for testing and learning SQL&lt;/li&gt;
&lt;li&gt;✅ Use in web apps or sandboxed environments&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. &lt;a href="https://github.com/kamranahmedse/developer-roadmap" rel="noopener noreferrer"&gt;kamranahmedse/developer-roadmap&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Visual Learning Path for Developers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This roadmap outlines the core skills and technologies needed to become a backend developer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Covers languages, tools, protocols, DBs&lt;/li&gt;
&lt;li&gt;✅ Updated regularly&lt;/li&gt;
&lt;li&gt;✅ Community-driven and beginner-friendly&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. &lt;a href="https://github.com/elastic/elasticsearch" rel="noopener noreferrer"&gt;elastic/elasticsearch&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Search and Analytics Engine&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Elasticsearch is used for full-text search, data analysis, logging, and monitoring.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; GET &lt;span class="s2"&gt;"localhost:9200/_cat/indices?v"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Distributed and scalable&lt;/li&gt;
&lt;li&gt;✅ Powerful querying and filtering&lt;/li&gt;
&lt;li&gt;✅ Widely used with Logstash, Kibana&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. &lt;a href="https://github.com/auth0/node-jsonwebtoken" rel="noopener noreferrer"&gt;auth0/node-jsonwebtoken&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;JWT Authentication for Node.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A simple and robust library for creating and verifying JSON Web Tokens.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;jwt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;jsonwebtoken&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jwt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;123&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-secret&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;expiresIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;1h&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Stateless authentication&lt;/li&gt;
&lt;li&gt;✅ Supports expiration and claims&lt;/li&gt;
&lt;li&gt;✅ Easy to integrate into APIs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  10. &lt;a href="https://github.com/fastify/fastify" rel="noopener noreferrer"&gt;fastify/fastify&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;High-Performance Node.js Web Framework&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fastify is designed for high throughput and low overhead.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fastify&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fastify&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)();&lt;/span&gt;

&lt;span class="nx"&gt;fastify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;reply&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;fastify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;✅ Schema-based validation&lt;/li&gt;
&lt;li&gt;✅ Highly extensible plugin system&lt;/li&gt;
&lt;li&gt;✅ Blazing fast performance&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Final Thoughts
&lt;/h2&gt;

&lt;p&gt;These repositories are more than just popular — they provide the backbone for robust, scalable, and efficient backend development.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Express or Fastify for APIs
&lt;/li&gt;
&lt;li&gt;Manage data using Prisma or TypeORM
&lt;/li&gt;
&lt;li&gt;Secure your backend with JWT
&lt;/li&gt;
&lt;li&gt;Containerize with Docker
&lt;/li&gt;
&lt;li&gt;Monitor with Elasticsearch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Explore these repos, contribute to them, and use them in real-world projects to become a more effective backend developer in 2025.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 Stay Connected
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Follow me on &lt;a href="https://github.com/SoumyaEXE" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Bookmark this article for reference&lt;/li&gt;
&lt;li&gt;Leave a ❤️ if you found it helpful&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy building! 🚀&lt;/p&gt;

</description>
      <category>backend</category>
      <category>webdev</category>
      <category>coding</category>
      <category>github</category>
    </item>
    <item>
      <title>What's the most challenging coding problem you've encountered, and how did you overcome it? 😮</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sun, 03 Sep 2023 14:42:25 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/whats-the-most-challenging-coding-problem-youve-encountered-and-how-did-you-overcome-it-5mi</link>
      <guid>https://dev.to/soumyadeepdey/whats-the-most-challenging-coding-problem-youve-encountered-and-how-did-you-overcome-it-5mi</guid>
      <description>&lt;p&gt;So What Was The Biggest Problem You've Encountered While Doing Coding? 😶&lt;/p&gt;

&lt;p&gt;Let Everybody Know In Comments! 🤔❤&lt;/p&gt;

&lt;p&gt;(Hit a Follow To Me ~ Its a Small Promotion 🤣✋🏻)&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>programming</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Jokeday Funday: Part 6 - More Programming Humor to Brighten Your Day</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sun, 03 Sep 2023 14:36:53 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/jokeday-funday-part-6-more-programming-humor-to-brighten-your-day-3n9a</link>
      <guid>https://dev.to/soumyadeepdey/jokeday-funday-part-6-more-programming-humor-to-brighten-your-day-3n9a</guid>
      <description>&lt;h2&gt;Jokeday Funday: Part 6 - More Programming Humor to Brighten Your Day&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Joke 1: The Broken Monitor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the programmer go broke?&lt;/p&gt;

&lt;p&gt;Because they used up all their cache and couldn't find their cache flow!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 2: The Time Traveler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the developer bring a ladder to the bar?&lt;/p&gt;

&lt;p&gt;Because they wanted to reach the "root" beer on the top shelf!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 3: The Coding Detective&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the programmer always carry a pencil and paper?&lt;/p&gt;

&lt;p&gt;Because you never know when you'll need to draw a "byte" sketch of a suspect!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 4: The Bug Whispers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the developer become a gardener?&lt;/p&gt;

&lt;p&gt;Because they had a talent for making bugs flourish!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 5: The Tech Support Hero&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the tech support agent go to therapy?&lt;/p&gt;

&lt;p&gt;Because they couldn't stop hearing voices saying, "Have you tried turning it off and on again?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 6: The Password Blues&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the password go to therapy?&lt;/p&gt;

&lt;p&gt;Because it had too many issues to "hash" out!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 7: The Agile Athlete&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the developer start running marathons?&lt;/p&gt;

&lt;p&gt;Because they wanted to master the art of sprinting and releasing!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 8: The Code Poet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the developer start writing poetry?&lt;/p&gt;

&lt;p&gt;Because they realized code comments could be a form of art!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 9: The Lost Pointer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the pointer go on vacation?&lt;/p&gt;

&lt;p&gt;Because it needed to refresh its memory!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 10: The Debugging Zen&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the programmer become a meditation guru?&lt;/p&gt;

&lt;p&gt;Because they wanted to find inner peace and tranquility amidst runtime errors!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus Joke: The Coding Conductor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did Soumya become a programmer?&lt;/p&gt;

&lt;p&gt;Because he wanted to orchestrate the symphony of logic and create beautiful software symphonies!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>jokes</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>What programming languages are you most comfortable or skilled with? 🤔</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sat, 02 Sep 2023 14:58:59 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/what-programming-languages-are-you-most-comfortable-or-skilled-with-5dm6</link>
      <guid>https://dev.to/soumyadeepdey/what-programming-languages-are-you-most-comfortable-or-skilled-with-5dm6</guid>
      <description>&lt;p&gt;Say Me In Comments!&lt;/p&gt;

&lt;p&gt;What are those languages you are skilled with...&lt;/p&gt;

&lt;p&gt;🤔💬&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>programming</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What Inspired You To Became A Coder? 🤔</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Wed, 30 Aug 2023 18:31:53 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/what-inspired-you-to-became-a-coder-4cpc</link>
      <guid>https://dev.to/soumyadeepdey/what-inspired-you-to-became-a-coder-4cpc</guid>
      <description>&lt;p&gt;Share your dev journey in the comments! &lt;/p&gt;

&lt;p&gt;Let me know, your journey will inspire us too!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Jokeday Funday: Part 5 - More Hilarious Programming Jokes</title>
      <dc:creator>Soumyadeep Dey </dc:creator>
      <pubDate>Sun, 27 Aug 2023 18:43:38 +0000</pubDate>
      <link>https://dev.to/soumyadeepdey/jokeday-funday-part-5-more-hilarious-programming-jokes-2lbk</link>
      <guid>https://dev.to/soumyadeepdey/jokeday-funday-part-5-more-hilarious-programming-jokes-2lbk</guid>
      <description>&lt;h2&gt;Jokeday Funday: Part 5 - More Hilarious Programming Jokes&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Joke 1: The Code Chef&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the programmer go to cooking school?&lt;/p&gt;

&lt;p&gt;To learn how to make exceptional "byte"-sized dishes!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 2: The Unbreakable Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the computer program go to therapy?&lt;/p&gt;

&lt;p&gt;It had too many unresolved issues and couldn't "function" properly!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 3: The Copy-Paste Dilemma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the programmer get kicked out of the art class?&lt;/p&gt;

&lt;p&gt;Because they kept using "Ctrl+C" and "Ctrl+V" to copy-paste the drawings!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 4: The Dancing Developer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the developer refuse to dance?&lt;/p&gt;

&lt;p&gt;Because they couldn't find the right "move" statement in the dance routine!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 5: The Coding Astronaut&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the astronaut become a programmer?&lt;/p&gt;

&lt;p&gt;To explore the vast universe of coding and debug alien technology!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 6: The Music of Errors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the developer start a band?&lt;/p&gt;

&lt;p&gt;Because they wanted to create a symphony of "404" error sounds!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 7: The Database's Secret&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the database break up with the server?&lt;/p&gt;

&lt;p&gt;Because it caught the server cheating with too many queries!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 8: The Coffee-Driven Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the programmer give up coffee?&lt;/p&gt;

&lt;p&gt;Because it made their code jittery and full of "bean" errors!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 9: The Sleepless Coder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the developer sleep with their laptop?&lt;/p&gt;

&lt;p&gt;Because they heard the laptop's "Zzz" sound was the best lullaby for coders!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Joke 10: The Quantum Programming&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did the quantum programmer get frustrated?&lt;/p&gt;

&lt;p&gt;Because they couldn't debug a bug that was both there and not there at the same time!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus Joke: The Debugging Mastermind&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why did Soumya become a programmer?&lt;/p&gt;

&lt;p&gt;Because she wanted to outsmart bugs and teach computers a thing or two about logic!&lt;/p&gt;

</description>
      <category>jokes</category>
      <category>programming</category>
      <category>watercooler</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
