<?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: Stuart</title>
    <description>The latest articles on DEV Community by Stuart (@sgardoll).</description>
    <link>https://dev.to/sgardoll</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%2F1385120%2Ff1eb098e-470a-47a5-a039-4149cb3e20c9.jpeg</url>
      <title>DEV Community: Stuart</title>
      <link>https://dev.to/sgardoll</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sgardoll"/>
    <language>en</language>
    <item>
      <title>FlutterFlow's AI Future is DreamFlow. Its AI Present is This.</title>
      <dc:creator>Stuart</dc:creator>
      <pubDate>Fri, 09 Jan 2026 02:32:13 +0000</pubDate>
      <link>https://dev.to/sgardoll/flutterflows-ai-future-is-dreamflow-its-ai-present-is-this-2cf1</link>
      <guid>https://dev.to/sgardoll/flutterflows-ai-future-is-dreamflow-its-ai-present-is-this-2cf1</guid>
      <description>&lt;h2&gt;
  
  
  Introducing &lt;strong&gt;FlutterFlow Custom Code Command&lt;/strong&gt;: A three-step AI workflow that generates, audits, and delivers production-ready Dart for your FlutterFlow projects.
&lt;/h2&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/zRjexvW58IQ"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;FlutterFlow is at a crossroads. Its new flagship product, DreamFlow, promises an AI-native Flutter visual development platform where you can be as close to the code as to the visual representation of it. It's an impressive pitch. But for the 1.6 million developers with existing FlutterFlow projects, it poses a brutal question: &lt;strong&gt;&lt;em&gt;do you abandon your codebase for this-still-very-beta new product, or get left behind on what feels like legacy tech?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But, there is a third path. &lt;/p&gt;

&lt;p&gt;You don't need to wait for DreamFlow to mature or ditch your current projects. The real, immediate need isn't AI that builds &lt;em&gt;entire apps&lt;/em&gt;, just AI that understands FlutterFlow's infamous custom code proclivities.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;FlutterFlow Custom Code Command&lt;/strong&gt; to solve exactly that. It's not a replacement for FlutterFlow. It's an AI-powered co-pilot that generates, audits, and delivers production-ready custom code that &lt;em&gt;actually works&lt;/em&gt; inside your visual project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Valid Dart" ≠ "Valid FlutterFlow
&lt;/h3&gt;

&lt;p&gt;Let's be brutally honest. FlutterFlow's custom code feature has always been a double-edged sword. On paper, it's your escape hatch. In reality, it's a compliance nightmare.&lt;/p&gt;

&lt;p&gt;FlutterFlow isn't a standard IDE. It's a visual builder with a peculiar relationship with Dart code. It welcomes custom code... but only if it's written in a very specific way. So refined and particular are its requirements that FlutterFlow's custom code might as well be its own programming language. Think of it as TypeScript is to JavaScript—a superset with stricter rules.&lt;br&gt;
You've experienced this: you paste code from pub.dev, Stack Overflow, or ChatGPT that you &lt;em&gt;know&lt;/em&gt; should work. FlutterFlow rejects it.&lt;/p&gt;

&lt;p&gt;You've experienced this: you paste valid, working Dart code from pub.dev, Stack Overflow, or ChatGPT. FlutterFlow rejects it with red underlines. Why?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Generic types the visual editor can't comprehend&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Naming conventions that don't match FlutterFlow's expected patterns&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hidden dependencies FlutterFlow won't magically add to your project&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Architecture that doesn't align with FlutterFlow's component model&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's not you. It's the fundamental mismatch between standard Dart development and FlutterFlow's constrained, opinionated environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution: Three-Step AI That Thinks Like a FlutterFlow Engineer
&lt;/h3&gt;

&lt;p&gt;This tool isn't just another ChatGPT wrapper. It's a specialized workflow designed specifically for FlutterFlow's unique constraints:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Prompt Architect&lt;/strong&gt;&lt;br&gt;
Takes your casual description ("credit card input with validation") and transforms it into a structured prompt injected with FlutterFlow's specific requirements. It speaks AI's language so the AI speaks FlutterFlow's.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Code Generator&lt;/strong&gt;&lt;br&gt;
Uses models like GPT-5.1 Codex or Gemini 3 Pro, each with system prompts optimized for their individual strengths. You choose the model. It generates Dart code that respects FlutterFlow's architecture from the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Code Auditor (The Killer Feature)&lt;/strong&gt;&lt;br&gt;
This is where the magic happens. Before you even see the code, it performs a &lt;strong&gt;FlutterFlow Compliance Audit&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides an overall score (e.g., 92/100)&lt;/li&gt;
&lt;li&gt;Flags critical issues and severe warnings&lt;/li&gt;
&lt;li&gt;Lists exact required actions: "Add &lt;code&gt;dart:math&lt;/code&gt; to project dependencies," "Create custom data type &lt;code&gt;WizardFormData&lt;/code&gt;"&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Proof in Practice: Three Real-World Examples
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Credit Card Input Widget&lt;/strong&gt; (Tests: algorithmic validation, input masking, tab navigation)&lt;br&gt;
&lt;em&gt;Generated with Gemini 3 Pro. Auditor score: High 80s. Highlighted missing package dependency.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Circular Progress Ring Widget&lt;/strong&gt; (Tests: custom painting, animation, gradient effects)&lt;br&gt;
&lt;em&gt;Generated with GPT-5.1 Codex. Auditor score: 92/100. Only note: add &lt;code&gt;dart:math&lt;/code&gt; import.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Step Form Wizard&lt;/strong&gt; (Tests: cross-step state management, data aggregation)&lt;br&gt;
&lt;em&gt;Generated with GPT-5.1 Codex. Auditor score: 95/100. Guided creation of custom data types and app state.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These aren't toy examples. They're production-ready components with documented integration steps—all generated in minutes, not hours.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Approach Wins Where Others Fail
&lt;/h3&gt;

&lt;p&gt;While DreamFlow generates entire apps (often opaquely), this tool generates &lt;strong&gt;targeted, audited components&lt;/strong&gt; you control and understand. It provides:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Control:&lt;/strong&gt; You're not surrendering your architecture to an opaque AI. You're augmenting it.&lt;br&gt;
&lt;strong&gt;Predictability:&lt;/strong&gt; The compliance audit eliminates the "why won't this compile?" frustration.&lt;br&gt;
&lt;strong&gt;Continuity:&lt;/strong&gt; No need to abandon your existing FlutterFlow projects. Supercharge them instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's Build!
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Try it now:&lt;/strong&gt; &lt;a href="https://customcode.connectio.com.au" rel="noopener noreferrer"&gt;customcode.connectio.com.au&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See the code:&lt;/strong&gt; It's open-source on &lt;a href="https://github.com/sgardoll/CommandForFlutterFlow" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask yourself:&lt;/strong&gt; What complex component have you been avoiding? What could you build in minutes instead of hours?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;FlutterFlow's future might be DreamFlow. But your present—and your current projects—need pragmatic solutions that work today. This is that solution.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What will you build with it?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>flutter</category>
      <category>dart</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Smart Display Google Should Have Made: My E-Ink Rebellion Against Tech Obsolescence</title>
      <dc:creator>Stuart</dc:creator>
      <pubDate>Mon, 08 Sep 2025 23:18:43 +0000</pubDate>
      <link>https://dev.to/sgardoll/i-ditched-my-smart-display-for-4b3</link>
      <guid>https://dev.to/sgardoll/i-ditched-my-smart-display-for-4b3</guid>
      <description>&lt;h2&gt;
  
  
  I have a complicated relationship with Google: I still get excited by the pitch, but live in fear of the funeral.
&lt;/h2&gt;

&lt;p&gt;Reader, Stadia, Hangouts, Glass, Podcasts… it can feel as though the company’s attention span is measured in product-announcement cycles, not years.&lt;br&gt;&lt;br&gt;
That anxiety now hovers over the Nest Hub line: no new hardware since 2021, the Store page reduced to “out of stock” placeholders, and the only future milestone anyone can cite is “Gemini voice update, end of November.”&lt;br&gt;&lt;br&gt;
It’s starting to feel less like a roadmap and more like a parting gift before the inevitable “sunset” blog post.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Nest Hub isn’t just aging—it’s stuck in limbo.
&lt;/h2&gt;

&lt;p&gt;While Google has confirmed Gemini will roll out to smart displays by the end of November 2025, the hardware itself is frozen in time: the same under-powered chip, the same static UI, the same locked-down customization that’s barely evolved since 2021. A voice-LLM update is welcome, but it’s still a software Band-Aid on a decade-old gadget that Google no longer sells and has no plans to refresh.  &lt;/p&gt;

&lt;p&gt;Without new displays, faster silicon, or a UI meant for more than rotating ads, Gemini feels like a final gift to a product line that’s quietly being retired—not revived.&lt;/p&gt;




&lt;h2&gt;
  
  
  The promise of the smart-display is on life-support—so I re-imagined it myself.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  My Manifesto for a Better Smart Display
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Principle&lt;/th&gt;
&lt;th&gt;What it means in practice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open-source firmware &amp;amp; hardware. If the vendor ghosts me, the device keeps working.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Calm&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;E-ink only. No back-light, no glowing rectangle, no ambient anxiety.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Secure&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One-way data flow; no camera, no mic, no extra attack surface.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Future-proof&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Standards-based APIs → swap boards, servers, or clouds at will.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Planet-friendly&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.02 kWh per month. That’s less than a single LED night-light uses in a night.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That checklist pointed me straight at &lt;a href="https://trmnl.net" rel="noopener noreferrer"&gt;&lt;strong&gt;TRMNL&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
– an open-source, 800 × 480 e-ink display purpose-built for calm, custom dashboards. It’s a pure information sink: no outbound chatter, no creepy listening, just a crisp piece of paper that updates quietly in the background.&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%2Fhy93qrkw340aynmlf5e7.jpeg" 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%2Fhy93qrkw340aynmlf5e7.jpeg" alt=" " width="800" height="583"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Build: Crafting a Personal Dashboard
&lt;/h2&gt;

&lt;p&gt;I wanted &lt;strong&gt;three numbers&lt;/strong&gt; that actually change the next thing I do:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Blood glucose&lt;/strong&gt; – I’m type-1; this decides juice or insulin.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next bus&lt;/strong&gt; – &amp;gt;10 min away = I grab my bike; otherwise I sprint barefoot.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temperature &amp;amp; UV&lt;/strong&gt; – Sydney winter still burns; if index &amp;gt; 9 I slap on SPF 50.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything else is noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pipeline (serverless, costs pennies)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What happens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;BuildShip&lt;/strong&gt; workflow (runs every 5 min)&lt;/td&gt;
&lt;td&gt;Pull Nightscout (glucose), TfNSW (bus), Open-Weather (temp/UV)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Merge into flat JSON: &lt;code&gt;sgv&lt;/code&gt;, &lt;code&gt;direction&lt;/code&gt;, &lt;code&gt;transport[]&lt;/code&gt;, &lt;code&gt;weather{}&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;JS renderer&lt;/td&gt;
&lt;td&gt;Draw 1-bit BMP (800 × 480, black OR white—no greys)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Expose private endpoint returning &lt;code&gt;{ bitmap: "&amp;lt;base64&amp;gt;", updated: "..." }&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;TRMNL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Polls endpoint, flashes 38 kB image, then sleeps at &amp;lt; 20 mA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Entire loop = 1.8 s screen refresh, zero light pollution, zero notifications.&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%2Fan516qniovcz8lzu7k5z.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%2Fan516qniovcz8lzu7k5z.png" alt=" " width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Watch the Full Walk-Through
&lt;/h2&gt;

&lt;p&gt;I filmed the whole thing—BuildShip nodes, Liquid template, bitmap tricks, the lot.&lt;br&gt;&lt;br&gt;
▶️ &lt;a href="https://www.youtube.com/watch?v=MPm60wxAQKY" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=MPm60wxAQKY&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Future Is What We Build
&lt;/h2&gt;

&lt;p&gt;This wasn’t just a weekend project; it’s a proof that we can opt out of stagnant ecosystems. Open-hardware boards, serverless glue, and e-ink calm let us build tools that &lt;strong&gt;serve us&lt;/strong&gt;—not the other way around.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would &lt;em&gt;you&lt;/em&gt; put on a distraction-free dashboard?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Drop your wish-list in the comments and let’s hack it together.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>smarthome</category>
      <category>googlehome</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
