<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Fused Shorts — Road to Zero Coding</title>
        <link>https://docs.fused.io/shorts</link>
        <description>Short dispatches from Fused as we build toward zero-code data workflows.</description>
        <lastBuildDate>Thu, 04 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>Copyright © 2026 Fused, Inc.</copyright>
        <item>
            <title><![CDATA[On the road to Zero Coding]]></title>
            <link>https://docs.fused.io/shorts/zero-coding-002</link>
            <guid>https://docs.fused.io/shorts/zero-coding-002</guid>
            <pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What we've learned after going all-in on agentic workflows — team habits, manager mindset, and lessons from weeks in the trenches.]]></description>
            <content:encoded><![CDATA[<p>For the last few weeks the team at Fused has been going deep into agentic workflow. First because we've been integrating with agents for a while now at Fused, we had an MCP integration demo in April last year.</p>
<!-- -->
<p>These posts will be some of our learnings as we build Fused with a goal of not having anyone write a single line of code anymore. We want to go towards everyone in the team being able to get their work done through agents.</p>
<p>It's been a crazy few months seeing the insane progress for how far agents have come, and keeping up with the latest is part of the work. We want to make it easier to keep up with the latest:</p>
<ul>
<li class="">Dedicated Slack channel only about <code>ai-tips</code></li>
<li class="">Standup has become less of a "what did I do today" and more of "here's what I learned about agents" today.</li>
<li class="">Before starting new projects, asking Agents to do some research. There's only so much twitter / hacker news that you can keep up, asking AI if tools already exist has saved us from re-building things ourselves. Some of our favourite findings have been slash commands to help us through the day<!-- -->
<ul>
<li class=""><code>/insights</code> generates a HTML file of all your past conversations with Claude Code</li>
<li class=""><code>/simplify</code> makes your PRs simpler. Great when you've cracked a problem but think there's a simpler solution</li>
<li class=""><code>/review</code> to, well review a PR.</li>
<li class="">A whole host of plugins that's out there. We've found it well worth spending a bit of time exploring what's out there.</li>
</ul>
</li>
</ul>
<p>Some of the recent changes we've made in the last few weeks:</p>
<ul>
<li class="">Refactored our codebase to be more agentic-navigable. (more on this to come later)</li>
<li class="">Taken a hard look at "what parts of the work are we redoing over and over again that could be automated better". This includes things like the release process of Fused: simplifying the release, having agents automatically spin up to generate release notes &amp; update the relevant documentation</li>
<li class=""><strong>Automating non technical parts of the work.</strong> Generating bug reports automatically from customer calls or while dog fooding, getting daily summaries of what's going on in the company, doing market research. There's so much more than just writing code, we keep learning new things every day.</li>
</ul>
<p>What we've found out to be the most helpful:</p>
<ul>
<li class=""><strong>Keep trying bigger &amp; bigger projects.</strong> The glass ceiling for what's possible with agents isn't obvious, we keep being surprised by how large of tasks agents can work on by themselves. It's tempting to see an agent fail at a task and think "ah well obviously AI sucks at &lt;insert topic&gt;". But models are getting better by the weeks, and we're all getting more used to writing tasks for AI. Anthropic recently announced <a href="https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code" target="_blank" rel="noopener noreferrer" class="">dynamic workflows</a> which only aims to push the task further and further out.</li>
<li class=""><strong>A single agent doesn't have to do the whole work.</strong> Agents aren't all too good at reviewing their own work for example, especially as a conversation reaches its context limit. Using sub agents to review or using different tools like Cursor bot in Github serve as a second opinion.</li>
<li class=""><strong>Thinking more like managers rather than individual contributors.</strong> We're changing our mentality away from "how do I implement the technical detail" to "what's the high level task here". We're spending more time writing specs, brainstorming on an implementation plan and less time working on the implementation details. Usually this requires doing a specific task with a lot of hands on, follow up prompts, back &amp; forth but as more tasks get done, we gain confidence in the AI output &amp; have better tests in place to catch mistakes.</li>
</ul>
<p>What we stopped doing:</p>
<ul>
<li class=""><strong>"micro managing" skills</strong>. We started out by mapping every single project, way of working in a repo, telling agents where everything was and every design pattern. As models keep getting better, we noticed we got better results when we let the models do the thinking themselves and brainstorm together</li>
<li class=""><strong>Trying to run too many instances at once.</strong> At first some of us started up to 10 or 12 agents but quickly realised that was not manageable. Instead, proper scoping of tasks, using <code>auto mode</code> and asking AI to check its own work &amp; iterate until it's done has been more helpful to scale up the amount of parallel work.</li>
</ul>
<p>Stay tuned for more of our learnings!</p>
<hr>
<p><em>This is short #2 in the Road to Zero Coding series — short posts on getting towards building Fused 100% without writing a single line of code ourselves.</em></p>
<div class="footer_NmJx"><hr class="divider_W_nb"></div>]]></content:encoded>
            <category>agents</category>
            <category>ai</category>
            <category>workflow</category>
        </item>
        <item>
            <title><![CDATA[A repeatable image generation pipeline]]></title>
            <link>https://docs.fused.io/shorts/zero-coding-001</link>
            <guid>https://docs.fused.io/shorts/zero-coding-001</guid>
            <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[AI image generation is flaky and hard to share across a team. We fixed both with a Fused Canvas.]]></description>
            <content:encoded><![CDATA[<p>We just published a <a class="" href="https://docs.fused.io/blog/modern-data-stack-is-dead">blog post about our vision of the current data stack</a> — how file formats, query engines, AI, and serverless compute are killing the modern data stack. We wanted to write it as a themed detective story, with custom visuals for each "suspect." Getting those visuals right is what led to this.</p>
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-the-problem-with-ai-image-generation-at-work">1. The problem with AI image generation at work<a href="https://docs.fused.io/shorts/zero-coding-001#1-the-problem-with-ai-image-generation-at-work" class="hash-link" aria-label="Direct link to 1. The problem with AI image generation at work" title="Direct link to 1. The problem with AI image generation at work" translate="no">​</a></h3>
<p>We're a small team and we've been leaning on AI across the board — coding, reviewing customer feedback, writing docs. So we wanted to give image generation a shot for the blog post. Two problems showed up fast:</p>
<p><strong>Inconsistent results.</strong> AI models hallucinate in unpredictable ways and require a lot of different prompt iterations to get right.</p>
<p><strong>Hard to share across a team.</strong> I could create a repeatable pipeline in Claude or ChatGPT and share a <code>.md</code> file of my best prompts — but everyone on the team would still need their own setup to actually run it.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-what-we-built">2. What we built<a href="https://docs.fused.io/shorts/zero-coding-001#2-what-we-built" class="hash-link" aria-label="Direct link to 2. What we built" title="Direct link to 2. What we built" translate="no">​</a></h3>
<p>We're always looking for ways to use Fused in our own daily work. We've built a platform that makes it easy to share pipelines and outputs — this was a perfect chance to test it.</p>
<p>So I built a <a href="https://docs.fused.io/workbench/udf-builder/canvas" target="_blank" rel="noopener noreferrer" class="">Fused Canvas</a>:</p>
<ol>
<li class="">Pass a rough draft of an image (hand-drawn on an iPad)</li>
<li class="">Select a custom prompt for repeatable output</li>
<li class="">Run the pipeline using <a href="https://nanobanna.com/" target="_blank" rel="noopener noreferrer" class="">Nano Banana</a> via <a href="https://openrouter.ai/" target="_blank" rel="noopener noreferrer" class="">OpenRouter</a>, get the output on S3</li>
</ol>
<img src="https://docs.fused.io/assets/images/canvas-pipeline-ece303640f8e81d668934bbd65f1e3ab.png" alt="The Fused Canvas image generation pipeline" style="width:70%;border-radius:8px;margin:1.5rem auto;display:block">
<p>Under the hood, it calls the OpenRouter API to run the image-to-image workflow:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(220, 13%, 18%);--prism-color:hsl(220, 14%, 71%)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="background-color:hsl(220, 13%, 18%);color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token decorator annotation punctuation" style="color:hsl(220, 14%, 71%)">@fused</span><span class="token decorator annotation punctuation" style="color:hsl(220, 14%, 71%)">.</span><span class="token decorator annotation punctuation" style="color:hsl(220, 14%, 71%)">cache</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain"></span><span class="token keyword" style="color:hsl(286, 60%, 67%)">def</span><span class="token plain"> </span><span class="token function" style="color:hsl(207, 82%, 66%)">call_api</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">(</span><span class="token plain">model</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"> full_prompt</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"> api_key</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">)</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">    response </span><span class="token operator" style="color:hsl(207, 82%, 66%)">=</span><span class="token plain"> requests</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">.</span><span class="token plain">post</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">        </span><span class="token string" style="color:hsl(95, 38%, 62%)">"https://openrouter.ai/api/v1/chat/completions"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">        headers</span><span class="token operator" style="color:hsl(207, 82%, 66%)">=</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">{</span><span class="token string" style="color:hsl(95, 38%, 62%)">"Authorization"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">:</span><span class="token plain"> </span><span class="token string-interpolation string" style="color:hsl(95, 38%, 62%)">f"Bearer </span><span class="token string-interpolation interpolation punctuation" style="color:hsl(220, 14%, 71%)">{</span><span class="token string-interpolation interpolation">api_key</span><span class="token string-interpolation interpolation punctuation" style="color:hsl(220, 14%, 71%)">}</span><span class="token string-interpolation string" style="color:hsl(95, 38%, 62%)">"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">}</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">        json</span><span class="token operator" style="color:hsl(207, 82%, 66%)">=</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">            </span><span class="token string" style="color:hsl(95, 38%, 62%)">"model"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">:</span><span class="token plain"> model</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">            </span><span class="token string" style="color:hsl(95, 38%, 62%)">"messages"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">[</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">{</span><span class="token string" style="color:hsl(95, 38%, 62%)">"role"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">:</span><span class="token plain"> </span><span class="token string" style="color:hsl(95, 38%, 62%)">"user"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(95, 38%, 62%)">"content"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">:</span><span class="token plain"> full_prompt</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">}</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">]</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">            </span><span class="token string" style="color:hsl(95, 38%, 62%)">"modalities"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">:</span><span class="token plain"> </span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">[</span><span class="token string" style="color:hsl(95, 38%, 62%)">"image"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"> </span><span class="token string" style="color:hsl(95, 38%, 62%)">"text"</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">]</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">        </span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">    </span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:hsl(220, 14%, 71%);text-shadow:0 1px rgba(0, 0, 0, 0.3)"><span class="token plain">    </span><span class="token keyword" style="color:hsl(286, 60%, 67%)">return</span><span class="token plain"> response</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">.</span><span class="token plain">json</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">(</span><span class="token punctuation" style="color:hsl(220, 14%, 71%)">)</span><br></span></code></pre></div></div>
<p>Starting from a hand-drawn sketch means the model has structure to work with — far fewer hallucinations, much more consistent composition.</p>
<img src="https://docs.fused.io/assets/images/before-after-8bb5d79e2509f0bf66be4761107c0e33.png" alt="Left: hand-drawn sketches. Right: pipeline output used in the blog post." style="max-width:480px;width:100%;border-radius:8px;margin:1.5rem auto;display:block">
<p><em>Left: hand-drawn sketches. Right: output of the pipeline, directly used in the blog post.</em></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-why-this-matters-for-a-team">3. Why this matters for a team<a href="https://docs.fused.io/shorts/zero-coding-001#3-why-this-matters-for-a-team" class="hash-link" aria-label="Direct link to 3. Why this matters for a team" title="Direct link to 3. Why this matters for a team" translate="no">​</a></h3>
<p><strong>Version controlled.</strong> The Canvas is <a href="https://docs.fused.io/guide/working-with-udfs/udf-best-practices/version-control/" target="_blank" rel="noopener noreferrer" class="">pushed and pulled through GitHub</a>. We can focus on iterating the prompts rather than chasing each other for the latest <code>.md</code> file.</p>
<p><strong>Build once, available to everyone.</strong> I figure out which tool works best, build the pipeline once, and share it to the rest of the team — who don't need to worry about infrastructure or their own setup to use it.</p>
<p>I'm particularly excited about this because AI image generation can be flaky at best, a bit like code. Building pipelines that make it repeatable and easy to share means we get much more mileage from these models — beyond the "one time wow factor."</p>
<p>You can learn more about how we built this in <a href="https://docs.fused.io/examples/branded-text-to-image" target="_blank" rel="noopener noreferrer" class="">this example in the Fused docs</a>. We're since using this to generate visuals for docs pages too, and we want to keep exploring how to integrate more tools into repeatable pipelines.</p>
<hr>
<p><em>This is short #1 in the Road to Zero Coding series — short posts on getting towards building Fused 100% without writing a single line of code ourselves.</em></p>
<div class="footer_NmJx"><hr class="divider_W_nb"></div>]]></content:encoded>
            <category>canvas</category>
            <category>ai</category>
            <category>workflow</category>
        </item>
    </channel>
</rss>