<?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: fracabu</title>
    <description>The latest articles on Forem by fracabu (@fracabu).</description>
    <link>https://forem.com/fracabu</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%2F2046031%2F588075b1-7ecf-4997-973e-721746c436b6.jpg</url>
      <title>Forem: fracabu</title>
      <link>https://forem.com/fracabu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/fracabu"/>
    <language>en</language>
    <item>
      <title>I Built a Prompt Framework Explorer With AI. Then the AI Created Its Own Frameworks.</title>
      <dc:creator>fracabu</dc:creator>
      <pubDate>Tue, 13 Jan 2026 13:26:49 +0000</pubDate>
      <link>https://forem.com/fracabu/i-built-a-prompt-framework-explorer-with-ai-then-the-ai-created-its-own-frameworks-li4</link>
      <guid>https://forem.com/fracabu/i-built-a-prompt-framework-explorer-with-ai-then-the-ai-created-its-own-frameworks-li4</guid>
      <description>&lt;h2&gt;
  
  
  The Recursive Loop Nobody Expected
&lt;/h2&gt;

&lt;p&gt;I started Promptify as a personal lab—a way to stop drowning in 47 browser tabs every time I needed to test a prompt framework.&lt;/p&gt;

&lt;p&gt;Then something weird happened.&lt;/p&gt;

&lt;p&gt;I built the tool using &lt;strong&gt;Claude Code&lt;/strong&gt; and &lt;strong&gt;GLM 4.6&lt;/strong&gt;. And when I asked them to create experimental frameworks optimized for modern LLMs, they generated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CALIBRO&lt;/strong&gt; (modular, enterprise-grade)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BCM&lt;/strong&gt; (GLM-4.6 optimized)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PRISMA&lt;/strong&gt; (Claude-optimized, multi-path reasoning)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now those AI-generated frameworks are &lt;strong&gt;inside the tool&lt;/strong&gt;, being used to test... the AIs that created them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meta? Absolutely.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Useful? Surprisingly, yes.&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%2F20ieyf1xnuqwsmje9o4m.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%2F20ieyf1xnuqwsmje9o4m.png" alt="Promptify Vue homepage showing the 3D framework explorer with interactive cards organized by category" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Promptify Vue&lt;/strong&gt; centralizes 30+ prompt engineering frameworks in one place. But unlike other collections, it includes frameworks that were &lt;em&gt;designed by AI, for AI&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://promptify-vue.vercel.app" rel="noopener noreferrer"&gt;Try the live demo&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/fracabu/promptify-vue" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Browse 30+ Frameworks by Category&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Organized in 7 categories from Fundamentals to Advanced Systems:&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%2Fjn3ppab7e0s6jo3z126s.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%2Fjn3ppab7e0s6jo3z126s.png" alt="Framework categories grid showing Fundamentals, Innovative, Business, Creative, Advanced and Problem Solving sections" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fundamentals&lt;/strong&gt; (7): APE, BAB, PAR, RTF&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Innovative&lt;/strong&gt; (2): CALIBRO, PRISMA ← &lt;em&gt;AI-generated&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business &amp;amp; Professional&lt;/strong&gt; (5): AIDA, SMART, STAR&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creative &amp;amp; Marketing&lt;/strong&gt; (5): CRAFT, ROSES, SPARC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced &amp;amp; System&lt;/strong&gt; (7): Chain-of-Thought, Tree-of-Thoughts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem Solving&lt;/strong&gt; (7): Structured methodologies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Multi-Provider Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Test across OpenAI, Google Gemini, and ZAI to see how different models interpret the same framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Built &lt;em&gt;With&lt;/em&gt; AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The entire codebase was developed using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code&lt;/strong&gt; (agentic coding CLI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GLM 4.6&lt;/strong&gt; (Chinese LLM for specific optimizations)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I asked them to design frameworks. They came up with CALIBRO (modular, self-evaluating) and PRISMA (meta-framework combining ReAct, Tree-of-Thoughts, and enterprise patterns).&lt;/p&gt;


&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Vue 3.5, TypeScript 5.6, Vite 7.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;Tailwind CSS 3.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State&lt;/td&gt;
&lt;td&gt;Pinia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Icons&lt;/td&gt;
&lt;td&gt;Lucide, Heroicons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Development Partners&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Claude Code, GLM 4.6&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. AI-generated frameworks are different
&lt;/h3&gt;

&lt;p&gt;CALIBRO and PRISMA have a level of self-awareness that human-designed frameworks lack. They include meta-evaluation steps ("Did I answer correctly? Check X, Y, Z").&lt;/p&gt;
&lt;h3&gt;
  
  
  2. The best framework isn't always the most popular
&lt;/h3&gt;

&lt;p&gt;After daily use, I've found BAB (Before-After-Bridge) and ROSES outperform Chain-of-Thought for creative and marketing tasks. But nobody talks about them.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Cross-provider consistency varies wildly
&lt;/h3&gt;

&lt;p&gt;Same prompt + framework → completely different outputs across OpenAI vs Gemini vs ZAI. Testing is mandatory.&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Personal labs evolve
&lt;/h3&gt;

&lt;p&gt;What started as "stop opening 50 tabs" became a research tool that contributed back to the AI ecosystem.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Recursive Part
&lt;/h2&gt;

&lt;p&gt;Here's the kicker:&lt;/p&gt;

&lt;p&gt;I use &lt;strong&gt;PRISMA&lt;/strong&gt; (created by Claude) to generate prompts for &lt;strong&gt;Claude Code&lt;/strong&gt; to build features for &lt;strong&gt;Promptify&lt;/strong&gt;... which contains &lt;strong&gt;PRISMA&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────┐
│  Claude creates PRISMA          │
│         ↓                       │
│  PRISMA generates prompts       │
│         ↓                       │
│  Prompts guide Claude Code      │
│         ↓                       │
│  Claude Code builds Promptify   │
│         ↓                       │
│  Promptify contains PRISMA  ←───┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's frameworks all the way down.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/fracabu/promptify-vue.git
&lt;span class="nb"&gt;cd &lt;/span&gt;promptify-vue
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;Open &lt;code&gt;http://localhost:5177&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;I'm exploring:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Framework Comparison Mode&lt;/strong&gt;: A/B test multiple frameworks side-by-side&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Framework Selector&lt;/strong&gt;: Input your task → get recommended framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benchmark Dataset&lt;/strong&gt;: Public data for framework research&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But honestly? The most interesting part is watching AI contribute to its own evolution.&lt;/p&gt;




&lt;h2&gt;
  
  
  Your Turn
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Questions for the community:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have you used AI to build development tools? How meta did it get?&lt;/li&gt;
&lt;li&gt;What's your go-to prompt framework? (Popular or hidden gem?)&lt;/li&gt;
&lt;li&gt;Should I ask Claude to design a &lt;em&gt;better&lt;/em&gt; CALIBRO? (Is this how Skynet starts?)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drop your thoughts below! 👇&lt;/p&gt;




&lt;p&gt;👤 &lt;strong&gt;Francesco Capurso&lt;/strong&gt; (&lt;a href="https://github.com/fracabu" rel="noopener noreferrer"&gt;@fracabu&lt;/a&gt;)&lt;br&gt;
&lt;em&gt;Self-taught dev | AI agents &amp;amp; Fastify plugins&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/fracabu" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://npmjs.com/~fracabu" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ &lt;a href="https://github.com/fracabu/promptify-vue" rel="noopener noreferrer"&gt;Star the repo&lt;/a&gt; if you find it useful&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>vue</category>
      <category>webdev</category>
    </item>
    <item>
      <title>README2Video - Transform Any GitHub README into a Professional Promo Video</title>
      <dc:creator>fracabu</dc:creator>
      <pubDate>Mon, 05 Jan 2026 07:00:41 +0000</pubDate>
      <link>https://forem.com/fracabu/readme2video-transform-any-github-readme-into-a-professional-promo-video-1ihk</link>
      <guid>https://forem.com/fracabu/readme2video-transform-any-github-readme-into-a-professional-promo-video-1ihk</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mux-2025-12-03"&gt;DEV's Worldwide Show and Tell Challenge Presented by Mux&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;README2Video&lt;/strong&gt; is a web application that automatically transforms GitHub README files into professional promotional videos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;README.md → AI Analysis → Video Generation → Mux Streaming → Share!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Paste a GitHub URL, choose your style, and get a cinematic promo video in minutes. No editing skills required.&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%2Fnx590dp1dvpvvilz6yoa.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%2Fnx590dp1dvpvvilz6yoa.png" alt="README2Video Interface"&gt;&lt;/a&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%2Fp5pkypdmkpfw89fv3mzd.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%2Fp5pkypdmkpfw89fv3mzd.png" alt="Generation Flow"&gt;&lt;/a&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%2Fnhqbeq5akkyzse6lim6g.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%2Fnhqbeq5akkyzse6lim6g.png" alt=" "&gt;&lt;/a&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%2Ftjr6fij1xtfjawdgynhf.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%2Ftjr6fij1xtfjawdgynhf.png" alt="Settings Panel"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  My Pitch Video
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://stream.mux.com/9dgSGD1XGzVm3YOSCslXgrgFbAkiKFCOksgXtUYlvDs.m3u8" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;stream.mux.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Meta twist&lt;/strong&gt;: This pitch video was generated by README2Video itself, from its own README. The app pitched itself. 🎬&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Video Preview (Powered by Mux)
&lt;/h3&gt;

&lt;p&gt;Here's an animated preview generated automatically by Mux:&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%2F6tfkh137v8wi8sgzh0ej.gif" 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%2F6tfkh137v8wi8sgzh0ej.gif" alt="Animated Preview"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live App&lt;/strong&gt;: &lt;a href="https://readme-to-video.onrender.com/" rel="noopener noreferrer"&gt;readme-to-video.onrender.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;a href="https://github.com/fracabu/readme-to-video" rel="noopener noreferrer"&gt;github.com/fracabu/readme-to-video&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Test (2 minutes setup, all free!)
&lt;/h3&gt;

&lt;p&gt;The app uses BYOK (Bring Your Own Keys) - this keeps costs transparent and gives you full control.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;How to Get Key&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mux&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://www.mux.com/" rel="noopener noreferrer"&gt;mux.com&lt;/a&gt; - Create free account&lt;/td&gt;
&lt;td&gt;Free (no credit card)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenRouter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://openrouter.ai/" rel="noopener noreferrer"&gt;openrouter.ai&lt;/a&gt; - Sign up, get API key&lt;/td&gt;
&lt;td&gt;Free models available!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kie.ai&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://kie.ai/" rel="noopener noreferrer"&gt;kie.ai&lt;/a&gt; - Sign up, get API key&lt;/td&gt;
&lt;td&gt;Free credits on signup&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Free models tip&lt;/strong&gt;: In OpenRouter, select models ending with &lt;code&gt;:free&lt;/code&gt; like &lt;code&gt;deepseek/deepseek-r1:free&lt;/code&gt; or &lt;code&gt;google/gemini-2.0-flash-exp:free&lt;/code&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%2F6gt8w5mi42qvhb61t53w.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%2F6gt8w5mi42qvhb61t53w.png" alt="API Keys Setup"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Story Behind It
&lt;/h2&gt;

&lt;p&gt;Every developer knows this pain: you build something amazing, but creating a promo video takes hours (or days), costs money, and requires skills you don't have.&lt;/p&gt;

&lt;p&gt;I wanted to solve this for myself and every developer out there.&lt;/p&gt;

&lt;p&gt;The solution? Let AI do the heavy lifting:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Analyze&lt;/strong&gt; the README to understand what the project does&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate&lt;/strong&gt; a compelling script with scenes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create&lt;/strong&gt; stunning visuals with Sora 2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host&lt;/strong&gt; on Mux for instant streaming&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now any developer can go from README to promo video in under 5 minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Opportunity
&lt;/h2&gt;

&lt;p&gt;There are &lt;strong&gt;300+ million repositories&lt;/strong&gt; on GitHub. Every single one could benefit from a promo video.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Indie developers launching products&lt;/li&gt;
&lt;li&gt;Open source projects seeking contributors&lt;/li&gt;
&lt;li&gt;Startups pitching to investors&lt;/li&gt;
&lt;li&gt;Students showcasing portfolios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;README2Video turns a $500+ video production into a &lt;strong&gt;$2 automated process&lt;/strong&gt;. That's the kind of democratization that scales.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Highlights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Next.js 14, React 18, Tailwind CSS, shadcn/ui&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LLM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Multi-provider: Claude, GPT-4, Gemini, OpenRouter (free tier!)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Video AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Kie.ai Sora 2 - cinematic text-to-video&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Streaming&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mux Video API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Real-time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Server-Sent Events for live progress&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Provider LLM&lt;/strong&gt;: Choose between Anthropic, OpenAI, Google, or free models via OpenRouter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video Styles&lt;/strong&gt;: Tech, Minimal, or Energetic aesthetics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Durations&lt;/strong&gt;: 15s, 30s, or 60s videos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Progress&lt;/strong&gt;: SSE updates showing each generation step&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BYOK Model&lt;/strong&gt;: Users bring their own API keys - no hidden costs, full transparency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Thumbnail Slider&lt;/strong&gt;: Interactive time picker (0-15s) to select the perfect thumbnail&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Animated GIF Preview&lt;/strong&gt;: One-click GIF generation for social sharing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MP4 Download&lt;/strong&gt;: Direct download button for offline use&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Use of Mux (Additional Prize Category)
&lt;/h2&gt;

&lt;p&gt;README2Video leverages &lt;strong&gt;6 distinct Mux features&lt;/strong&gt; - all exposed in the UI for users to interact with:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Programmatic Upload API
&lt;/h3&gt;

&lt;p&gt;Videos generated by Sora 2 are uploaded directly to Mux via the Node SDK:&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Mux&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@mux/mux-node&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;mux&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Mux&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;tokenId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;MUX_TOKEN_ID&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;tokenSecret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;MUX_TOKEN_SECRET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Upload generated video to Mux&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;asset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;mux&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;assets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;generatedVideoUrl&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
  &lt;span class="na"&gt;playback_policy&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="s1"&gt;public&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;encoding_tier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;baseline&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;h3&gt;
  
  
  2. Adaptive Bitrate Streaming
&lt;/h3&gt;

&lt;p&gt;Mux automatically transcodes every video into multiple resolutions and bitrates. Users get smooth playback regardless of their connection:&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;// Mux handles all transcoding automatically&lt;/span&gt;
&lt;span class="c1"&gt;// Users stream at optimal quality for their bandwidth&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;streamUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://stream.mux.com/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;playbackId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.m3u8`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Playback URL Generation + MP4 Download
&lt;/h3&gt;

&lt;p&gt;Each video gets a unique, shareable streaming URL - plus a direct download option:&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;// Get the playback ID from the asset&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;playbackId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;playback_ids&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="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Generate streaming URL (HLS format)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;streamUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://stream.mux.com/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;playbackId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.m3u8`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Generate direct MP4 for download&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;mp4Url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://stream.mux.com/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;playbackId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/medium.mp4`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In the app&lt;/strong&gt;: A prominent "Download MP4" button lets users save their video locally for offline use or uploading to other platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Dynamic Thumbnails with Interactive Slider
&lt;/h3&gt;

&lt;p&gt;Mux generates thumbnails at any timestamp. We built an &lt;strong&gt;interactive slider&lt;/strong&gt; so users can scrub through their video and pick the perfect frame:&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;// Thumbnail at specific time (in seconds)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;thumbnail&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://image.mux.com/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;playbackId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/thumbnail.png?time=5`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Custom dimensions&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;customThumb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://image.mux.com/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;playbackId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/thumbnail.png?time=10&amp;amp;width=1280&amp;amp;height=720`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In the app&lt;/strong&gt;: Users drag a slider (0-15s) and see the thumbnail update in real-time. One click copies the URL for social sharing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; - Dynamic thumbnail from our pitch video:&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%2Fzugrfelxmoab3ox6wczy.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%2Fzugrfelxmoab3ox6wczy.png" alt="Dynamic Thumbnail"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Animated GIF Previews
&lt;/h3&gt;

&lt;p&gt;Generate eye-catching GIF previews for social media and documentation:&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;// Animated GIF from any segment&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;gifPreview&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://image.mux.com/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;playbackId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/animated.gif?start=0&amp;amp;end=10&amp;amp;width=480`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Customize FPS for smaller file size&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;optimizedGif&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://image.mux.com/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;playbackId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/animated.gif?start=2&amp;amp;end=8&amp;amp;fps=15&amp;amp;width=320`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In the app&lt;/strong&gt;: GIF previews are lazy-loaded (click to view) to save bandwidth. Users can copy the GIF URL instantly for sharing on Twitter, Discord, or README files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt; - Animated preview of our pitch video:&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%2F4yvdgf869ij9yhilbpxe.gif" 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%2F4yvdgf869ij9yhilbpxe.gif" alt="Animated GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Embeddable Player
&lt;/h3&gt;

&lt;p&gt;Users get one-click access to embed code for any platform:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Mux Player embed --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt;
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://player.mux.com/{playbackId}"&lt;/span&gt;
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt;
  &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"360"&lt;/span&gt;
  &lt;span class="na"&gt;frameborder=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;
  &lt;span class="na"&gt;allowfullscreen&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Or use the stream URL directly --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;video&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://stream.mux.com/{playbackId}.m3u8"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"application/x-mpegURL"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why Mux Was the Right Choice
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Mux Solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fast integration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Clean SDK, 10 lines of code to upload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;No infrastructure&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mux handles encoding, CDN, player&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Auto-optimization&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Adaptive streaming out of the box&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rich media features&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Thumbnails, GIFs, storyboards - all automatic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Developer experience&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Excellent docs, predictable API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fair pricing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pay only for what you use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Building README2Video with Mux took &lt;strong&gt;minutes instead of days&lt;/strong&gt;. That's exactly the developer experience I wanted to pass on to my users.&lt;/p&gt;




&lt;h2&gt;
  
  
  Challenges I Faced
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Video Concatenation
&lt;/h3&gt;

&lt;p&gt;Generating multi-scene videos (30s, 60s) required stitching multiple Sora 2 clips. Solution: FFmpeg with crossfade transitions on the server.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Long Generation Times
&lt;/h3&gt;

&lt;p&gt;60-second videos (4 scenes) can take 5+ minutes. Solution: Server-Sent Events for real-time progress updates so users know exactly what's happening.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Free Tier Hosting Timeouts
&lt;/h3&gt;

&lt;p&gt;Serverless platforms timeout during long generations. Solution: Deployed on Render as a persistent Node.js process.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[x] &lt;del&gt;Dynamic Thumbnail Slider&lt;/del&gt; - &lt;strong&gt;Done!&lt;/strong&gt; Interactive time picker in result view&lt;/li&gt;
&lt;li&gt;[x] &lt;del&gt;Animated GIF Preview&lt;/del&gt; - &lt;strong&gt;Done!&lt;/strong&gt; Lazy-loaded GIF for social sharing&lt;/li&gt;
&lt;li&gt;[x] &lt;del&gt;MP4 Download&lt;/del&gt; - &lt;strong&gt;Done!&lt;/strong&gt; One-click download button&lt;/li&gt;
&lt;li&gt;[ ] Mux Player React component for enhanced playback controls&lt;/li&gt;
&lt;li&gt;[ ] Auto-generated captions using Mux's transcription API&lt;/li&gt;
&lt;li&gt;[ ] Storyboard preview before final generation&lt;/li&gt;
&lt;li&gt;[ ] Webhook notifications when video is ready&lt;/li&gt;
&lt;li&gt;[ ] Batch processing for multiple READMEs&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Built with ❤️ and AI&lt;/strong&gt; | Powered by &lt;strong&gt;Mux&lt;/strong&gt;, &lt;strong&gt;OpenRouter&lt;/strong&gt;, &lt;strong&gt;Kie.ai&lt;/strong&gt; &amp;amp; &lt;strong&gt;Sora 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By submitting this project, I confirm that my video adheres to Mux's terms of service: &lt;a href="https://www.mux.com/terms" rel="noopener noreferrer"&gt;https://www.mux.com/terms&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>muxchallenge</category>
      <category>showandtell</category>
      <category>video</category>
    </item>
    <item>
      <title>From 0 to 500 Free Pages Scraped with Firecrawl MCP Server and Claude Code</title>
      <dc:creator>fracabu</dc:creator>
      <pubDate>Fri, 02 Jan 2026 11:04:44 +0000</pubDate>
      <link>https://forem.com/fracabu/from-0-to-500-free-pages-scraped-with-firecrawl-mcp-server-and-claude-code-29in</link>
      <guid>https://forem.com/fracabu/from-0-to-500-free-pages-scraped-with-firecrawl-mcp-server-and-claude-code-29in</guid>
      <description>&lt;p&gt;0 lines of code. That's what I wrote to scrape 500 pages. With Firecrawl's MCP server integrated into Claude Code, I just describe what I need in plain English, and the AI handles the rest. When I discovered this workflow combined with Firecrawl's free tier, my entire approach to web scraping changed forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  Firecrawl's Generous Free Tier
&lt;/h2&gt;

&lt;p&gt;Before diving into the technical setup, let me highlight why Firecrawl stands out. Most scraping APIs require a credit card or offer crippled free tiers. Firecrawl is different:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Credits&lt;/th&gt;
&lt;th&gt;Credit Card Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;FREE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;500 (one-time)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;No&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hobby&lt;/td&gt;
&lt;td&gt;$16/mo&lt;/td&gt;
&lt;td&gt;3,000/mo&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Standard&lt;/td&gt;
&lt;td&gt;$83/mo&lt;/td&gt;
&lt;td&gt;100,000/mo&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Growth&lt;/td&gt;
&lt;td&gt;$333/mo&lt;/td&gt;
&lt;td&gt;500,000/mo&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;500 credits to start, completely free, no strings attached. That's enough to scrape an entire e-commerce category, extract data from dozens of documentation sites, or test your scraping workflow before upgrading.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Magic Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Firecrawl Free Tier&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;500 credits to start, $0, full API access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Firecrawl MCP Server&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exposes Firecrawl API to AI assistants&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;AI that calls MCP tools autonomously&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The result? You talk to Claude, Claude talks to Firecrawl, you get structured data back. No Postman, no curl commands, no boilerplate code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up Firecrawl MCP Server
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Get Your Free API Key
&lt;/h3&gt;

&lt;p&gt;Go to &lt;a href="https://firecrawl.dev" rel="noopener noreferrer"&gt;firecrawl.dev&lt;/a&gt; and sign up. You get 500 free credits to start, no credit card required.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Add MCP Server to Claude Code
&lt;/h3&gt;

&lt;p&gt;In your Claude Code configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"firecrawl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"firecrawl-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"FIRECRAWL_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fc-your-key-here"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  3. Start Scraping with Natural Language
&lt;/h3&gt;

&lt;p&gt;Now just ask Claude:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Scrape this URL and extract the main content"&lt;/li&gt;
&lt;li&gt;"Map all links on this website"&lt;/li&gt;
&lt;li&gt;"Extract product names and prices from this page"&lt;/li&gt;
&lt;li&gt;"Crawl this documentation and summarize each section"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Claude automatically uses Firecrawl MCP tools to fulfill your request.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I Also Built a Visual UI
&lt;/h2&gt;

&lt;p&gt;While MCP + Claude Code is incredibly powerful for ad-hoc scraping, I built &lt;strong&gt;Firecrawl Power App&lt;/strong&gt; for cases where I need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual feedback on what's being scraped&lt;/li&gt;
&lt;li&gt;Persistent history of past scrapes&lt;/li&gt;
&lt;li&gt;Quick access without opening Claude Code&lt;/li&gt;
&lt;li&gt;Sharing results with non-technical teammates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&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/fracabu" rel="noopener noreferrer"&gt;
        fracabu
      &lt;/a&gt; / &lt;a href="https://github.com/fracabu/firecrawl-power-app" rel="noopener noreferrer"&gt;
        firecrawl-power-app
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Powerful web UI for Firecrawl API + MCP Server docs. Scrape, Crawl, Map, Search, Extract &amp;amp; AI Agent. Built with React 18 + Vite + Claude Code.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🔥 Firecrawl Power App&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a href="https://stream.mux.com/w86VluY00JvsZVGrrRk00902wikYTtBYrfCQCe4Y1001h6o.m3u8" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/3c500a704c9b1ece00d8373924e41273a7fda6e70c1bd5908b33d8b1fc0ea1b6/68747470733a2f2f696d6167652e6d75782e636f6d2f773836566c755930304a76735a56477272526b303039303277696b595474425972664351436534593130303168366f2f7468756d626e61696c2e706e673f74696d653d352677696474683d363430" alt="Watch Demo Video" width="640"&gt;
  &lt;/a&gt;
  &lt;br&gt;
  &lt;em&gt;▶️ Click to watch demo video&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;A sleek, powerful UI to harness the full potential of Firecrawl API&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/fracabu/firecrawl-power-app#-features" rel="noopener noreferrer"&gt;Features&lt;/a&gt; •
  &lt;a href="https://github.com/fracabu/firecrawl-power-app#-demo" rel="noopener noreferrer"&gt;Demo&lt;/a&gt; •
  &lt;a href="https://github.com/fracabu/firecrawl-power-app#-quick-start" rel="noopener noreferrer"&gt;Quick Start&lt;/a&gt; •
  &lt;a href="https://github.com/fracabu/firecrawl-power-app#-deployment" rel="noopener noreferrer"&gt;Deployment&lt;/a&gt; •
  &lt;a href="https://github.com/fracabu/firecrawl-power-app#-italiano" rel="noopener noreferrer"&gt;Italiano&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/083df5dc0f3ae0df95feeeed4f2b01ff634216ebcc5ffd368caecffdd07abde5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31382e322d3631444146423f7374796c653d666f722d7468652d6261646765266c6f676f3d7265616374266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/083df5dc0f3ae0df95feeeed4f2b01ff634216ebcc5ffd368caecffdd07abde5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31382e322d3631444146423f7374796c653d666f722d7468652d6261646765266c6f676f3d7265616374266c6f676f436f6c6f723d7768697465" alt="React"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/00cc7a8e368d05f5d86256867549f0858ba01b468fa4ca51e0af43c597f87797/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f566974652d352e302d3634364346463f7374796c653d666f722d7468652d6261646765266c6f676f3d76697465266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/00cc7a8e368d05f5d86256867549f0858ba01b468fa4ca51e0af43c597f87797/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f566974652d352e302d3634364346463f7374796c653d666f722d7468652d6261646765266c6f676f3d76697465266c6f676f436f6c6f723d7768697465" alt="Vite"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/5ff6fe30548887af15100dc6e4c17e1aac60eded2b9e46a2ffe521ba3f5bee11/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f457870726573732d342e31382d3030303030303f7374796c653d666f722d7468652d6261646765266c6f676f3d65787072657373266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/5ff6fe30548887af15100dc6e4c17e1aac60eded2b9e46a2ffe521ba3f5bee11/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f457870726573732d342e31382d3030303030303f7374796c653d666f722d7468652d6261646765266c6f676f3d65787072657373266c6f676f436f6c6f723d7768697465" alt="Express"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/b2df81b4a47db96279c54ca024d7bf93763f6f9012c6962bae5b7cc37d8be8f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46697265637261776c2d4150492d4646344330303f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/b2df81b4a47db96279c54ca024d7bf93763f6f9012c6962bae5b7cc37d8be8f2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46697265637261776c2d4150492d4646344330303f7374796c653d666f722d7468652d6261646765" alt="Firecrawl"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/9e9d2a8038362507479fd2f012f243a9b2f4cb3e0f9b62553c96c8fda0dee646/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f667261636162752f66697265637261776c2d706f7765722d6170703f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/9e9d2a8038362507479fd2f012f243a9b2f4cb3e0f9b62553c96c8fda0dee646/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f667261636162752f66697265637261776c2d706f7765722d6170703f7374796c653d666c61742d737175617265" alt="License"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/75832b49d08fcf6d62d48256082a07a8d938bde3312f620a764536c979f592aa/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f66697265637261776c2d706f7765722d6170703f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/75832b49d08fcf6d62d48256082a07a8d938bde3312f620a764536c979f592aa/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f66697265637261776c2d706f7765722d6170703f7374796c653d666c61742d737175617265" alt="Stars"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0774ec19f697fff887b5c0b24870137317008be7b797f59426c1f8041de5c3a9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f66697265637261776c2d706f7765722d6170703f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/0774ec19f697fff887b5c0b24870137317008be7b797f59426c1f8041de5c3a9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f66697265637261776c2d706f7765722d6170703f7374796c653d666c61742d737175617265" alt="Forks"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/25b3e6d0d42c98de74a98cbb4d149a1c09020cf6d1361993b72d7d5b8ffed363/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/25b3e6d0d42c98de74a98cbb4d149a1c09020cf6d1361993b72d7d5b8ffed363/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265" alt="PRs Welcome"&gt;&lt;/a&gt;
&lt;/p&gt;



&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/530987679-d6442d47-43e5-4fcd-a174-7d960b0f1307.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE5NzgsIm5iZiI6MTc3NDY0MTY3OCwicGF0aCI6Ii8xMDAxOTk5NjUvNTMwOTg3Njc5LWQ2NDQyZDQ3LTQzZTUtNGZjZC1hMTc0LTdkOTYwYjBmMTMwNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QyMDAxMThaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MjdjM2U4NzhkNzkyNzIxMDg3ZTYxZmIzZjBjZDQwYjYyYTNkNDUzMTBjOWI3Y2MyNDEwNGU3ZjU3Yzk4ZTRlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.X4eJPlbN2rkGk_0xuMYYWWzNZHyqOioDH2QNND45ahw"&gt;&lt;img width="1600" height="740" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F530987679-d6442d47-43e5-4fcd-a174-7d960b0f1307.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE5NzgsIm5iZiI6MTc3NDY0MTY3OCwicGF0aCI6Ii8xMDAxOTk5NjUvNTMwOTg3Njc5LWQ2NDQyZDQ3LTQzZTUtNGZjZC1hMTc0LTdkOTYwYjBmMTMwNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QyMDAxMThaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03MjdjM2U4NzhkNzkyNzIxMDg3ZTYxZmIzZjBjZDQwYjYyYTNkNDUzMTBjOWI3Y2MyNDEwNGU3ZjU3Yzk4ZTRlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.X4eJPlbN2rkGk_0xuMYYWWzNZHyqOioDH2QNND45ahw"&gt;&lt;/a&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📄 &lt;strong&gt;Scrape&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Extract content from any webpage (Markdown, HTML, Screenshots)&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🗺️ &lt;strong&gt;Map&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Discover all URLs on a website&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🕷️ &lt;strong&gt;Crawl&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Crawl entire websites with depth control&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🔍 &lt;strong&gt;Search&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Search the web with advanced operators&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;PRO&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📊 &lt;strong&gt;Extract&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Extract structured data using AI and JSON schemas&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;PRO&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🤖 &lt;strong&gt;Agent&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Autonomous AI agent for complex data gathering&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;5/day free&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🌙 &lt;strong&gt;Dark Mode&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Beautiful dark/light theme toggle&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🔑 &lt;strong&gt;BYOK&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Bring Your Own Key - use your personal Firecrawl API key&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; PRO features require a &lt;a href="https://firecrawl.dev/pricing" rel="nofollow noopener noreferrer"&gt;paid Firecrawl plan&lt;/a&gt;. Free tier includes 500 credits (one-time).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎨 Design&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;Built with the official &lt;strong&gt;Firecrawl design system&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="highlight highlight-source-css notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-s1"&gt;--primary&lt;/span&gt;&lt;span class="pl-kos"&gt;:&lt;/span&gt; &lt;span class="pl-pds"&gt;&lt;span class="pl-kos"&gt;#&lt;/span&gt;FF4C00&lt;/span&gt;;      &lt;span class="pl-c"&gt;/*&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fracabu/firecrawl-power-app" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;🚀 &lt;strong&gt;&lt;a href="https://firecrawl-power-app.vercel.app/" rel="noopener noreferrer"&gt;Try it live on Vercel&lt;/a&gt;&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%2F5v5z3eo3c4648o101v4v.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%2F5v5z3eo3c4648o101v4v.png" alt="Tool Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app complements the MCP workflow. Use Claude Code for complex, one-off extractions. Use the UI for repetitive tasks and visual exploration.&lt;/p&gt;

&lt;h3&gt;
  
  
  App Features
&lt;/h3&gt;

&lt;p&gt;The Power App provides dedicated panels for every Firecrawl operation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scrape&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Extract content from single pages&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Map&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Discover all links on a website&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Crawl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Systematically index entire sites&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Search&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Find specific content across the web&lt;/td&gt;
&lt;td&gt;PRO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Extract&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI-powered structured data extraction&lt;/td&gt;
&lt;td&gt;PRO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Autonomous AI agents for complex tasks&lt;/td&gt;
&lt;td&gt;5/day free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Technologies&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React, Vite, Custom Design System&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Express, Vercel Serverless Functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI&lt;/td&gt;
&lt;td&gt;Firecrawl API (Extraction, Agent)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  My Results After 3 Months
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Time to first scrape&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;30+ minutes&lt;/td&gt;
&lt;td&gt;30 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lines of code written&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100+ per project&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Monthly pages scraped&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;~200&lt;/td&gt;
&lt;td&gt;480+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$0 (but hours of work)&lt;/td&gt;
&lt;td&gt;$0 (and minutes of work)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Pro Tips
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Claude Code for complex extractions&lt;/strong&gt;: When you need to scrape + transform + analyze, let Claude chain the operations. Ask: "Scrape this page, extract the data, and create a CSV file."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Combine Map + targeted Scrape&lt;/strong&gt;: First ask Claude to map a site, then selectively scrape only the pages you need. This maximizes your free credits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Leverage JSON Schemas for precision&lt;/strong&gt;: Use the Extract feature with a defined JSON schema to get perfectly structured, machine-readable data without parsing.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What Would You Scrape with AI + Free Credits?
&lt;/h2&gt;

&lt;p&gt;The combination of MCP servers and free API tiers is opening up possibilities that didn't exist a year ago. What would YOU build? A research assistant? A content aggregator? An automated monitoring system? Share your ideas below!&lt;/p&gt;




&lt;p&gt;👤 &lt;strong&gt;Francesco Capurso&lt;/strong&gt; (&lt;a class="mentioned-user" href="https://dev.to/fracabu"&gt;@fracabu&lt;/a&gt;)&lt;br&gt;
&lt;em&gt;Self-taught dev | AI agents &amp;amp; Fastify plugins&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/fracabu" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://npmjs.com/~fracabu" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ Found this useful? Star the repo!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>webdev</category>
      <category>scraping</category>
    </item>
    <item>
      <title>From 3 Hours to 10 Minutes: How I Built DevFlow AI to Automate Technical Writing</title>
      <dc:creator>fracabu</dc:creator>
      <pubDate>Tue, 23 Dec 2025 08:00:00 +0000</pubDate>
      <link>https://forem.com/fracabu/from-3-hours-to-10-minutes-how-i-built-devflow-ai-to-automate-technical-writing-f01</link>
      <guid>https://forem.com/fracabu/from-3-hours-to-10-minutes-how-i-built-devflow-ai-to-automate-technical-writing-f01</guid>
      <description>&lt;p&gt;3 hours. That's how long I spent crafting each technical article before DevFlow AI. After missing deadlines for my open-source projects yet again, I built an AI co-pilot for technical content creation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;As a solo developer juggling coding and content:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual extraction pains&lt;/strong&gt;: Copy-pasting READMEs killed my workflow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO overhead&lt;/strong&gt;: Optimizing articles felt like guesswork&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency issues&lt;/strong&gt;: Voice/tone varied wildly between rush jobs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engagement debt&lt;/strong&gt;: Crafting hooks took longer than writing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;DevFlow AI - transforms GitHub repos into polished technical articles:&lt;/p&gt;

&lt;p&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/fracabu" rel="noopener noreferrer"&gt;
        fracabu
      &lt;/a&gt; / &lt;a href="https://github.com/fracabu/devflow-ai" rel="noopener noreferrer"&gt;
        devflow-ai
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Transform GitHub repositories into SEO-optimized technical articles. Multi-provider AI (OpenRouter + Gemini), 18+ models, Dev.to ready output. React 19 + TypeScript + Vite.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1297472c33e95340bac6dded4ade852a5dce078ea5771154a197c45ab00ffece/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576466c6f772d4149253230436f6e74656e7425323047656e657261746f722d6379616e3f7374796c653d666f722d7468652d6261646765266c6f676f3d7265616374"&gt;&lt;img src="https://camo.githubusercontent.com/1297472c33e95340bac6dded4ade852a5dce078ea5771154a197c45ab00ffece/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576466c6f772d4149253230436f6e74656e7425323047656e657261746f722d6379616e3f7374796c653d666f722d7468652d6261646765266c6f676f3d7265616374" alt="DevFlow AI"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🚀 DevFlow AI&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;strong&gt;Transform GitHub Repositories into SEO-Optimized Technical Articles&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://stream.mux.com/01bHd1TJnudzhftxG1Iwsjc7aLZevXnnHdWpmdjN9RbM.m3u8" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/14ee6f62037c56c237256c50dd270dcd78fd229cb3123edfae63236a1b20185e/68747470733a2f2f696d6167652e6d75782e636f6d2f303162486431544a6e75647a6866747847314977736a6337614c5a6576586e6e486457706d646a4e3952624d2f7468756d626e61696c2e706e673f74696d653d352677696474683d363430" alt="Watch Demo Video" width="640"&gt;
  &lt;/a&gt;
  &lt;br&gt;
  &lt;em&gt;▶️ Click to watch demo video&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/fracabu/devflow-ai#-italiano" rel="noopener noreferrer"&gt;Italiano&lt;/a&gt; •
  &lt;a href="https://github.com/fracabu/devflow-ai#-english" rel="noopener noreferrer"&gt;English&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/a962d1ad0186d4566ced4e7487194d351555cf037df609d5ac135808ef86268c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146423f7374796c653d666c61742d737175617265266c6f676f3d7265616374"&gt;&lt;img src="https://camo.githubusercontent.com/a962d1ad0186d4566ced4e7487194d351555cf037df609d5ac135808ef86268c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146423f7374796c653d666c61742d737175617265266c6f676f3d7265616374" alt="React"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0c0e86ecf8c3dc3b91695d3bb39b8dcd5eeed7443729bf8448c6579f8a8a3ee1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f566974652d362d3634364346463f7374796c653d666c61742d737175617265266c6f676f3d76697465"&gt;&lt;img src="https://camo.githubusercontent.com/0c0e86ecf8c3dc3b91695d3bb39b8dcd5eeed7443729bf8448c6579f8a8a3ee1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f566974652d362d3634364346463f7374796c653d666c61742d737175617265266c6f676f3d76697465" alt="Vite"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/93e7c55f8107916d7496c57cfa2933466c60e2a5b94a824793e82f42604efdfa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d3331373843363f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074"&gt;&lt;img src="https://camo.githubusercontent.com/93e7c55f8107916d7496c57cfa2933466c60e2a5b94a824793e82f42604efdfa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d3331373843363f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1ac71d5df3106f3715b86a8fb3e285ffdc4b61e5b537bf49773ad1824709d980/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d43444e2d3338423241433f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e642d637373"&gt;&lt;img src="https://camo.githubusercontent.com/1ac71d5df3106f3715b86a8fb3e285ffdc4b61e5b537bf49773ad1824709d980/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d43444e2d3338423241433f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e642d637373" alt="Tailwind"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265" alt="License"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/62d58e1bcac3585da8c3c6f611d96812b5aa9c142602d3e1d0cec45c36342007/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f646576666c6f772d61693f7374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/62d58e1bcac3585da8c3c6f611d96812b5aa9c142602d3e1d0cec45c36342007/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f646576666c6f772d61693f7374796c653d736f6369616c" alt="Stars"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2ea4f4a30cb0593259e5272d34ad4a46eaa6a5a74507a08dfc8c9832d108e506/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f646576666c6f772d61693f7374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/2ea4f4a30cb0593259e5272d34ad4a46eaa6a5a74507a08dfc8c9832d108e506/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f646576666c6f772d61693f7374796c653d736f6369616c" alt="Forks"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇮🇹 Italiano&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Panoramica&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;DevFlow AI&lt;/strong&gt; è una piattaforma che trasforma repository GitHub in articoli tecnici di alta qualità, ottimizzati per SEO. Costruito per sviluppatori che vogliono scalare il content marketing senza sacrificare tempo di coding.&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/529391865-03389569-d94c-4278-ba91-6d57319bc08d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NjAsIm5iZiI6MTc3NDY0MTU2MCwicGF0aCI6Ii8xMDAxOTk5NjUvNTI5MzkxODY1LTAzMzg5NTY5LWQ5NGMtNDI3OC1iYTkxLTZkNTczMTliYzA4ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MjBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yYmU1OGU5MjE4M2ViMzhhNmFjNjk0NjAzNmEyN2VkZjNhYTM5N2RmZWViMDM1ZThhYzBiZGNkOTg2OGU5ZmQ5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Ik5XA9r7xEqUZNpam0VIYYDEFwlgm3KheIIYgqtr0fM"&gt;&lt;img width="1600" height="739" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F529391865-03389569-d94c-4278-ba91-6d57319bc08d.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NjAsIm5iZiI6MTc3NDY0MTU2MCwicGF0aCI6Ii8xMDAxOTk5NjUvNTI5MzkxODY1LTAzMzg5NTY5LWQ5NGMtNDI3OC1iYTkxLTZkNTczMTliYzA4ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MjBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yYmU1OGU5MjE4M2ViMzhhNmFjNjk0NjAzNmEyN2VkZjNhYTM5N2RmZWViMDM1ZThhYzBiZGNkOTg2OGU5ZmQ5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Ik5XA9r7xEqUZNpam0VIYYDEFwlgm3KheIIYgqtr0fM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✨ Caratteristiche&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;Funzionalità&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Descrizione&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🔄 &lt;strong&gt;GitHub Sync&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Estrazione istantanea di metadata e README da qualsiasi repository&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🔑 &lt;strong&gt;GitHub Token&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Supporto token per repo private e rate limit aumentato (100 repo)&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🧠 &lt;strong&gt;Multi-Provider AI&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Supporta OpenRouter (18+ modelli) e Google Gemini&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🆓 &lt;strong&gt;Modelli GRATUITI&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Usa Gemini 2.0 Flash, DeepSeek R1, Llama 3.3 senza costi&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;✍️ &lt;strong&gt;Storytelling Hook&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Articoli con intro personale e domanda engagement finale&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;💬 &lt;strong&gt;Primo Commento&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Genera commento da postare dopo la pubblicazione&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📅 &lt;strong&gt;Editorial Planner&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Archivia e gestisci la pipeline di contenuti&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🌍 &lt;strong&gt;Bilingue&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Supporto completo Italiano e Inglese&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📤 &lt;strong&gt;Dev.to Direct&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Pubblica bozze&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fracabu/devflow-ai" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&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%2Fupds2209z6szgcoktlqr.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%2Fupds2209z6szgcoktlqr.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔄 GitHub Sync Engine
&lt;/h3&gt;

&lt;p&gt;Instantly fetches repository context:&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="c1"&gt;// Parses markdown metadata&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;extractMetadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;readme&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="o"&gt;=&amp;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;titleMatch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;readme&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/^# &lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;.+&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&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;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;titleMatch&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;titleMatch&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="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Untitled&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="c1"&gt;// Auto-extracted&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;p&gt;Automates repository scanning via GitHub API, supporting private repos with token auth.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Multi-AI Content Engine
&lt;/h3&gt;

&lt;p&gt;Generates SEO-ready articles using optimal model per task:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Filtering&lt;/td&gt;
&lt;td&gt;Mistral Small 3.1&lt;/td&gt;
&lt;td&gt;Fast topic selection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drafting&lt;/td&gt;
&lt;td&gt;Gemini 2.0 Flash&lt;/td&gt;
&lt;td&gt;Balanced technical depth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sections&lt;/td&gt;
&lt;td&gt;DeepSeek R1&lt;/td&gt;
&lt;td&gt;Structural coherence&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Cost-efficient workflow averages $0.12/article using free tier models.&lt;/p&gt;

&lt;h3&gt;
  
  
  📤 Dev.to Pipeline
&lt;/h3&gt;

&lt;p&gt;1-click publishing with automatic frontmatter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Automating&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Docs&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;with&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;AI"&lt;/span&gt;
&lt;span class="na"&gt;published&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ai"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;devtools"&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;productivity"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Includes generated first comment optimized for engagement.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Tech Stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Technologies&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;React 19, TypeScript 5, Vite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;Tailwind CSS (CDN), Lucide icons&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Providers&lt;/td&gt;
&lt;td&gt;OpenRouter, Google Gemini API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;localStorage editorial calendar&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  My Results
&lt;/h2&gt;

&lt;p&gt;Quantifying content creation transformation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Time per article&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3+ hours&lt;/td&gt;
&lt;td&gt;10 minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SEO optimizations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;td&gt;AI-validated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Engagement hooks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generic&lt;/td&gt;
&lt;td&gt;Personalized&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Publication pipeline&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ad hoc&lt;/td&gt;
&lt;td&gt;Scheduled queue&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Saved 22+ hours monthly while doubling output quality ratings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pro Tips
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Model Cost Control&lt;/strong&gt;: Stick with free Gemini/DeepSeek unless handling complex architectures&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Token Leverage&lt;/strong&gt;: GH tokens unlock access for private repos &amp;amp; avoid rate limits&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Engagement Question
&lt;/h2&gt;

&lt;p&gt;What's YOUR biggest bottleneck in technical content creation?&lt;/p&gt;




&lt;p&gt;👤 &lt;strong&gt;Francesco Capurso&lt;/strong&gt; (&lt;a class="mentioned-user" href="https://dev.to/fracabu"&gt;@fracabu&lt;/a&gt;)&lt;br&gt;
&lt;em&gt;Self-taught dev | AI agents &amp;amp; Fastify plugins&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/fracabu" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://npmjs.com/~fracabu" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ Found this useful? Star the repo!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>showdev</category>
      <category>productivity</category>
      <category>technicalwriting</category>
    </item>
    <item>
      <title>I Built a Squad of AI Agents to Chase Invoices for Me</title>
      <dc:creator>fracabu</dc:creator>
      <pubDate>Sun, 21 Dec 2025 20:37:36 +0000</pubDate>
      <link>https://forem.com/fracabu/i-built-a-squad-of-ai-agents-to-chase-invoices-for-me-ojm</link>
      <guid>https://forem.com/fracabu/i-built-a-squad-of-ai-agents-to-chase-invoices-for-me-ojm</guid>
      <description>&lt;p&gt;Chasing clients for money is the absolute worst part of freelancing and small business management. It's awkward, it consumes hours of mental energy, and quite frankly, I'd rather be coding than writing "friendly reminders" for the tenth time.&lt;/p&gt;

&lt;p&gt;But as a self-taught dev who used to work in a warehouse, I know that if a task is repetitive and rule-based, it can be automated. &lt;/p&gt;

&lt;p&gt;So, instead of hiring a virtual assistant, I built a team of AI agents to do the dirty work for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ The Problem
&lt;/h2&gt;

&lt;p&gt;Before building this tool, my process was a mess. I had a spreadsheet full of invoice dates. Every Monday, I had to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check who hadn't paid.&lt;/li&gt;
&lt;li&gt;Calculate how many days they were overdue.&lt;/li&gt;
&lt;li&gt;Decide the tone of the email (Friendly? Firm? Legal threat?).&lt;/li&gt;
&lt;li&gt;Draft the email manually to avoid sounding like a robot.&lt;/li&gt;
&lt;li&gt;Handle the replies ("I sent it yesterday!" or "Can I pay next week?").&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It wasn't just about the time; it was the context switching. Stopping deep work to play debt collector destroys productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 The Solution: PayMind
&lt;/h2&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%2Fzav2ypr6cxzzcu9ktp87.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%2Fzav2ypr6cxzzcu9ktp87.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;PayMind&lt;/strong&gt;, an autonomous system where three specialized AI agents collaborate to manage the entire payment lifecycle.&lt;/p&gt;

&lt;p&gt;I didn't just want a script that blasts generic templates. I needed intelligence. I used &lt;strong&gt;Next.js 16&lt;/strong&gt; for the dashboard, &lt;strong&gt;TypeScript&lt;/strong&gt; for safety, and &lt;strong&gt;Claude Code&lt;/strong&gt; to orchestrate the agents. &lt;/p&gt;

&lt;p&gt;Crucially, I integrated &lt;strong&gt;OpenRouter&lt;/strong&gt; to access 18+ models, meaning I can run the heavy lifting on free models (like Gemini 2.0 Flash) and save the premium compute (Claude Sonnet 4) for complex negotiations.&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%2Fjvjk2b7j8dsegs240fl4.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%2Fjvjk2b7j8dsegs240fl4.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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/fracabu" rel="noopener noreferrer"&gt;
        fracabu
      &lt;/a&gt; / &lt;a href="https://github.com/fracabu/Agent-PayMind" rel="noopener noreferrer"&gt;
        Agent-PayMind
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      PayMind is an AI payment reminder system that autonomously analyzes invoices, generates personalized messages, and handles customer responses using Claude AI agents.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1bd18dd016d6203dbec2960a82451bdcdc42b4571b1670411a8f57c658569786/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061794d696e642d41492532305061796d656e7425323053797374656d2d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d616e7468726f706963"&gt;&lt;img src="https://camo.githubusercontent.com/1bd18dd016d6203dbec2960a82451bdcdc42b4571b1670411a8f57c658569786/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061794d696e642d41492532305061796d656e7425323053797374656d2d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d616e7468726f706963" alt="PayMind"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;💰 PayMind&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;strong&gt;AI-Powered Payment Reminder System&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/fracabu/Agent-PayMind#-italiano" rel="noopener noreferrer"&gt;Italiano&lt;/a&gt; •
  &lt;a href="https://github.com/fracabu/Agent-PayMind#-english" rel="noopener noreferrer"&gt;English&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f7e4717e47de8aa821c6e36e6cd4017bfbc3d21a1f0eea3a95218f2398a39353/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564652d536f6e6e6574253230342d6f72616e67653f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963"&gt;&lt;img src="https://camo.githubusercontent.com/f7e4717e47de8aa821c6e36e6cd4017bfbc3d21a1f0eea3a95218f2398a39353/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564652d536f6e6e6574253230342d6f72616e67653f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963" alt="Claude"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/7567ef7347cff50e572aefea4040f2d765382f3662bae4e496ebf02bbe6d7a39/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31362d626c61636b3f7374796c653d666c61742d737175617265266c6f676f3d6e6578742e6a73"&gt;&lt;img src="https://camo.githubusercontent.com/7567ef7347cff50e572aefea4040f2d765382f3662bae4e496ebf02bbe6d7a39/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31362d626c61636b3f7374796c653d666c61742d737175617265266c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c96e50abb90dd62c8c9766032bddac2e87424bee47cb1fe36568320f27cb0287/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d626c75653f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074"&gt;&lt;img src="https://camo.githubusercontent.com/c96e50abb90dd62c8c9766032bddac2e87424bee47cb1fe36568320f27cb0287/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d626c75653f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/fbbac61d83a1baa6523621cc5d947f5467061c7f4ddb82de31eb8b1f1012d218/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d342d3338423241433f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e642d637373"&gt;&lt;img src="https://camo.githubusercontent.com/fbbac61d83a1baa6523621cc5d947f5467061c7f4ddb82de31eb8b1f1012d218/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d342d3338423241433f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e642d637373" alt="Tailwind"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265" alt="License"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0b35eeb41a4ae1df46af65a354833db0a3597c2a85a633c662e57674fbf2f55b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/0b35eeb41a4ae1df46af65a354833db0a3597c2a85a633c662e57674fbf2f55b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c" alt="Stars"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2eb967a6467d7b91a78b47f600d89433702994f6cfade4eba009dcb601f38e38/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/2eb967a6467d7b91a78b47f600d89433702994f6cfade4eba009dcb601f38e38/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c" alt="Forks"&gt;&lt;/a&gt;
&lt;/p&gt;



&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853423-2b7dfc20-8fc5-45ad-9eb0-13ba9422d060.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDIzLTJiN2RmYzIwLThmYzUtNDVhZC05ZWIwLTEzYmE5NDIyZDA2MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZmJiNzA3ZTQ4Yzk3N2UxOWRkMjczZjhkNmQwNDQzMmQ1ZDczYTUwMmI4M2JjYjQ2MWEwYTNmNTE2YWYyYmEwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.215OeHoM8ITwYC95ttF7S-nQ6uaI7cZ6Thev5UXHxaI"&gt;&lt;img width="1600" height="739" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853423-2b7dfc20-8fc5-45ad-9eb0-13ba9422d060.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDIzLTJiN2RmYzIwLThmYzUtNDVhZC05ZWIwLTEzYmE5NDIyZDA2MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZmJiNzA3ZTQ4Yzk3N2UxOWRkMjczZjhkNmQwNDQzMmQ1ZDczYTUwMmI4M2JjYjQ2MWEwYTNmNTE2YWYyYmEwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.215OeHoM8ITwYC95ttF7S-nQ6uaI7cZ6Thev5UXHxaI"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853491-058691c0-11e3-47db-a561-77d0c51776ea.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDkxLTA1ODY5MWMwLTExZTMtNDdkYi1hNTYxLTc3ZDBjNTE3NzZlYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jMDY2Yzg0NTU5M2RjZWExMzlkNzE2NTU0NjIyZjNmOWUxNWVmNzQ4Y2E3MDI5NDVhODFiYzJmMWU1ZGE1MGY2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.SXClT118aHBdlUD1Wcj2IF-gnc-s54wDjR_IsXfxzA8"&gt;&lt;img width="1600" height="740" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853491-058691c0-11e3-47db-a561-77d0c51776ea.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDkxLTA1ODY5MWMwLTExZTMtNDdkYi1hNTYxLTc3ZDBjNTE3NzZlYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jMDY2Yzg0NTU5M2RjZWExMzlkNzE2NTU0NjIyZjNmOWUxNWVmNzQ4Y2E3MDI5NDVhODFiYzJmMWU1ZGE1MGY2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.SXClT118aHBdlUD1Wcj2IF-gnc-s54wDjR_IsXfxzA8"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853599-f8afe620-42bc-4a94-999d-b285b2167238.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNTk5LWY4YWZlNjIwLTQyYmMtNGE5NC05OTlkLWIyODViMjE2NzIzOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kOTNiNjE2MTYxZjU3NDY3NmU0MzBjYmI4NDQ2YThlNzk0Nzk2NzEzNmFiMzljZjVlNzViZDYyMzY3OTBkMTU3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.rWhz3INNuYXnBV1yLQwu8qYm1sDBNM-nrRqMrSJvGew"&gt;&lt;img width="1599" height="819" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853599-f8afe620-42bc-4a94-999d-b285b2167238.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNTk5LWY4YWZlNjIwLTQyYmMtNGE5NC05OTlkLWIyODViMjE2NzIzOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kOTNiNjE2MTYxZjU3NDY3NmU0MzBjYmI4NDQ2YThlNzk0Nzk2NzEzNmFiMzljZjVlNzViZDYyMzY3OTBkMTU3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.rWhz3INNuYXnBV1yLQwu8qYm1sDBNM-nrRqMrSJvGew"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853637-338a5554-2f47-4d90-81fa-7cd2e7ee1440.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNjM3LTMzOGE1NTU0LTJmNDctNGQ5MC04MWZhLTdjZDJlN2VlMTQ0MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZWRkY2NjNzU2ZWIzYWUzYmViM2JjNmM2ZGNmOGRhNmYzZTJkNGY3Y2VhNGZmN2E4YjE2ZjY3YzRiZTg0MDdiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WTGHIwyKBx8T94WG700_dAZWd1gsM-SkiXuKQiK-OmU"&gt;&lt;img width="1600" height="740" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853637-338a5554-2f47-4d90-81fa-7cd2e7ee1440.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4NDksIm5iZiI6MTc3NDY0MTU0OSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNjM3LTMzOGE1NTU0LTJmNDctNGQ5MC04MWZhLTdjZDJlN2VlMTQ0MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU5MDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZWRkY2NjNzU2ZWIzYWUzYmViM2JjNmM2ZGNmOGRhNmYzZTJkNGY3Y2VhNGZmN2E4YjE2ZjY3YzRiZTg0MDdiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.WTGHIwyKBx8T94WG700_dAZWd1gsM-SkiXuKQiK-OmU"&gt;&lt;/a&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇮🇹 Italiano&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Panoramica&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;PayMind&lt;/strong&gt; è un sistema intelligente di gestione automatica dei solleciti di pagamento basato su &lt;strong&gt;Agenti AI Claude Code&lt;/strong&gt;. Utilizza tre agenti specializzati che lavorano in team per analizzare fatture, generare messaggi personalizzati e gestire le risposte dei clienti.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✨ Caratteristiche&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;Funzionalità&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Descrizione&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🤖 &lt;strong&gt;3 Agenti AI Specializzati&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Team di agenti che collaborano per gestire l'intero workflow&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📊 &lt;strong&gt;Analisi Intelligente&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Identifica fatture scadute, calcola priorità e segmenta clienti&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📧 &lt;strong&gt;Multi-Canale&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Genera messaggi per Email, SMS e WhatsApp&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;💬 &lt;strong&gt;NLP Avanzato&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Analizza risposte con intent recognition e sentiment analysis&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🎨 &lt;strong&gt;Dashboard Moderna&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Interfaccia Next.js per visualizzare workflow in tempo reale&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🔌 &lt;strong&gt;Multi-Provider AI&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Supporta Anthropic, OpenAI, OpenRouter e Google Gemini&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🗄️ &lt;strong&gt;Database SQLite&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Persistenza dati con Prisma ORM&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🌙 &lt;strong&gt;Dark/Light Mode&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Toggle tra tema scuro e chiaro&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🌍 &lt;strong&gt;Bilingue&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Supporto completo Italiano e Inglese&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📊 &lt;strong&gt;Grafici Interattivi&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Dashboard con&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fracabu/Agent-PayMind" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&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%2Feh9kke7gzfkhskfg2ub7.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%2Feh9kke7gzfkhskfg2ub7.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The architecture relies on agent specialization. One massive prompt never works as well as three focused ones.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Payment Monitor (The Analyst)
&lt;/h3&gt;

&lt;p&gt;This agent scans the CSV/Database. It identifies overdue invoices, calculates priority scores (based on amount and days overdue), and segments clients. It doesn't write emails; it just serves data.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Reminder Generator (The Copywriter)
&lt;/h3&gt;

&lt;p&gt;This agent takes the data and context. If the client is 3 days late, it drafts a polite nudge. If they are 60 days late, it drafts a formal notice. It adapts to the preferred channel (Email, SMS, WhatsApp).&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The Response Handler (The Negotiator)
&lt;/h3&gt;

&lt;p&gt;This is the coolest part. When a client replies, this agent analyzes the intent using NLP. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Client says: "The bank transfer is scheduled for tomorrow."&lt;/li&gt;
&lt;li&gt;Agent detects intent: &lt;code&gt;PAYMENT_PROMISED&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Agent action: Pauses further reminders for 48h.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this is visualized in a modern Next.js dashboard with a dark mode (because we're developers, obviously).&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 My Results
&lt;/h2&gt;

&lt;p&gt;Here is the breakdown of managing 50 active invoices per month manually versus using PayMind.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Manual Approach&lt;/th&gt;
&lt;th&gt;PayMind Automation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Time Spent&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;~5 hours/month&lt;/td&gt;
&lt;td&gt;~10 minutes/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context Switching&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High (Daily interruptions)&lt;/td&gt;
&lt;td&gt;Zero (Batch processing)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tone Consistency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Variable (Depends on my mood)&lt;/td&gt;
&lt;td&gt;Perfect (Always professional)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;My hourly rate x 5&lt;/td&gt;
&lt;td&gt;~$0.10 (API Costs) or FREE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Stress Level&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Non-existent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  💡 Pro Tips
&lt;/h2&gt;

&lt;p&gt;If you fork this repo to build your own agent system, keep these in mind:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Model Routing is Key&lt;/strong&gt;: You don't need GPT-4 or Claude 3.5 Sonnet to parse a CSV date. I configured PayMind to use &lt;strong&gt;Gemini 2.0 Flash (Free)&lt;/strong&gt; via OpenRouter for the analysis phase. Only use the expensive models for generating the actual human-like text. This cuts costs by 90%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Human-in-the-Loop&lt;/strong&gt;: Always start with a "Draft Mode." PayMind generates the emails but waits for a final approval click on the dashboard before sending. AI is great, but you don't want it hallucinating a legal threat to your best client because of a CSV typo.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I didn't go to a bootcamp to learn this. I used curiosity and AI assistants to build an AI assistant. It's meta, but it works.&lt;/p&gt;

&lt;p&gt;Automating the boring stuff is the best way to free up time to learn more cool stuff. Check out the code, star the repo, and stop chasing invoices manually.&lt;/p&gt;




&lt;p&gt;👤 &lt;strong&gt;Francesco Capurso&lt;/strong&gt; (&lt;a class="mentioned-user" href="https://dev.to/fracabu"&gt;@fracabu&lt;/a&gt;)&lt;br&gt;
&lt;em&gt;Self-taught dev | AI agents &amp;amp; Fastify plugins&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/fracabu" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://npmjs.com/~fracabu" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ Found this useful? Star the repo!&lt;/p&gt;

</description>
      <category>aiagents</category>
      <category>claudecode</category>
      <category>nextjs16</category>
      <category>paymentautomation</category>
    </item>
    <item>
      <title>Stop paying $20/month for AI videos. Generate Sora 2 quality clips for just $0.15 each with Kie.ai API</title>
      <dc:creator>fracabu</dc:creator>
      <pubDate>Wed, 17 Dec 2025 16:24:03 +0000</pubDate>
      <link>https://forem.com/fracabu/stop-paying-20month-for-ai-videos-generate-sora-2-quality-clips-for-just-015-each-with-kieai-31g1</link>
      <guid>https://forem.com/fracabu/stop-paying-20month-for-ai-videos-generate-sora-2-quality-clips-for-just-015-each-with-kieai-31g1</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;/p&gt;

&lt;p&gt;I want to share how I went from spending &lt;strong&gt;$20/month&lt;/strong&gt; on AI video tools to generating the same quality videos for &lt;strong&gt;$0.15 each&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you've ever wanted to create AI-generated videos but felt priced out by OpenAI Sora or Runway, this is for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  💸 The Problem: AI Video is Expensive
&lt;/h2&gt;

&lt;p&gt;Creating promotional videos has always been costly:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Freelancer/Agency&lt;/td&gt;
&lt;td&gt;$500+ per video&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI Sora&lt;/td&gt;
&lt;td&gt;$20/month (limited)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runway Gen-3&lt;/td&gt;
&lt;td&gt;$0.50+ per clip&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pika Labs&lt;/td&gt;
&lt;td&gt;$0.40+ per clip&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I needed videos for my projects, but couldn't justify these costs for experimentation.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 The Solution: Kie.ai API
&lt;/h2&gt;

&lt;p&gt;Then I discovered &lt;a href="https://kie.ai" rel="noopener noreferrer"&gt;&lt;strong&gt;Kie.ai&lt;/strong&gt;&lt;/a&gt; — they provide API access to &lt;strong&gt;Sora 2&lt;/strong&gt; at a fraction of the cost:&lt;/p&gt;
&lt;h3&gt;
  
  
  Cost Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;15-second video&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI Sora&lt;/td&gt;
&lt;td&gt;~$2-5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runway Gen-3&lt;/td&gt;
&lt;td&gt;$0.50+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kie.ai Sora 2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$0.15&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;That's 100x cheaper.&lt;/strong&gt; Same model, same quality.&lt;/p&gt;




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

&lt;p&gt;Instead of just using the API manually, I built a complete pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📝 Describe your business
        ↓
🤖 Claude AI generates storyboard (4 scenes)
        ↓
🎬 Kie.ai Sora 2 renders each scene
        ↓
🔗 FFmpeg merges everything
        ↓
🎥 60-second promo video
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Total cost for a 4-scene promo: ~$0.63&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Compare that to $500+ with traditional methods.&lt;/p&gt;

&lt;p&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/fracabu" rel="noopener noreferrer"&gt;
        fracabu
      &lt;/a&gt; / &lt;a href="https://github.com/fracabu/kie-ai-app" rel="noopener noreferrer"&gt;
        kie-ai-app
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Automates the entire process of generating promotional videos, from AI-powered storyboard creation to video generation with Kie.ai Sora 2 and final merging.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Kie Ai App&lt;/h1&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Automates the entire process of generating promotional videos, from AI-powered s&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f0370fa781bf20510d7f99f51c4df0e922dc116702d9221fe830de393dc7abca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d3337373641423f6c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/f0370fa781bf20510d7f99f51c4df0e922dc116702d9221fe830de393dc7abca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d3337373641423f6c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465267374796c653d666c61742d737175617265" alt="Python"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  🇬🇧 &lt;a href="https://github.com/fracabu/kie-ai-app#english" rel="noopener noreferrer"&gt;English&lt;/a&gt; | 🇮🇹 &lt;a href="https://github.com/fracabu/kie-ai-app#italiano" rel="noopener noreferrer"&gt;Italiano&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇬🇧 English&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Overview&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Automates the entire process of generating promotional videos, from AI-powered storyboard creation to video generation with Kie.ai Sora 2 and final merging.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Quick Start&lt;/h3&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/fracabu/kie-ai-app.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; kie-ai-app&lt;/pre&gt;

&lt;/div&gt;


&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇮🇹 Italiano&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Panoramica&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Automates the entire process of generating promotional videos, from AI-powered storyboard creation to video generation with Kie.ai Sora 2 and final merging.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Avvio Rapido&lt;/h3&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/fracabu/kie-ai-app.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; kie-ai-app&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Tech Stack&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;Python&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;License&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;MIT&lt;/p&gt;




&lt;p&gt;
  &lt;a href="https://github.com/fracabu" rel="noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/a60359afad122c3505ae60c351fbc282441f13074d495a107774036fa173ef63/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6164655f62792d667261636162752d3842354346363f7374796c653d666c61742d737175617265" alt="Made by fracabu"&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fracabu/kie-ai-app" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;








&lt;h2&gt;
  
  
  ✨ Why Kie.ai Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔑 Key Benefits&lt;/strong&gt;&lt;/p&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Same Quality&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Uses actual Sora 2 model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pay Per Use&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No monthly subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Simple API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Just 3 endpoints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fast&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2-5 minutes per video&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;No Watermark&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Professional output&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;⚙️ How the API Works&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;The API uses a simple async pattern:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create Task&lt;/strong&gt; → Get &lt;code&gt;taskId&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poll Status&lt;/strong&gt; → Wait for &lt;code&gt;success&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download&lt;/strong&gt; → Get video URL&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. Three calls, one video.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Quick Start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/fracabu/kie-ai-app
&lt;span class="nb"&gt;cd &lt;/span&gt;kie-ai-app
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add your API keys to &lt;code&gt;.env&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;KIE_API_KEY=your-key
OPENROUTER_API_KEY=your-key  # for Claude storyboards
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python video_generator.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📦 What's in the Repo
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Script&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;app.py&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Streamlit web dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;video_generator.py&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full pipeline with Claude storyboards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;genera_da_storyboard.py&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Generate from existing storyboard JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;merge_videos.py&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;FFmpeg merge utility&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;🎨 Available Models&lt;/strong&gt;&lt;/p&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sora-2-text-to-video&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Text to video&lt;/td&gt;
&lt;td&gt;$0.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sora-2-image-to-video&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Animate images&lt;/td&gt;
&lt;td&gt;$0.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sora-2-pro-*&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Higher quality&lt;/td&gt;
&lt;td&gt;$0.75+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  📊 My Results
&lt;/h2&gt;

&lt;p&gt;I've generated &lt;strong&gt;50+ videos&lt;/strong&gt; for various projects.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Total spent&lt;/td&gt;
&lt;td&gt;~$15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Videos generated&lt;/td&gt;
&lt;td&gt;50+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Traditional cost&lt;/td&gt;
&lt;td&gt;$2,500+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Savings&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$2,485&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  💡 Pro Tips
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Write Cinematic Prompts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Include camera angles, lighting, movement&lt;/li&gt;
&lt;li&gt;Specify "4K", "cinematic", "slow motion"&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Watch for Gotchas&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;n_frames&lt;/code&gt; must be string: &lt;code&gt;"15"&lt;/code&gt; not &lt;code&gt;15&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;URLs expire in ~24h — download immediately&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use Claude for Storyboards&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI generates consistent scene prompts&lt;/li&gt;
&lt;li&gt;Adds only ~$0.03 to total cost&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🐙 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/fracabu/kie-ai-app" rel="noopener noreferrer"&gt;fracabu/kie-ai-app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🎬 &lt;strong&gt;Kie.ai&lt;/strong&gt;: &lt;a href="https://kie.ai" rel="noopener noreferrer"&gt;kie.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;OpenRouter&lt;/strong&gt;: &lt;a href="https://openrouter.ai" rel="noopener noreferrer"&gt;openrouter.ai&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎬 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI Sora: &lt;strong&gt;$20/month&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Kie.ai Sora 2: &lt;strong&gt;$0.15/video&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Full 60s promo: &lt;strong&gt;~$0.63&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stop overpaying. Check out the repo and start generating.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Have you tried AI video generation? What tools are you using?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Drop a comment — I'd love to hear your experience!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you found this useful, consider giving the &lt;a href="https://github.com/fracabu/kie-ai-app" rel="noopener noreferrer"&gt;repo&lt;/a&gt; a ⭐ and following for more AI tool builds!&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>From Warehouse to Code: My Self-Taught Journey into AI &amp; Multi-Agent Systems</title>
      <dc:creator>fracabu</dc:creator>
      <pubDate>Tue, 16 Dec 2025 12:28:40 +0000</pubDate>
      <link>https://forem.com/fracabu/from-warehouse-to-code-my-self-taught-journey-into-ai-multi-agent-systems-35li</link>
      <guid>https://forem.com/fracabu/from-warehouse-to-code-my-self-taught-journey-into-ai-multi-agent-systems-35li</guid>
      <description>&lt;p&gt;Hey everyone, I'm Francesco 👋&lt;/p&gt;

&lt;p&gt;Today, I want to share a story that isn't about the latest framework or a complex architectural pattern, but about a personal journey – one that took me from the demanding environment of a warehouse floor to the fascinating world of AI and multi-agent systems.&lt;/p&gt;

&lt;p&gt;If you're reading this, chances are you're a developer, or aspiring to be one. And maybe, just maybe, you've felt the pressure of not having a "traditional" background – no Computer Science degree, no expensive bootcamps. Well, you're not alone. My story is living proof that &lt;strong&gt;curiosity, persistence, and a passion for building can truly beat credentials.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 The Starting Line: Life in the Warehouse
&lt;/h2&gt;

&lt;p&gt;For a significant part of my professional life, my days were defined by logistics, inventory, and the physical demands of a warehouse. It was an honest job, one that taught me discipline and the value of hard work. But deep down, there was a growing itch, a nagging curiosity about how the digital world worked, how software was built, and what truly made things "smart."&lt;/p&gt;

&lt;p&gt;I watched, I wondered, and eventually, I decided to dive in. The idea of transitioning into tech felt daunting, almost impossible, especially without a formal background. But that curiosity was a powerful motivator.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎓 My University: Documentation &amp;amp; AI as My Teacher
&lt;/h2&gt;

&lt;p&gt;I didn't have the luxury of a university curriculum or a structured bootcamp. What I did have was access to the internet, an insatiable desire to learn, and two incredibly powerful allies: &lt;strong&gt;comprehensive documentation&lt;/strong&gt; and &lt;strong&gt;AI assistants.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My learning approach was simple yet effective: &lt;strong&gt;learn by building.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whenever I encountered a new concept, a new language like Node.js, TypeScript, or Python, I wouldn't just read about it. I'd immediately try to build something, even if it was a tiny, broken prototype.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 How AI Became My Personal Tutor&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;AI assistants like Claude AI and Google Gemini weren't just chatbots for me; they were my personal tutors, available 24/7:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;How It Helped&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Explaining Concepts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;When documentation seemed opaque, AI explained it in simpler terms with examples&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Debugging&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Paste code + error → get pointed in the right direction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Code Generation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Quick boilerplate and prototypes to focus on the &lt;em&gt;why&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best Practices&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Instant, distilled knowledge on demand&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This wasn't about letting the AI code &lt;em&gt;for&lt;/em&gt; me, but about having an intelligent pair-programmer and a patient teacher always at my side.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Diving Deeper: AI &amp;amp; Multi-Agent Systems
&lt;/h2&gt;

&lt;p&gt;As I gained confidence in fundamental programming, my fascination naturally gravitated towards Artificial Intelligence. Specifically, the idea of &lt;strong&gt;multi-agent systems&lt;/strong&gt; captivated me — specialized AI agents collaborating to solve complex problems, mimicking a team of human experts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Featured Projects
&lt;/h3&gt;

&lt;p&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/fracabu" rel="noopener noreferrer"&gt;
        fracabu
      &lt;/a&gt; / &lt;a href="https://github.com/fracabu/Agent-PayMind" rel="noopener noreferrer"&gt;
        Agent-PayMind
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      PayMind is an AI payment reminder system that autonomously analyzes invoices, generates personalized messages, and handles customer responses using Claude AI agents.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1bd18dd016d6203dbec2960a82451bdcdc42b4571b1670411a8f57c658569786/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061794d696e642d41492532305061796d656e7425323053797374656d2d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d616e7468726f706963"&gt;&lt;img src="https://camo.githubusercontent.com/1bd18dd016d6203dbec2960a82451bdcdc42b4571b1670411a8f57c658569786/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061794d696e642d41492532305061796d656e7425323053797374656d2d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d616e7468726f706963" alt="PayMind"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;💰 PayMind&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;strong&gt;AI-Powered Payment Reminder System&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/fracabu/Agent-PayMind#-italiano" rel="noopener noreferrer"&gt;Italiano&lt;/a&gt; •
  &lt;a href="https://github.com/fracabu/Agent-PayMind#-english" rel="noopener noreferrer"&gt;English&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f7e4717e47de8aa821c6e36e6cd4017bfbc3d21a1f0eea3a95218f2398a39353/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564652d536f6e6e6574253230342d6f72616e67653f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963"&gt;&lt;img src="https://camo.githubusercontent.com/f7e4717e47de8aa821c6e36e6cd4017bfbc3d21a1f0eea3a95218f2398a39353/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564652d536f6e6e6574253230342d6f72616e67653f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963" alt="Claude"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/7567ef7347cff50e572aefea4040f2d765382f3662bae4e496ebf02bbe6d7a39/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31362d626c61636b3f7374796c653d666c61742d737175617265266c6f676f3d6e6578742e6a73"&gt;&lt;img src="https://camo.githubusercontent.com/7567ef7347cff50e572aefea4040f2d765382f3662bae4e496ebf02bbe6d7a39/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31362d626c61636b3f7374796c653d666c61742d737175617265266c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c96e50abb90dd62c8c9766032bddac2e87424bee47cb1fe36568320f27cb0287/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d626c75653f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074"&gt;&lt;img src="https://camo.githubusercontent.com/c96e50abb90dd62c8c9766032bddac2e87424bee47cb1fe36568320f27cb0287/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352d626c75653f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074" alt="TypeScript"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/fbbac61d83a1baa6523621cc5d947f5467061c7f4ddb82de31eb8b1f1012d218/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d342d3338423241433f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e642d637373"&gt;&lt;img src="https://camo.githubusercontent.com/fbbac61d83a1baa6523621cc5d947f5467061c7f4ddb82de31eb8b1f1012d218/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642d342d3338423241433f7374796c653d666c61742d737175617265266c6f676f3d7461696c77696e642d637373" alt="Tailwind"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265" alt="License"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0b35eeb41a4ae1df46af65a354833db0a3597c2a85a633c662e57674fbf2f55b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/0b35eeb41a4ae1df46af65a354833db0a3597c2a85a633c662e57674fbf2f55b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c" alt="Stars"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2eb967a6467d7b91a78b47f600d89433702994f6cfade4eba009dcb601f38e38/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c"&gt;&lt;img src="https://camo.githubusercontent.com/2eb967a6467d7b91a78b47f600d89433702994f6cfade4eba009dcb601f38e38/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f667261636162752f4167656e742d5061794d696e643f7374796c653d736f6369616c" alt="Forks"&gt;&lt;/a&gt;
&lt;/p&gt;



&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853423-2b7dfc20-8fc5-45ad-9eb0-13ba9422d060.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDIzLTJiN2RmYzIwLThmYzUtNDVhZC05ZWIwLTEzYmE5NDIyZDA2MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lNzVhMjIyY2E4YTQzMmY2MjA5OTc5NDBiZWNjM2NlOTFkZTc0ZDg4ZGI2ZTU3ZGRkMmY3ZDczZjFiZDlkNWM2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.LCWMINqzTSRZZSPWLJipgybxCTUS5VeHm2EYweUsxBg"&gt;&lt;img width="1600" height="739" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853423-2b7dfc20-8fc5-45ad-9eb0-13ba9422d060.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDIzLTJiN2RmYzIwLThmYzUtNDVhZC05ZWIwLTEzYmE5NDIyZDA2MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lNzVhMjIyY2E4YTQzMmY2MjA5OTc5NDBiZWNjM2NlOTFkZTc0ZDg4ZGI2ZTU3ZGRkMmY3ZDczZjFiZDlkNWM2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.LCWMINqzTSRZZSPWLJipgybxCTUS5VeHm2EYweUsxBg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853491-058691c0-11e3-47db-a561-77d0c51776ea.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDkxLTA1ODY5MWMwLTExZTMtNDdkYi1hNTYxLTc3ZDBjNTE3NzZlYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yMWFmNWNjNzUwNTE3NWE3ZmQwMTk4ODY4ZWE5NTgzYzVmZDQ1NzBmYmYwZmEzZTI0YzBhZThkOWMzOTBhODI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.VCKmcVTx5dbLGJO6gYGWxZzhwPxjUFrPF6ZlP8cQCEE"&gt;&lt;img width="1600" height="740" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853491-058691c0-11e3-47db-a561-77d0c51776ea.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNDkxLTA1ODY5MWMwLTExZTMtNDdkYi1hNTYxLTc3ZDBjNTE3NzZlYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yMWFmNWNjNzUwNTE3NWE3ZmQwMTk4ODY4ZWE5NTgzYzVmZDQ1NzBmYmYwZmEzZTI0YzBhZThkOWMzOTBhODI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.VCKmcVTx5dbLGJO6gYGWxZzhwPxjUFrPF6ZlP8cQCEE"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853599-f8afe620-42bc-4a94-999d-b285b2167238.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNTk5LWY4YWZlNjIwLTQyYmMtNGE5NC05OTlkLWIyODViMjE2NzIzOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wZDY5ZDI5MTUyNDBhYTZlNzkwYTI5MzYyMjQ4ZjU5MGU5ZjU0YWQxYjVkM2FiMzlmMTRjOGM3ZjA4ZmFkMmM5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2MHVg-DqTo56iuviA11Wsu8muPMVjD3gSIPX4w4IWeg"&gt;&lt;img width="1599" height="819" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853599-f8afe620-42bc-4a94-999d-b285b2167238.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNTk5LWY4YWZlNjIwLTQyYmMtNGE5NC05OTlkLWIyODViMjE2NzIzOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wZDY5ZDI5MTUyNDBhYTZlNzkwYTI5MzYyMjQ4ZjU5MGU5ZjU0YWQxYjVkM2FiMzlmMTRjOGM3ZjA4ZmFkMmM5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2MHVg-DqTo56iuviA11Wsu8muPMVjD3gSIPX4w4IWeg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/100199965/528853637-338a5554-2f47-4d90-81fa-7cd2e7ee1440.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNjM3LTMzOGE1NTU0LTJmNDctNGQ5MC04MWZhLTdjZDJlN2VlMTQ0MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMTczNDViZjc4NmI3ODBiNWM3NTc3OWY5MTlmMWVlODNiYmE3MzI2OTRhZTg4MjVjMGI2YmFkMjJjOThlNTA0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.vuu8DXC4AIxzfEkw2al3gbOXgQ0AWlsKf71WKTGtNic"&gt;&lt;img width="1600" height="740" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F100199965%2F528853637-338a5554-2f47-4d90-81fa-7cd2e7ee1440.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDE4MDksIm5iZiI6MTc3NDY0MTUwOSwicGF0aCI6Ii8xMDAxOTk5NjUvNTI4ODUzNjM3LTMzOGE1NTU0LTJmNDctNGQ5MC04MWZhLTdjZDJlN2VlMTQ0MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QxOTU4MjlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMTczNDViZjc4NmI3ODBiNWM3NTc3OWY5MTlmMWVlODNiYmE3MzI2OTRhZTg4MjVjMGI2YmFkMjJjOThlNTA0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.vuu8DXC4AIxzfEkw2al3gbOXgQ0AWlsKf71WKTGtNic"&gt;&lt;/a&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇮🇹 Italiano&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Panoramica&lt;/h3&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;PayMind&lt;/strong&gt; è un sistema intelligente di gestione automatica dei solleciti di pagamento basato su &lt;strong&gt;Agenti AI Claude Code&lt;/strong&gt;. Utilizza tre agenti specializzati che lavorano in team per analizzare fatture, generare messaggi personalizzati e gestire le risposte dei clienti.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✨ Caratteristiche&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;Funzionalità&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Descrizione&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🤖 &lt;strong&gt;3 Agenti AI Specializzati&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Team di agenti che collaborano per gestire l'intero workflow&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📊 &lt;strong&gt;Analisi Intelligente&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Identifica fatture scadute, calcola priorità e segmenta clienti&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📧 &lt;strong&gt;Multi-Canale&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Genera messaggi per Email, SMS e WhatsApp&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;💬 &lt;strong&gt;NLP Avanzato&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Analizza risposte con intent recognition e sentiment analysis&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🎨 &lt;strong&gt;Dashboard Moderna&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Interfaccia Next.js per visualizzare workflow in tempo reale&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🔌 &lt;strong&gt;Multi-Provider AI&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Supporta Anthropic, OpenAI, OpenRouter e Google Gemini&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🗄️ &lt;strong&gt;Database SQLite&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Persistenza dati con Prisma ORM&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🌙 &lt;strong&gt;Dark/Light Mode&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Toggle tra tema scuro e chiaro&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;🌍 &lt;strong&gt;Bilingue&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Supporto completo Italiano e Inglese&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;📊 &lt;strong&gt;Grafici Interattivi&lt;/strong&gt;&lt;br&gt;
&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Dashboard con&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fracabu/Agent-PayMind" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;





&lt;p&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/fracabu" rel="noopener noreferrer"&gt;
        fracabu
      &lt;/a&gt; / &lt;a href="https://github.com/fracabu/tube-forge-agents-team" rel="noopener noreferrer"&gt;
        tube-forge-agents-team
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Multi-agent AI system for YouTube content production. 6 specialized Claude Code agents automate the entire video pipeline from market research to publishing.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;TubeForge Agents Team&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;AI-Powered YouTube Content Production Pipeline&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;
  &lt;em&gt;Multi-agent system for automated video content creation&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0e41fed0223112b79d32e9d193d5d6a11e17f51d0a6f14f2d34f892ed3271f3b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564655f436f64652d4167656e74732d3842354346363f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963"&gt;&lt;img src="https://camo.githubusercontent.com/0e41fed0223112b79d32e9d193d5d6a11e17f51d0a6f14f2d34f892ed3271f3b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436c617564655f436f64652d4167656e74732d3842354346363f7374796c653d666c61742d737175617265266c6f676f3d616e7468726f706963" alt="Claude Code"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8ba548ed8bbadd47eff079187e3498b0bb71d08c895fcc7729abd799b2fd3c59/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41495f566964656f2d4b6c696e675f7c5f536f72615f7c5f52756e7761792d4646364236423f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/8ba548ed8bbadd47eff079187e3498b0bb71d08c895fcc7729abd799b2fd3c59/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41495f566964656f2d4b6c696e675f7c5f536f72615f7c5f52756e7761792d4646364236423f7374796c653d666c61742d737175617265" alt="AI Video"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ca7a78061a00aad138bd9b54e2eeb831d613731c12a7514678adcf4eb2fc51b6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6f7465626f6f6b4c4d2d417564696f2d3432383546343f7374796c653d666c61742d737175617265266c6f676f3d676f6f676c65"&gt;&lt;img src="https://camo.githubusercontent.com/ca7a78061a00aad138bd9b54e2eeb831d613731c12a7514678adcf4eb2fc51b6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6f7465626f6f6b4c4d2d417564696f2d3432383546343f7374796c653d666c61742d737175617265266c6f676f3d676f6f676c65" alt="NotebookLM"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/aa0a465c98bfd9df6a6598dbc22a21d9ecc38b3d9b304374dbcc3313275562c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461726765742d536d616c6c5f427573696e6573732d3130423938313f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/aa0a465c98bfd9df6a6598dbc22a21d9ecc38b3d9b304374dbcc3313275562c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461726765742d536d616c6c5f427573696e6573732d3130423938313f7374796c653d666c61742d737175617265" alt="Target"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  🇬🇧 &lt;a href="https://github.com/fracabu/tube-forge-agents-team#english" rel="noopener noreferrer"&gt;English&lt;/a&gt; | 🇮🇹 &lt;a href="https://github.com/fracabu/tube-forge-agents-team#italiano" rel="noopener noreferrer"&gt;Italiano&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Agent Architecture&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/fracabu/tube-forge-agents-team/docs/assets/agent-architecture.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ffracabu%2Ftube-forge-agents-team%2Fdocs%2Fassets%2Fagent-architecture.png" alt="Agent Architecture Hierarchy" width="700"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Tech Stack&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/fracabu/tube-forge-agents-team/docs/assets/tech-stack.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Ffracabu%2Ftube-forge-agents-team%2Fdocs%2Fassets%2Ftech-stack.png" alt="Tech Stack" width="500"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇬🇧 English&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Overview&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;TubeForge is a &lt;strong&gt;multi-agent orchestration system&lt;/strong&gt; built with Claude Code that automates the entire YouTube video production pipeline. It coordinates 6 specialized AI agents to produce high-quality content for Italian small business owners interested in AI automation.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Features&lt;/h3&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sequential agent pipeline&lt;/strong&gt; - Each agent reads prior outputs and produces standardized files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured asset generation&lt;/strong&gt; - 10 numbered files per video (scripts, prompts, metadata, checklists)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilingual support&lt;/strong&gt; - Italian primary content, English metadata&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market-validated niche&lt;/strong&gt; - AI automation for small businesses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complete workflow&lt;/strong&gt; - From research to publishing&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Target Audience&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Italian small business owners (28-55 years) seeking practical AI automation solutions. Content is expert, ROI-focused, with 12-15 minute tutorial format.&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇮🇹 Italiano&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Panoramica&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;TubeForge e un &lt;strong&gt;sistema di orchestrazione multi-agente&lt;/strong&gt; costruito con Claude Code…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fracabu/tube-forge-agents-team" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;





&lt;p&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/fracabu" rel="noopener noreferrer"&gt;
        fracabu
      &lt;/a&gt; / &lt;a href="https://github.com/fracabu/sellsnap" rel="noopener noreferrer"&gt;
        sellsnap
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      SellSnap is an AI-powered web application that provides instant, professional appraisals for second-hand items, including price, description, and pre-filled data for selling platforms.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SellSnap&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;AI-Powered Second-Hand Appraisal&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;
  &lt;em&gt;Instant valuations for used items with Gemini AI&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/cb89c1be9ffc064dd34acff3f2d555dc57f1dc36873e05c3ae6e53c8a7e1bb3a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146423f7374796c653d666c61742d737175617265266c6f676f3d7265616374266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/cb89c1be9ffc064dd34acff3f2d555dc57f1dc36873e05c3ae6e53c8a7e1bb3a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146423f7374796c653d666c61742d737175617265266c6f676f3d7265616374266c6f676f436f6c6f723d7768697465" alt="React"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/54c8340a38a818e7c5bcfb6056d8b0f8b6540758b9736fa554cf88747425ef44/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47656d696e695f41492d3432383546343f7374796c653d666c61742d737175617265266c6f676f3d676f6f676c65266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/54c8340a38a818e7c5bcfb6056d8b0f8b6540758b9736fa554cf88747425ef44/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47656d696e695f41492d3432383546343f7374796c653d666c61742d737175617265266c6f676f3d676f6f676c65266c6f676f436f6c6f723d7768697465" alt="Gemini"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0ceda91ee3a384aaedef3b598deba40a11a65a82ae21e2f59e86a0deaed0431e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d3030374143433f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/0ceda91ee3a384aaedef3b598deba40a11a65a82ae21e2f59e86a0deaed0431e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d3030374143433f7374796c653d666c61742d737175617265266c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465" alt="TypeScript"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  🇬🇧 &lt;a href="https://github.com/fracabu/sellsnap#english" rel="noopener noreferrer"&gt;English&lt;/a&gt; | 🇮🇹 &lt;a href="https://github.com/fracabu/sellsnap#italiano" rel="noopener noreferrer"&gt;Italiano&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇬🇧 English&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Overview&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;A web application using AI to provide instant appraisals for second-hand items. Snap a photo, get a professional valuation with description, price, and ready-to-sell fields for Vinted, eBay, Subito.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Features&lt;/h3&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Category AI Analysis&lt;/strong&gt; - Antiques, furniture, electronics, fashion, music, watches, jewelry&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price Estimation&lt;/strong&gt; - Market research and comparisons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authenticity Checks&lt;/strong&gt; - Counterfeit and legal risk detection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Platform Fields&lt;/strong&gt; - Pre-filled for Vinted, eBay, Subito&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Chat&lt;/strong&gt; - Follow-up questions on appraisals&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Categories&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Antiques, Furniture, Art, Electronics, Fashion, Musical Instruments, Books, Vinyl, Watches, Jewelry, Tools&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Quick Start&lt;/h3&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/fracabu/sellsnap.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; sellsnap
npm install

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Create .env.local&lt;/span&gt;
GEMINI_API_KEY=your_key

npm run dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Access at &lt;code&gt;http://localhost:5173&lt;/code&gt;&lt;/p&gt;


&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🇮🇹 Italiano&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Panoramica&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;Un'applicazione web che usa l'AI per fornire perizie istantanee di oggetti usati. Scatta una foto, ottieni valutazione professionale con descrizione, prezzo e campi pronti…&lt;/p&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/fracabu/sellsnap" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;





&lt;p&gt;These projects aren't just code; they're my proving ground, my way of understanding and pushing the boundaries of what AI can do when orchestrated effectively.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Real-World Apps: From Idea to Production
&lt;/h2&gt;

&lt;p&gt;Beyond npm packages and AI agents, I've shipped &lt;strong&gt;35+ web applications&lt;/strong&gt; to production. Here are some highlights:&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Powered Tools
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Try it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remember Me&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Voice recordings → structured reminders (Gemini AI)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://remember-me-pi.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SEO Analyzer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;On-page SEO analysis powered by Gemini&lt;/td&gt;
&lt;td&gt;&lt;a href="https://seo-analyzer-two.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Promptify&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Explore 28 Prompt Engineering frameworks&lt;/td&gt;
&lt;td&gt;&lt;a href="https://promptify-vue.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SellSnap&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI instant appraisals for second-hand items&lt;/td&gt;
&lt;td&gt;&lt;a href="https://sellsnap.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GitHub Repo Describer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Auto-generate repo descriptions&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github-repo-describer.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prompt Craft&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generate structured C.R.A.F.T. prompts&lt;/td&gt;
&lt;td&gt;&lt;a href="https://generatore-di-prompt-craft.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🏠 Hospitality Tech (Solving Real Problems in Rome)
&lt;/h3&gt;

&lt;p&gt;Living in Rome, I noticed gaps in the vacation rental industry. So I built tools to solve them:&lt;/p&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;Problem Solved&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://overbooking-shield-tool.vercel.app" rel="noopener noreferrer"&gt;Overbooking Shield&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prevents double bookings via iCal analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://host-reservation-panel.vercel.app" rel="noopener noreferrer"&gt;Host Reservation Panel&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI assistant for Airbnb/Booking hosts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://tassa-soggiorno-calculator.vercel.app" rel="noopener noreferrer"&gt;Tassa Soggiorno&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Auto-calculates Rome's tourist tax&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each started as a problem I wanted to solve, built with the "learn by building" approach.&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Open Source: Fastify Plugins
&lt;/h2&gt;

&lt;p&gt;Another crucial part of my journey has been &lt;strong&gt;building in public&lt;/strong&gt;. My npm packages for the Fastify ecosystem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;View all 7 npm packages&lt;/strong&gt;&lt;/p&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/fracabu"&gt;@fracabu&lt;/a&gt;/fastify-api-key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;API key authentication with scopes&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/@fracabu/fastify-api-key" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;fastify-rfc9457&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;RFC 9457 compliant error responses&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/fastify-rfc9457" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;fastify-cache-control&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Declarative HTTP Cache-Control headers&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/fastify-cache-control" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;fastify-webhook-verify&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Webhook signature verification (Stripe, GitHub)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/fastify-webhook-verify" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;fastify-i18n-plugin&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Internationalization for Fastify&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/fastify-i18n-plugin" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/fracabu"&gt;@fracabu&lt;/a&gt;/env-checkup&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Environment variable validation CLI&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/@fracabu/env-checkup" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;node-test-expect&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Jest-like assertions for Node.js native test runner&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/node-test-expect" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Creating and maintaining these packages taught me the full lifecycle of production-ready tools. It's rewarding to know other developers are using what I've built.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Advice for Fellow Self-Taught Developers
&lt;/h2&gt;

&lt;p&gt;If my story resonates with you, here are a few takeaways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Embrace Curiosity&lt;/strong&gt; — It's your most powerful asset&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build, Build, Build&lt;/strong&gt; — Practical application beats theory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leverage AI Smartly&lt;/strong&gt; — Use it as a mentor, not a replacement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dive into Documentation&lt;/strong&gt; — Your most accurate textbook&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share Your Work&lt;/strong&gt; — Building in public leads to opportunities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solve Real Problems&lt;/strong&gt; — The best projects scratch your own itch&lt;/li&gt;
&lt;/ol&gt;




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

&lt;p&gt;My journey is far from over. Currently diving deeper into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔄 Multi-agent orchestration patterns&lt;/li&gt;
&lt;li&gt;🐍 Machine Learning with Python&lt;/li&gt;
&lt;li&gt;🌍 Contributing to larger open-source projects&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Let's Connect!
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🐙 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/fracabu" rel="noopener noreferrer"&gt;@fracabu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;npm:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/~fracabu" rel="noopener noreferrer"&gt;fracabu packages&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💼 &lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/francesco-~-capurso-5801031a9/" rel="noopener noreferrer"&gt;Francesco Capurso&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What's your unique journey in tech?&lt;/strong&gt; Whether you're self-taught, career-switching, or just getting started — drop a comment. I'd love to connect!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you found this inspiring, consider giving it a ❤️ and following for more content on AI agents, open-source development, and the self-taught developer life.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>motivation</category>
    </item>
  </channel>
</rss>
