<?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: JasperBlank</title>
    <description>The latest articles on DEV Community by JasperBlank (@jasperblank_14).</description>
    <link>https://dev.to/jasperblank_14</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%2F3871923%2Fd11f29cd-f7af-4344-801c-18d157ab4e48.png</url>
      <title>DEV Community: JasperBlank</title>
      <link>https://dev.to/jasperblank_14</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jasperblank_14"/>
    <language>en</language>
    <item>
      <title>Rubber Duck Diffusion Platform</title>
      <dc:creator>JasperBlank</dc:creator>
      <pubDate>Fri, 10 Apr 2026 14:26:26 +0000</pubDate>
      <link>https://dev.to/jasperblank_14/rubber-duck-diffusion-platform-421i</link>
      <guid>https://dev.to/jasperblank_14/rubber-duck-diffusion-platform-421i</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;After spending too many hours debugging small issues and somehow ending up questioning my entire worldview, I built the &lt;strong&gt;Rubber Duck Diffusion Platform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is a debugging tool with one very specific flaw: it does not really want to solve your bug.&lt;/p&gt;

&lt;p&gt;Instead, it escalates it.&lt;/p&gt;

&lt;p&gt;You describe a bug.&lt;br&gt;&lt;br&gt;
The duck asks a question back.&lt;br&gt;&lt;br&gt;
You answer sincerely.&lt;br&gt;&lt;br&gt;
The duck responds with a deeper, stranger, more abstract question.&lt;br&gt;&lt;br&gt;
Eventually, the original incident becomes a small detail inside a much larger emotional and philosophical process.&lt;/p&gt;

&lt;p&gt;So it is useless.&lt;/p&gt;

&lt;p&gt;Unfortunately, it is also just useful enough to be annoying.&lt;/p&gt;

&lt;p&gt;A typical session looks something like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bug report:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Users are redirected back to /login after successful authentication.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duck:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;When you say it "doesn't work", what does working even mean to you?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;The session should persist after login.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duck:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;If the system behaves consistently against your wishes, which one of you is actually failing to communicate?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;I am no longer sure.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duck:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;Tell me about your relationship with your problem. Do you feel safe here?&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That is the product.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Live site:&lt;br&gt;&lt;br&gt;
&lt;a href="https://jasperblank.github.io/Rubber-Duck-Diffusion-Platform/" rel="noopener noreferrer"&gt;https://jasperblank.github.io/Rubber-Duck-Diffusion-Platform/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cover scene:&lt;br&gt;&lt;br&gt;
&lt;a href="https://jasperblank.github.io/Rubber-Duck-Diffusion-Platform/cover.html" rel="noopener noreferrer"&gt;https://jasperblank.github.io/Rubber-Duck-Diffusion-Platform/cover.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The public version runs as a static deployment, so it uses the browser-local escalation engine. I also built a backend version that can use Google AI for live question generation.&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Repository:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/JasperBlank/Rubber-Duck-Diffusion-Platform" rel="noopener noreferrer"&gt;https://github.com/JasperBlank/Rubber-Duck-Diffusion-Platform&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/JasperBlank" rel="noopener noreferrer"&gt;
        JasperBlank
      &lt;/a&gt; / &lt;a href="https://github.com/JasperBlank/Rubber-Duck-Diffusion-Platform" rel="noopener noreferrer"&gt;
        Rubber-Duck-Diffusion-Platform
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Describe a bug. Answer one question. Receive a deeper, stranger question in return. Continue until the issue dissolves into managed introspection and the platform congratulates you for solving almost nothing.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I kept the stack intentionally small:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend: plain HTML, CSS, and JavaScript&lt;/li&gt;
&lt;li&gt;Backend: a small Python HTTP server&lt;/li&gt;
&lt;li&gt;AI integration: Gemini via the Google Generative Language API&lt;/li&gt;
&lt;li&gt;Static deployment: GitHub Pages&lt;/li&gt;
&lt;li&gt;Visual atmosphere: a looping aurora background that intensifies as the session gets less grounded in reality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few details I especially liked building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app has an escalation ladder that moves from Existential to Philosophical, Therapeutic, Cosmic, Transcendent, and finally Session Closure.&lt;/li&gt;
&lt;li&gt;The duck UI changes tone as the conversation progresses, but it is always the same duck. This felt important. The platform is not handing you off. It is simply becoming less accountable.&lt;/li&gt;
&lt;li&gt;The aurora background intensifies with each level. By the end, the interface looks like your bug report has entered the northern lights.&lt;/li&gt;
&lt;li&gt;I added a separate cover scene page with just the duck and the aurora so I could generate a clean project image.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The funniest part of building it was realizing that the joke works because it occasionally does what real rubber duck debugging does: by forcing you to keep answering increasingly specific questions, it can accidentally help.&lt;/p&gt;

&lt;p&gt;The difference is that my version eventually stops asking engineering questions and starts asking whether the problem is part of the climate now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;I am submitting this for &lt;strong&gt;Community Favorite&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The main goal here was to make something with a very clear joke, a strong visual identity, and a demo that becomes funnier the longer it goes on.&lt;/p&gt;

&lt;p&gt;That said, I also built a backend version with Google AI for dynamic duck responses, so if the judges are looking for a debugging tool that can escalate your login bug into a metaphysical event using Gemini, I would accept that interpretation too.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
