<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Dhruv Gandhi</title>
    <description>The latest articles on Forem by Dhruv Gandhi (@dhruvvgandhii).</description>
    <link>https://forem.com/dhruvvgandhii</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%2F3822793%2F0230ebe9-537c-4af1-9bb8-6758e5cfd7f3.jpg</url>
      <title>Forem: Dhruv Gandhi</title>
      <link>https://forem.com/dhruvvgandhii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dhruvvgandhii"/>
    <language>en</language>
    <item>
      <title>How to Generate Images Using AI (Without Losing Your Mind Every Time You Edit)</title>
      <dc:creator>Dhruv Gandhi</dc:creator>
      <pubDate>Fri, 10 Apr 2026 16:58:57 +0000</pubDate>
      <link>https://forem.com/dhruvvgandhii/how-to-generate-images-using-ai-without-losing-your-mind-every-time-you-edit-2li3</link>
      <guid>https://forem.com/dhruvvgandhii/how-to-generate-images-using-ai-without-losing-your-mind-every-time-you-edit-2li3</guid>
      <description>&lt;p&gt;You typed exactly what you wanted. The AI gave you an image. Almost perfect — just one small thing needed fixing.&lt;/p&gt;

&lt;p&gt;So you asked for the fix.&lt;/p&gt;

&lt;p&gt;The AI gave you a completely new image. Different colors. Different layout. The thing you liked? Gone.&lt;/p&gt;

&lt;p&gt;You tried again. And again. And every time, it was like starting from scratch.&lt;/p&gt;

&lt;p&gt;You're not bad at this. The tool is doing it wrong.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What this guide covers: Why AI image generation keeps breaking when you try to edit — and one simple change that fixes it permanently. No technical background needed. Works with ChatGPT, Gemini, Claude, or any AI tool you already use. By the end, you'll know how to generate AI images you can edit, animate, and export to any format — forever.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Why Does AI Keep Changing My Image When I Just Want One Small Fix?&lt;br&gt;
Here's what's actually happening — and it's not your fault.&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you ask ChatGPT, Gemini, or any AI to make you an image, it outputs a PNG or JPEG file. These are "raster" images — basically just a grid of colored dots called pixels. Once the image is created, it's locked. There's no way to surgically change one element. Every pixel is equal. Every pixel is frozen.&lt;/p&gt;

&lt;p&gt;So when you ask the AI to "move the logo a little left" or "make the background darker," the AI cannot actually open the image and edit it. It doesn't have an eraser or a layer panel. Instead, it reads your request and generates a brand new image from scratch — using its memory of what the last one looked like, plus your change request.&lt;/p&gt;

&lt;p&gt;And since AI has no perfect memory, the new image is always slightly (or very) different.&lt;/p&gt;

&lt;p&gt;This is not a ChatGPT problem. It's not a Gemini problem. It's a format problem.&lt;/p&gt;

&lt;p&gt;The PNG format is the problem. Switch the format, and the whole problem disappears.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Fix: Ask AI for SVG, Not PNG&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;SVG&lt;/strong&gt; stands for Scalable Vector Graphics. But you don't need to know what that means. Here's all that matters:&lt;/p&gt;

&lt;p&gt;A PNG is a picture. An SVG is a recipe for drawing a picture.&lt;/p&gt;

&lt;p&gt;That distinction changes everything.&lt;/p&gt;

&lt;p&gt;A PNG is made of pixels — dots of color frozen in a grid. No labels. No structure. The AI can't reach into it and move anything.&lt;/p&gt;

&lt;p&gt;An SVG is made of text instructions — things like "draw a blue rectangle at this position" or "place this label centered here." Every single piece of the image has a name and an address. The AI can read those instructions, find exactly what you want changed, change that one thing, and leave everything else exactly as it was.&lt;/p&gt;

&lt;p&gt;That's why SVG works where PNG fails.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- This is not just a picture. These are instructions. --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;svg&lt;/span&gt; &lt;span class="na"&gt;viewBox=&lt;/span&gt;&lt;span class="s"&gt;"0 0 800 400"&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"http://www.w3.org/2000/svg"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;rect&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"hero-box"&lt;/span&gt; &lt;span class="na"&gt;x=&lt;/span&gt;&lt;span class="s"&gt;"50"&lt;/span&gt; &lt;span class="na"&gt;y=&lt;/span&gt;&lt;span class="s"&gt;"80"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"200"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"120"&lt;/span&gt; &lt;span class="na"&gt;fill=&lt;/span&gt;&lt;span class="s"&gt;"#1a1a2e"&lt;/span&gt; &lt;span class="na"&gt;rx=&lt;/span&gt;&lt;span class="s"&gt;"12"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;text&lt;/span&gt; &lt;span class="na"&gt;x=&lt;/span&gt;&lt;span class="s"&gt;"150"&lt;/span&gt; &lt;span class="na"&gt;y=&lt;/span&gt;&lt;span class="s"&gt;"148"&lt;/span&gt; &lt;span class="na"&gt;text-anchor=&lt;/span&gt;&lt;span class="s"&gt;"middle"&lt;/span&gt; &lt;span class="na"&gt;fill=&lt;/span&gt;&lt;span class="s"&gt;"#e2e8f0"&lt;/span&gt; &lt;span class="na"&gt;font-size=&lt;/span&gt;&lt;span class="s"&gt;"18"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Step 1&lt;span class="nt"&gt;&amp;lt;/text&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;line&lt;/span&gt; &lt;span class="na"&gt;x1=&lt;/span&gt;&lt;span class="s"&gt;"250"&lt;/span&gt; &lt;span class="na"&gt;y1=&lt;/span&gt;&lt;span class="s"&gt;"140"&lt;/span&gt; &lt;span class="na"&gt;x2=&lt;/span&gt;&lt;span class="s"&gt;"310"&lt;/span&gt; &lt;span class="na"&gt;y2=&lt;/span&gt;&lt;span class="s"&gt;"140"&lt;/span&gt; &lt;span class="na"&gt;stroke=&lt;/span&gt;&lt;span class="s"&gt;"#6366f1"&lt;/span&gt; &lt;span class="na"&gt;stroke-width=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/svg&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to change the box color? The AI changes one word in one line. Everything else stays exactly the same. No regeneration. No drift. No surprises.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;This is the SVG advantage: the image is its own instruction manual.&lt;/strong&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;u&gt;How to Generate Images Using AI — Step by Step&lt;/u&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 1: Use This Prompt to Generate Your Image&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Copy this prompt and paste it into ChatGPT, Gemini, Claude, or any AI. Change the "WHAT TO DRAW" section to describe your image:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Generate a valid SVG file for the following:

WHAT TO DRAW:
[describe what you want — be specific about what should appear, where, and in what colors]

DIMENSIONS: 800x400

STYLE:
- Dark background: #0f172a
- Main accent color: #6366f1 (indigo)
- Text color: #e2e8f0 (light)
- Font: system-ui or sans-serif only
- No external images, no external fonts
- No JavaScript

STRUCTURE:
- Each major part in its own group with an id label (example: id="main-box", id="title-text")
- Every shape must have an explicit fill or stroke color
- Every text element must have explicit font-size and text-anchor

OUTPUT:
Return the SVG code only. No explanation. No code fences. Just the raw SVG.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI will output a block of text that starts with &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; and ends with &lt;code&gt;&amp;lt;/svg&amp;gt;&lt;/code&gt;. That's your image file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 2: See Your Image&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Copy the output text. Save it as a file ending in .svg — for example, my-image.svg. Open that file in any web browser (Chrome, Safari, Firefox). Your image appears instantly, crisp at any size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 3: Edit It Without Starting Over&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
This is where everything changes. To edit your image, use this pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Here is my current SVG:
[paste your full SVG here]

Make exactly this change:
Change the background color of the element with id="main-box" from #1a1a2e to #2d3748.
Change nothing else.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI changes one thing. One. Everything else is preserved perfectly.&lt;/p&gt;

&lt;p&gt;Add a new element:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Here is my current SVG:
[paste your full SVG here]

Add a new element:
- A rectangle at x=450 y=80, width=180, height=120, fill=#1e293b, corner radius=12
- Centered text inside it reading "Step 2" in color #e2e8f0, font-size 18
- Give this group the id "step-2-box"
- Do not change anything else.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Precise. Surgical. Predictable.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Why SVG Works Where PNG Fails — Plain and Simple&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3fbnaw2x8ank2e8n3rb.png" alt=" " width="800" height="372"&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Problem with AI Image Editing Today&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Three major AI tools. Three versions of the same problem:&lt;/p&gt;

&lt;p&gt;ChatGPT: Generates beautiful raster images. When you ask to change something, it inpaints — replacing the masked area with a new generation. Change anything outside the masked area, and you're starting over. The boundary between edited and non-edited areas often shows visible seams.&lt;/p&gt;

&lt;p&gt;Gemini: Excellent at photorealistic scenes. Struggles badly with consistency across edits. Ask to move one element — the background repaints. Ask to change a color — the layout shifts. Each generation is independent.&lt;/p&gt;

&lt;p&gt;Any AI via text prompt: No AI model stores a pixel-perfect memory of an image it previously generated. Every new generation is a fresh sample. Consistency across edits is impossible without a format that preserves structure.&lt;/p&gt;

&lt;p&gt;The format is the problem. SVG is the fix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Bonus: Things You Didn't Know an SVG Can Do&lt;br&gt;
&lt;/u&gt;&lt;/strong&gt;SVG isn't just for static images. It's a full creative format.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Gradients — Built In&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;defs&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;linearGradient&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"bg-gradient"&lt;/span&gt; &lt;span class="na"&gt;x1=&lt;/span&gt;&lt;span class="s"&gt;"0%"&lt;/span&gt; &lt;span class="na"&gt;y1=&lt;/span&gt;&lt;span class="s"&gt;"0%"&lt;/span&gt; &lt;span class="na"&gt;x2=&lt;/span&gt;&lt;span class="s"&gt;"100%"&lt;/span&gt; &lt;span class="na"&gt;y2=&lt;/span&gt;&lt;span class="s"&gt;"0%"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;stop&lt;/span&gt; &lt;span class="na"&gt;offset=&lt;/span&gt;&lt;span class="s"&gt;"0%"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"stop-color:#0f172a"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;stop&lt;/span&gt; &lt;span class="na"&gt;offset=&lt;/span&gt;&lt;span class="s"&gt;"100%"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"stop-color:#1e293b"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/linearGradient&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/defs&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rect&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"800"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"400"&lt;/span&gt; &lt;span class="na"&gt;fill=&lt;/span&gt;&lt;span class="s"&gt;"url(#bg-gradient)"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;Drop Shadows — Built In&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;defs&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;filter&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"card-shadow"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;feDropShadow&lt;/span&gt; &lt;span class="na"&gt;dx=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt; &lt;span class="na"&gt;dy=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt; &lt;span class="na"&gt;stdDeviation=&lt;/span&gt;&lt;span class="s"&gt;"8"&lt;/span&gt; &lt;span class="na"&gt;flood-color=&lt;/span&gt;&lt;span class="s"&gt;"#000"&lt;/span&gt; &lt;span class="na"&gt;flood-opacity=&lt;/span&gt;&lt;span class="s"&gt;"0.4"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/filter&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/defs&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;rect&lt;/span&gt; &lt;span class="na"&gt;filter=&lt;/span&gt;&lt;span class="s"&gt;"url(#card-shadow)"&lt;/span&gt; &lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;Animations — Built In, No JavaScript Needed&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the one most people don't know about. SVG supports full CSS animations without any JavaScript or external tools. The animation lives inside the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;@keyframes&lt;/span&gt; &lt;span class="n"&gt;pulse&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;%,&lt;/span&gt; &lt;span class="err"&gt;100&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="err"&gt;50&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.4&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="k"&gt;@keyframes&lt;/span&gt; &lt;span class="n"&gt;slide-in&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;from&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;translateX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;-20px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;to&lt;/span&gt;   &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;translateX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;    &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&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="nf"&gt;#step-1-box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;slide-in&lt;/span&gt; &lt;span class="m"&gt;0.6s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt; &lt;span class="n"&gt;forwards&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nf"&gt;#step-2-box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;slide-in&lt;/span&gt; &lt;span class="m"&gt;0.6s&lt;/span&gt; &lt;span class="m"&gt;0.2s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt; &lt;span class="n"&gt;forwards&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nf"&gt;#step-3-box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;slide-in&lt;/span&gt; &lt;span class="m"&gt;0.6s&lt;/span&gt; &lt;span class="m"&gt;0.4s&lt;/span&gt; &lt;span class="n"&gt;ease&lt;/span&gt; &lt;span class="n"&gt;forwards&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nf"&gt;#active-dot&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;animation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;pulse&lt;/span&gt; &lt;span class="m"&gt;1.5s&lt;/span&gt; &lt;span class="n"&gt;ease-in-out&lt;/span&gt; &lt;span class="n"&gt;infinite&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;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boxes that slide in. Pulsing indicators. Flowing arrows. All inside one single text file. No video export. No GIF conversion. Just SVG.&lt;/p&gt;

&lt;p&gt;Ask the AI to add animations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add CSS animations to this SVG:
- Each element with class="step-box" should slide in from the left, staggered 0.2s apart
- The element with id="active-dot" should pulse (opacity 1 → 0.4 → 1) every 1.5 seconds
- Use CSS @keyframes inside a &amp;lt;style&amp;gt; tag in the SVG's &amp;lt;defs&amp;gt; section
- No JavaScript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;How to Export Your SVG to Any Other Format&lt;/p&gt;

&lt;h2&gt;
  
  
  Your SVG file converts to every format. You never need to regenerate.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Zero-Install Option: &lt;a href="https://svgforge-aotcd84.public.builtwithrocket.new/svg-converter" rel="noopener noreferrer"&gt;SVGForge&lt;/a&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you don't want to touch the command line, &lt;a href="https://svgforge-aotcd84.public.builtwithrocket.new/svg-converter" rel="noopener noreferrer"&gt;SVGForge&lt;/a&gt; is a free browser tool built exactly for this. Drop your SVG file in — no upload, no account, no server. It converts entirely inside your browser using the Canvas API. Your file never leaves your device.&lt;/p&gt;

&lt;p&gt;It handles 8 output formats in one go:&lt;/p&gt;

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

&lt;p&gt;You can convert up to 50 SVG files at once, set quality and DPI per format, and download everything as a ZIP bundle. All in milliseconds, all private.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;gt; Try &lt;a href="https://svgforge-aotcd84.public.builtwithrocket.new/svg-converter" rel="noopener noreferrer"&gt;SVGForge&lt;/a&gt; →&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every format you'll ever need. No regeneration. No quality loss.&lt;/p&gt;

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




&lt;h2&gt;
  
  
  &lt;strong&gt;What Can You Actually Make With This?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here are three real examples — each one generated using the exact prompt template in this guide. No design tools. No design skills. Just the prompt, pasted into an AI.&lt;/p&gt;

&lt;p&gt;Example 1: A product launch announcement banner&lt;/p&gt;

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

&lt;p&gt;Example 2: A "how it works" process diagram&lt;/p&gt;

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

&lt;p&gt;Example 3: A feature comparison chart&lt;/p&gt;

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

&lt;p&gt;Every single one of these is editable. Change a color, update a label, swap a number — one message to the AI, one element changes, everything else stays exactly the same. Then export to PNG, post to social, done.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;The Full Workflow at a Glance&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before (the broken loop everyone is stuck in): &lt;br&gt;
&lt;strong&gt;&lt;u&gt;Generate → wrong → regenerate → closer but different → regenerate → gave up&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After (the SVG loop): &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Generate once → validate in browser → targeted edits → done → export to any format&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 1. Generate with the structured prompt above. Ask for raw SVG output.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 2. Open the file in your browser. Check that everything looks right.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 3. Edit precisely — paste the full SVG, name the element, describe the change. One change per message.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 4. Add animation if you want. CSS keyframes, no code knowledge required.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 5. Export to whatever format you need. One command.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Key Takeaways&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AI tools like ChatGPT, Gemini, and Claude generate PNG images by default — and PNG images cannot be edited without full regeneration. This is why your image keeps changing when you try to fix one thing.&lt;/li&gt;
&lt;li&gt;SVG is a text-based image format. Every element has a name and position. The AI can edit any element precisely without touching the rest of the image.&lt;/li&gt;
&lt;li&gt;The prompt structure matters: give each element an id, use explicit colors on everything, ask for raw SVG output. These constraints make every future edit deterministic.&lt;/li&gt;
&lt;li&gt;SVG supports animations — slides, pulses, flowing arrows — built into the file itself, with no JavaScript required.&lt;/li&gt;
&lt;li&gt;One SVG file exports cleanly to PNG, JPEG, WebP, GIF, and PDF. You generate once and use everywhere.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;&lt;strong&gt;How do I generate images using AI for free?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ChatGPT (free tier), Google Gemini, and Claude all support SVG image generation at no cost — because SVG is text output, not a separate image generation feature. Paste the structured prompt above into the free version of any of these tools and you'll get a fully editable image file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is the best AI tool to generate images?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For photorealistic images: ChatGPT, Midjourney, and Stable Diffusion are the top options. For illustrations, diagrams, logos, blog visuals, and anything you plan to edit: SVG generation via ChatGPT, Claude, or Gemini is far more powerful because the output is editable. Best tool depends on what you're making.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why does AI image generation look different every time?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Because raster AI image tools (DALL-E, Stable Diffusion, Midjourney) generate images through a probabilistic process. Every generation is a new sample. There is no memory of the previous output. Each run starts fresh, which is why results vary. SVG generation does not have this problem — you're modifying existing text, not generating a new image.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Can I generate images with ChatGPT?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Yes. ChatGPT can generate images two ways: (1) Images via the image generation feature, and (2) SVG images as text output — which you can then edit, animate, and export. For editing flexibility, ask ChatGPT to generate an SVG file using the prompt template in this guide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Can Gemini generate images?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Yes. Gemini generates raster images natively, and it can also output SVG code directly as text. Using Gemini for SVG generation gives you the same editing advantages: precise element control, animation support, and export to any format.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why can't I just edit a PNG in Photoshop or Canva?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can — for simple adjustments like cropping or filtering. But for structural edits (moving elements, changing labels, repositioning shapes), manual editing in Photoshop or Canva requires you to have the original layered file. An AI-generated PNG has no layers — it's a flat pixel image. SVG is inherently layered and structured, which is why it's so much easier to edit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Do I need any technical skills to use SVG?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No. You're asking an AI to write the SVG for you. You don't need to understand the code — just use the prompt structure in this guide. When you want to change something, you describe what to change in plain language. The AI handles the code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Can SVG be used for photorealistic images?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No. SVG is for geometric shapes: illustrations, diagrams, icons, logos, charts, and mockups. For photorealistic photos, PNG and JPEG are the right choice. For everything else — social media visuals, blog covers, infographics, presentation slides, product mockups — SVG is better in almost every way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;What is the best tool for converting SVG to GIF?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For a no-install, browser-based option: &lt;a href="https://svgforge-aotcd84.public.builtwithrocket.new/svg-converter" rel="noopener noreferrer"&gt;SVGForge&lt;/a&gt; handles GIF conversion (and 7 other formats) entirely in your browser — no upload, no account needed. For complex animations with gradients and filters via command line: Puppeteer frame capture combined with ffmpeg palette-based GIF encoding gives the best quality at the smallest file size.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Do I need to install anything to convert SVG to PNG?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No. &lt;a href="https://svgforge-aotcd84.public.builtwithrocket.new/svg-converter" rel="noopener noreferrer"&gt;SVGForge&lt;/a&gt; is a free browser tool — drop your SVG file in and get PNG, JPEG, WebP, AVIF, GIF, BMP, TIFF, or HEIC out instantly. It runs entirely in your browser using the Canvas API. Your file never leaves your device. No account. No server. No install.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Dhruv Gandhi built the command architecture, Redesign engine, Visual Edit, and core code generation inside Rocket. &lt;br&gt;
The command pipeline is covered in &lt;a href="https://www.rocket.new/blog/80-plus-commands-one-architecture-behind-rocket-precision-mode" rel="noopener noreferrer"&gt;Part 1&lt;/a&gt;. &lt;br&gt;
Surgical editing with Visual Edit is in &lt;a href="https://www.rocket.new/blog/surgical-editing-dependency-graph" rel="noopener noreferrer"&gt;Part 2&lt;/a&gt;. &lt;br&gt;
Figma-to-code intent extraction is in &lt;a href="https://www.rocket.new/blog/figma-file-in-production-code-out-preserving-every-spacing-decision" rel="noopener noreferrer"&gt;Part 3&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Need to convert your SVG to PNG, WebP, GIF, or any other format? &lt;a href="https://svgforge-aotcd84.public.builtwithrocket.new/svg-converter" rel="noopener noreferrer"&gt;SVGForge&lt;/a&gt; — free, browser-native, no upload required.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nanobanana</category>
      <category>animation</category>
      <category>claude</category>
    </item>
    <item>
      <title>How I Build AI Agent Systems at Rocket.new (From the Inside)</title>
      <dc:creator>Dhruv Gandhi</dc:creator>
      <pubDate>Fri, 13 Mar 2026 17:29:22 +0000</pubDate>
      <link>https://forem.com/dhruvvgandhii/how-i-build-ai-agent-systems-at-rocketnew-from-the-inside-7of</link>
      <guid>https://forem.com/dhruvvgandhii/how-i-build-ai-agent-systems-at-rocketnew-from-the-inside-7of</guid>
      <description>&lt;p&gt;I've been building developer tools for five years. &lt;/p&gt;

&lt;p&gt;For the first three years at DhiWise, we were automating &lt;br&gt;
one thing: turning Figma designs into production code. &lt;br&gt;
Pick a framework (Flutter, Kotlin, React), upload your &lt;br&gt;
design, get clean code out. That was the whole product.&lt;/p&gt;

&lt;p&gt;Then everything changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pivot That Changed How I Build
&lt;/h2&gt;

&lt;p&gt;In 2023 we launched WiseGPT -- a context-aware AI coding &lt;br&gt;
assistant that plugged into VS Code and understood your &lt;br&gt;
local codebase. No prompt engineering. Just describe what &lt;br&gt;
you want, and it generates code that fits your actual &lt;br&gt;
project structure.&lt;/p&gt;

&lt;p&gt;That was my first real exposure to building AI agent &lt;br&gt;
systems in production. Not demos. Not prototypes. Real &lt;br&gt;
agents, serving real developers, at scale.&lt;/p&gt;

&lt;p&gt;By 2025, the company rebranded to Rocket.new and the &lt;br&gt;
product became something much bigger: an AI-first &lt;br&gt;
application builder that generates complete, full-stack, &lt;br&gt;
production-ready applications from plain English prompts.&lt;/p&gt;

&lt;p&gt;I'm one of the engineers building the agent systems &lt;br&gt;
behind that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What an AI Agent System Actually Looks Like in Production
&lt;/h2&gt;

&lt;p&gt;A lot of tutorials show you a single LLM call. You send &lt;br&gt;
a prompt, you get a response. That's not an agent system. &lt;br&gt;
That's autocomplete.&lt;/p&gt;

&lt;p&gt;At Rocket.new, a single user prompt like "build me a &lt;br&gt;
SaaS landing page with a waitlist form" triggers a &lt;br&gt;
coordinated pipeline of specialized agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;research agent&lt;/strong&gt; that analyzes the request and 
identifies what components are needed&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;design agent&lt;/strong&gt; that makes UI/UX decisions&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;code generation agent&lt;/strong&gt; that writes frontend, 
backend, and database logic&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;validation agent&lt;/strong&gt; that checks the output for 
errors before it reaches the user&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These agents don't run sequentially. They run in &lt;br&gt;
parallel where possible, coordinate decisions through &lt;br&gt;
a shared context layer, and hand off state to each &lt;br&gt;
other asynchronously.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hardest Problem: Context Engineering
&lt;/h2&gt;

&lt;p&gt;The biggest technical challenge isn't the LLM calls. &lt;br&gt;
It's context engineering -- deciding what information &lt;br&gt;
each agent needs to do its job well, and making sure &lt;br&gt;
that information is available at the right time in the &lt;br&gt;
right format.&lt;/p&gt;

&lt;p&gt;Too much context and the model gets confused. Too little &lt;br&gt;
and it makes wrong assumptions. The art is in building &lt;br&gt;
the pipelines that route exactly the right context to &lt;br&gt;
each agent at each step.&lt;/p&gt;

&lt;p&gt;This is what I spend most of my time on at Rocket.new.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I've Learned Building This
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Hybrid architectures beat pure LLM systems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Combining utility-based decision making (deterministic &lt;br&gt;
rules) with LLM-based reasoning gives you systems that &lt;br&gt;
are both reliable and flexible. Pure LLM systems drift. &lt;br&gt;
Hybrid systems are controllable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Error cascading is the real enemy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When one agent makes a small mistake, the next agent &lt;br&gt;
inherits that mistake and builds on it. By the time &lt;br&gt;
you're three agents deep, you have a completely wrong &lt;br&gt;
output. The solution is validation gates between agents, &lt;br&gt;
not just at the end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Latency matters more than accuracy at first&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A faster, slightly less perfect answer beats a slow, &lt;br&gt;
perfect one. Users lose trust when they wait. Build for &lt;br&gt;
speed first, then improve accuracy incrementally.&lt;/p&gt;




&lt;p&gt;The platform now serves 400,000+ developers across 180 &lt;br&gt;
countries and has generated 500,000+ production-ready &lt;br&gt;
applications.&lt;/p&gt;

&lt;p&gt;If you're building AI agent systems and want to trade &lt;br&gt;
notes, I'm always open to it.&lt;/p&gt;

&lt;p&gt;Find my other technical writing at &lt;a href="https://www.rocket.new/author/dhruv-gandhi" rel="noopener noreferrer"&gt;https://www.rocket.new/author/dhruv-gandhi&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
