<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Chad Dyar</title>
    <description>The latest articles on DEV Community by Chad Dyar (@chadtdyar).</description>
    <link>https://dev.to/chadtdyar</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3811599%2F0adb0b4b-5659-4c7c-8f09-49347539478f.jpg</url>
      <title>DEV Community: Chad Dyar</title>
      <link>https://dev.to/chadtdyar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chadtdyar"/>
    <language>en</language>
    <item>
      <title>I Found 799 Files in My Google Drive Root. Here's What I Built So It Never Happens Again.</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Sun, 21 Jun 2026 20:00:02 +0000</pubDate>
      <link>https://dev.to/chadtdyar/i-found-799-files-in-my-google-drive-root-heres-what-i-built-so-it-never-happens-again-44j9</link>
      <guid>https://dev.to/chadtdyar/i-found-799-files-in-my-google-drive-root-heres-what-i-built-so-it-never-happens-again-44j9</guid>
      <description>&lt;p&gt;I opened Google Drive on a Tuesday afternoon looking for one file. I found everything.&lt;/p&gt;

&lt;p&gt;799 files sitting in the root folder. Thirteen years of daily output with no taxonomy, no system, no filing logic. Just the accumulated evidence of creating fast and never pausing to organize what I'd built.&lt;/p&gt;

&lt;p&gt;Here's the inventory of what was actually there: sales enablement frameworks built for corporate clients, draft chapters from 17 books (6 published while I held a senior enablement role full-time), app audit logs from the early builds of what became Autonomous Revenue Labs, consulting invoices going back to 2013, cover letters from career transitions, AI training decks I built for internal sessions, and daily writing sessions that didn't become anything.&lt;/p&gt;

&lt;p&gt;All of it, flat. One folder. One pile.&lt;/p&gt;

&lt;p&gt;The cleanup&lt;/p&gt;

&lt;p&gt;The manual sort took two hours. I created a folder structure that matched how I actually work now, not how I assumed I'd work in 2013, and moved everything to its correct location.&lt;/p&gt;

&lt;p&gt;The more interesting decision was what I built after.&lt;/p&gt;

&lt;p&gt;The real problem with 799 files in root isn't disorganization. It's that I'd built no system for routing output as it was created. The pile is the result of a decade of creating fast, publishing consistently, and treating filing as a problem to solve later.&lt;/p&gt;

&lt;p&gt;The solution to "later" is automation.&lt;/p&gt;

&lt;p&gt;What I built&lt;/p&gt;

&lt;p&gt;I already run a content engine that publishes across 40+ platforms from a Supabase pipeline. The marketing_queue table routes content to Comet, which handles distribution to Mastodon, Pinterest, Medium, Substack, and the rest. The same logic scales to file routing.&lt;/p&gt;

&lt;p&gt;For the Drive problem: a classification script (Python, about 120 lines) that reads file names and modification dates, infers content type (enablement doc, book draft, app log, personal writing), and moves to the correct Drive folder. A weekly cron job that checks root for files older than 7 days and routes them. A Supabase log table (file_routing_log) that records every move for audit.&lt;/p&gt;

&lt;p&gt;Build time: 3 hours. It will run indefinitely.&lt;/p&gt;

&lt;p&gt;Failure modes I hit during testing: files with no modification metadata got routed to a catch-all folder instead of classified correctly. Files with ambiguous names ("notes.doc", "draft.txt") required a content-inspection fallback. Google Workspace files don't have the same metadata structure as uploaded files, so they needed a separate handler.&lt;/p&gt;

&lt;p&gt;Current state: handles about 90% of cases automatically. The remaining 10% goes to a review queue in Supabase for manual routing once a week.&lt;/p&gt;

&lt;p&gt;The actual lesson&lt;/p&gt;

&lt;p&gt;799 files was proof of output. The pile accumulated because I was creating. The problem was the capture layer, not the creation rate.&lt;/p&gt;

&lt;p&gt;Most productivity advice targets creation habits. Write every day. Ship consistently. Build in public. All correct. What breaks down at scale isn't the creating. It's the organizing.&lt;/p&gt;

&lt;p&gt;The system you build to handle your output after you create it is as important as the habits that produce the output in the first place.&lt;/p&gt;

&lt;p&gt;I built ContentForge for the same reason. Reformatting content across 8 platforms was eating the time I should have been using to create more. The solution was automating the reformatting.&lt;/p&gt;

&lt;p&gt;Build the system. Create faster. Let the system handle the pile.&lt;/p&gt;

&lt;p&gt;What I'd do differently&lt;/p&gt;

&lt;p&gt;Build the routing layer on day one of any creative system. Every time. The cleanup cost two hours. Building the router after the fact cost three. Building it at the start would have cost thirty minutes.&lt;/p&gt;

&lt;p&gt;The pile is a symptom of the right problem: high output. The fix is infrastructure.&lt;/p&gt;

&lt;p&gt;What's next&lt;/p&gt;

&lt;p&gt;The content-inspection fallback needs improvement. Currently doing simple keyword matching on file content for ambiguous files. Moving to a lightweight classifier trained on my actual content types. If I get classification accuracy above 95%, I'll open-source the script.&lt;/p&gt;

&lt;p&gt;If you're sitting on a similar pile: the root cause is almost always the same. You've been creating. You just need infrastructure to handle what you've built.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Four App Store rejections and what they taught</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Sun, 21 Jun 2026 20:00:02 +0000</pubDate>
      <link>https://dev.to/chadtdyar/four-app-store-rejections-and-what-they-taught-o5d</link>
      <guid>https://dev.to/chadtdyar/four-app-store-rejections-and-what-they-taught-o5d</guid>
      <description>&lt;p&gt;Four App Store rejections and what they taught about shipping. Seed: the specific lessons from each rejection and how they changed the build process.&lt;/p&gt;

&lt;p&gt;[AUTO-DOWNGRADED TO PENDING: content validation failed — body too short (149 chars, minimum 200). Write real content and set status to ready manually.]&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>The Puppy Training Spreadsheet I Built at 2am (And Why It Actually Works)</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Sun, 21 Jun 2026 16:00:04 +0000</pubDate>
      <link>https://dev.to/chadtdyar/the-puppy-training-spreadsheet-i-built-at-2am-and-why-it-actually-works-4kb6</link>
      <guid>https://dev.to/chadtdyar/the-puppy-training-spreadsheet-i-built-at-2am-and-why-it-actually-works-4kb6</guid>
      <description>&lt;p&gt;Maya Rudolph turned one last week, and I found myself scrolling through photos from her first month home. There's one of her at eight weeks, sound asleep in a laundry basket. There's another of Tony holding her while she screamed bloody murder during her first bath. And there's a screenshot I took of a frantic Google search: "is it normal for puppy to hate me."&lt;/p&gt;

&lt;p&gt;Summer adoptions spike every year. Shelters know it. Veterinarians brace for it. And about six weeks later, the training panic sets in. The problem isn't commitment or love. It's consistency across humans. When I'm saying "off" and Tony's saying "down" and our dog walker is using hand signals, we're not training a dog. We're confusing one.&lt;/p&gt;

&lt;p&gt;I built a shared Notion database after the first week of chaos. Nothing fancy. Five columns: Command, Exact Word We Use, Hand Signal (if any), Treat Protocol, and Who's Consistent. We added our dog walker as a collaborator. It took fifteen minutes to set up and it saved us months of undoing mixed messages.&lt;/p&gt;

&lt;p&gt;The structure matters less than the agreement. Some people use a shared Google Doc. Others pin a lamout sheet to the fridge. The trainer we worked with suggested Trello because you can add video clips of the correct technique. Pick whatever you'll actually update.&lt;/p&gt;

&lt;p&gt;Here's what goes in ours: "Sit" means butt on ground, hand signal is closed fist moving up, treat immediately during learning phase, then intermittent reinforcement after two weeks of consistency. "Off" means all four paws on the floor (we don't use "down" for that because "down" means lie flat). "Place" means go to your bed and stay there. Every person who interacts with the dog regularly has access.&lt;/p&gt;

&lt;p&gt;The Lean Six Sigma person in me wants to call this "process documentation." The realistic dog owner in me calls it "the thing that keeps us from yelling different words at a confused animal." Same outcome, less jargon.&lt;/p&gt;

&lt;p&gt;We added a notes column later. That's where we track what's working and what needs adjustment. Turns out Maya responds better to a clicker than verbal praise during active training. Wick could not care less about the clicker but will do absolutely anything for freeze-dried liver. Benny just wants everyone to be happy and will sit seventeen times in a row if you forget you already asked.&lt;/p&gt;

&lt;p&gt;Build the system before you need it. Your dog won't care about your methodology. But everyone involved will stop undermining each other by accident.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>The Algorithm Ate My Tomatoes: What June Harvests Taught Me About Content Distribution</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Sun, 21 Jun 2026 16:00:03 +0000</pubDate>
      <link>https://dev.to/chadtdyar/the-algorithm-ate-my-tomatoes-what-june-harvests-taught-me-about-content-distribution-57j2</link>
      <guid>https://dev.to/chadtdyar/the-algorithm-ate-my-tomatoes-what-june-harvests-taught-me-about-content-distribution-57j2</guid>
      <description>&lt;p&gt;My partner Tony walked into the kitchen yesterday holding a colander overflowing with Cherokee Purples and Brandywines. "We have a problem," he said. The tomato plants had done exactly what we wanted them to do. We just hadn't planned for what happens after success.&lt;/p&gt;

&lt;p&gt;This is the week every backyard gardener in the Northern Hemisphere faces the same abundance crisis. Search trends for "what to do with too many tomatoes" spike every June like clockwork. Meanwhile, half the posts I'm seeing from thoughtful creators on LinkedIn are getting buried under algorithm shifts that favor... well, whatever the opposite of a home-grown tomato is.&lt;/p&gt;

&lt;p&gt;The connection isn't obvious until you've been on both sides of a distribution problem. When you grow something real, whether it's Cherokee Purples or a piece of writing that took you three weeks to refine, you assume the hard part is over. You made the thing. But making it and getting it to the people who need it are completely different challenges.&lt;/p&gt;

&lt;p&gt;I spent twenty years in sales enablement before shifting to literary operations. The pattern holds across industries. You can build the best product demo, the most useful documentation, or the most helpful children's book about processing grief (like my current project, &lt;em&gt;The Wiggles, the Woofs, and the Why&lt;/em&gt;), but if your distribution strategy is "post and hope," you're counting on an algorithm that doesn't care about your tomatoes.&lt;/p&gt;

&lt;p&gt;Here's what actually works, whether you're a gardener with a harvest problem or a creator trying to reach parents searching for social-emotional learning resources: diversification and direct relationships. Tony and I don't just plant tomatoes and wait. We have a preservation plan, neighbor relationships, and a standing arrangement with TechCommuters' community garden network. Same principle applies to content. One platform, one algorithm change, and your reach disappears.&lt;/p&gt;

&lt;p&gt;The practical solution isn't complicated. It's just unfashionable. Email lists. RSS feeds. Direct messages to people who've expressed interest. Cross-posting to platforms with different discovery mechanisms like Dev.to, Hashnode, or Medium. Building on your own domain. The same reason we make tomato sauce, salsa, and sun-dried preserves is the same reason I publish the same core message across multiple channels. Different formats, different platforms, different timelines for when someone needs what you made.&lt;/p&gt;

&lt;p&gt;Your harvest will rot if you only have one basket.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I Built a Diagnostic Tool to Solve the Problem Every No-Code Platform Skips</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Sat, 20 Jun 2026 16:00:02 +0000</pubDate>
      <link>https://dev.to/chadtdyar/i-built-a-diagnostic-tool-to-solve-the-problem-every-no-code-platform-skips-1f2k</link>
      <guid>https://dev.to/chadtdyar/i-built-a-diagnostic-tool-to-solve-the-problem-every-no-code-platform-skips-1f2k</guid>
      <description>&lt;p&gt;Six apps live on Vercel. Seventeen books on Amazon. An AI agent network running autonomously. I built all of it. And the thing I couldn't find anywhere was help with the problem that comes before the build.&lt;/p&gt;

&lt;p&gt;The build tools are excellent. React, Vite, Supabase, Stripe: I use these daily. They are great at building what you tell them to build. The problem they don't solve: most people don't know what to build. Or they think they do and build the wrong thing. Or they build the right thing and price it wrong. I spent eighteen months on that part.&lt;/p&gt;

&lt;p&gt;PIQUE is a two-stage assessment on React 19 / Vite 8 / TypeScript / Supabase. Stage one is a five-question screener. Stage two is fifteen questions across six dimensions. Output: four-archetype scoring engine returning archetype, dimension scores, personalized build sequence, first move. Supabase captures everything. Resend handles welcome email. ConvertKit runs four segmented nurture sequences by archetype.&lt;/p&gt;

&lt;p&gt;Architecture decision worth sharing: solve the upstream problem first. What comes before the build is figuring out what the expertise is worth, who will pay for it, and which systems to stand up first. PIQUE lives entirely in that upstream space.&lt;/p&gt;

&lt;p&gt;Stack: React 19 / Vite 8 / TypeScript / Tailwind / Supabase / Vercel / Resend / Stripe / Claude API&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Why Building With AI Is a Disposition Problem, Not a Skill Problem</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Fri, 19 Jun 2026 04:00:05 +0000</pubDate>
      <link>https://dev.to/chadtdyar/why-building-with-ai-is-a-disposition-problem-not-a-skill-problem-5c64</link>
      <guid>https://dev.to/chadtdyar/why-building-with-ai-is-a-disposition-problem-not-a-skill-problem-5c64</guid>
      <description>&lt;p&gt;Here's the thing nobody told me when I started building with AI seriously: the bottleneck was never technical.&lt;/p&gt;

&lt;p&gt;I've shipped real apps — real backends, real subscriptions, real users. I built a memory layer that persists decisions across sessions. A supervision system that runs twenty automated checks on a schedule. A nine-agent team that builds, tests, ships, and logs its own mistakes. More than 2,000 agent sessions ran last year, most while I was asleep.&lt;/p&gt;

&lt;p&gt;None of that required me to be a better engineer than I was when I started. It required a different set of dispositions.&lt;/p&gt;

&lt;p&gt;When plain language became the primary interface, the old technical gate fell. What got left standing was how you think, not what you can build.&lt;/p&gt;

&lt;p&gt;Six things separate real AI leverage from noise:&lt;/p&gt;

&lt;p&gt;Comfort with unfinished thinking — You have to be willing to bring half-formed problems, not just clean specs. The messy middle is where AI is most useful as a thinking partner.&lt;/p&gt;

&lt;p&gt;High tolerance for being wrong, quickly — A wrong output is fast, cheap signal. Treat the first output as a hypothesis. One of my agents once invented a nonexistent dog and tried to publish it. The system caught it. That's the method.&lt;/p&gt;

&lt;p&gt;The ability to hold the wheel — AI fills silence. If you're passive, you go wherever it takes you. Knowing what you want and redirecting when output drifts is judgment, not prompting.&lt;/p&gt;

&lt;p&gt;Domain depth in at least one area — Generalists get generic outputs because they can't judge what came back. Depth in one domain — any domain — gives you the ability to steer. It transfers across adjacent areas.&lt;/p&gt;

&lt;p&gt;A bias toward synthesis over search — Search gets you an answer. Synthesis gets you the thing you didn't know to look for. Connecting across your own work over time is where the compounding starts.&lt;/p&gt;

&lt;p&gt;The willingness to be surprised — The best outcomes I've gotten weren't the ones I planned for. Build the thing, then pay attention to what it actually does.&lt;/p&gt;

&lt;p&gt;Notice what's missing from that list: technical skill, language choice, output speed. Those are outputs.&lt;/p&gt;

&lt;p&gt;The curve accelerates because the work compounds in three directions simultaneously: each build lowers the cost of the next, the dispositions sharpen with use, and eventually the systems start helping you build the next system.&lt;/p&gt;

&lt;p&gt;That's when it stops being a line.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I run a nine-seat AI agent operating model by myself.</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Thu, 18 Jun 2026 23:17:54 +0000</pubDate>
      <link>https://dev.to/chadtdyar/i-run-a-nine-seat-ai-agent-operating-model-by-myself-37bi</link>
      <guid>https://dev.to/chadtdyar/i-run-a-nine-seat-ai-agent-operating-model-by-myself-37bi</guid>
      <description>&lt;p&gt;I run a nine-seat AI agent operating model by myself.&lt;/p&gt;

&lt;p&gt;Not a team. One person. The seats are: Chief (routing), Analyst (patterns), Builder (app-layer code), Cortex (database and backend), Sub (App Store submissions), Ledger (subscriptions and revenue), Forma (design review), Vera (verification), and Luxe (synthetic user testing).&lt;/p&gt;

&lt;p&gt;Each seat has a scope, a job, and a veto condition. The memory layer is thirty-two files, six Supabase tables, four edge functions, and scheduled jobs that ingest and sync across the stack. Every agent session reads the full history before it touches anything.&lt;/p&gt;

&lt;p&gt;Two thousand sessions a year. Most while I'm asleep.&lt;/p&gt;

&lt;p&gt;Here's what a year of running this taught me about building agent systems:&lt;/p&gt;

&lt;p&gt;The thing that builds is biased toward declaring itself done. Ask the same agent to verify its own output and it will tell you it succeeded. Every time. With confidence. Because confidence is cheaper than re-checking. Vera is a separate agent with authority to stop the line. She has caught regressions the builder swore were fixed.&lt;/p&gt;

&lt;p&gt;The scaffold lies to you. Generated scaffolding for my iOS projects shipped wrong architecture, wrong permission strings, and on two different apps didn't commit the platform folder to git at all. Pre-archive checklists now run every time. No exceptions.&lt;/p&gt;

&lt;p&gt;Build to a contract, not to a tool. Every source in my asset engine plugs into an adapter contract. The engine doesn't know or care what it's talking to. Swap the model, keep the contract. Nothing downstream notices.&lt;/p&gt;

&lt;p&gt;Memory in the database, not the model. The context window forgets everything on session end. I keep twelve recurring failure patterns codified with their fixes attached. A problem I've solved once can't re-run on me.&lt;/p&gt;

&lt;p&gt;Self-improving loops drift unless you score them. Every optimization loop produces output scored against a threshold. Anything below it gets killed. Autonomy without a kill switch is confident drift at scale.&lt;/p&gt;

&lt;p&gt;The thing I keep coming back to: the natural-language interface keeps getting easier. What stays hard is the wiring underneath. The contracts between components. The judgment about whether what came back is any good. The structure that keeps your judgment load-bearing instead of optional.&lt;/p&gt;

&lt;p&gt;Happy to share more about the architecture if anyone's building something similar.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment: MCP Server for Content Publishing</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Thu, 18 Jun 2026 21:10:42 +0000</pubDate>
      <link>https://dev.to/chadtdyar/comment-mcp-server-for-content-publishing-6i9</link>
      <guid>https://dev.to/chadtdyar/comment-mcp-server-for-content-publishing-6i9</guid>
      <description>&lt;p&gt;The per-platform field handling problem is where this gets painful in practice. I publish across LinkedIn, Dev.to, email (Kit), and YouTube from a single content pipeline, and the formatting divergence is constant. LinkedIn wants short paragraphs with line breaks. Dev.to expects frontmatter and markdown. Email needs inline HTML with template wrappers. YouTube descriptions have their own character limits and link formatting.&lt;/p&gt;

&lt;p&gt;An MCP server that abstracts that away would save me real time. The question I'd push on: does the server own the canonical format, or does each platform adapter? Because if the server tries to be format-neutral, you just move the complexity downstream.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Comment: I Run My Entire SaaS Solo Using 7 AI Agents</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Thu, 18 Jun 2026 21:10:01 +0000</pubDate>
      <link>https://dev.to/chadtdyar/comment-i-run-my-entire-saas-solo-using-7-ai-agents-jk1</link>
      <guid>https://dev.to/chadtdyar/comment-i-run-my-entire-saas-solo-using-7-ai-agents-jk1</guid>
      <description>&lt;p&gt;The part that surprised me running a similar setup (monitoring agent, browser distribution agent, per-channel content agents across LinkedIn, email, YouTube, blog, community) is that the bottleneck doesn't disappear. It relocates. Before agents, most of my time went to doing. Now most of it goes to deciding. Which draft is worth publishing, which engagement signal is a real person vs. bot noise, which channel deserves more allocation this week.&lt;/p&gt;

&lt;p&gt;The orchestration layer between agents matters more than any single agent's capability. I ended up building a handoff protocol so one agent's output becomes another's input without me copy-pasting between them. That connective tissue is where the real operational gain lives.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Comment: Claude and React Chatbot Security Fix</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Thu, 18 Jun 2026 21:09:24 +0000</pubDate>
      <link>https://dev.to/chadtdyar/comment-claude-and-react-chatbot-security-fix-1l73</link>
      <guid>https://dev.to/chadtdyar/comment-claude-and-react-chatbot-security-fix-1l73</guid>
      <description>&lt;p&gt;Good walkthrough for getting started. One flag worth raising: the dangerouslyAllowBrowser: true option exposes your Anthropic API key in the client bundle. Anyone who opens dev tools can grab it and run up your bill.&lt;/p&gt;

&lt;p&gt;The production pattern is a thin Express proxy. Your React frontend hits /api/chat instead of the Anthropic API directly. Key stays server-side, you can add rate limiting, and it costs about 10 extra lines of code. I built a chatbot widget this way (React + Express + Claude API) and it's been solid in production.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>I Built a Content System That Runs While I Coach</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Thu, 18 Jun 2026 21:09:23 +0000</pubDate>
      <link>https://dev.to/chadtdyar/i-built-a-content-system-that-runs-while-i-coach-43lk</link>
      <guid>https://dev.to/chadtdyar/i-built-a-content-system-that-runs-while-i-coach-43lk</guid>
      <description>&lt;p&gt;Last week my content pipeline published to nine platforms while I ran two coaching sessions, walked three dogs, and went to bed at a normal time.&lt;/p&gt;

&lt;p&gt;This is not a flex. It is a description of what I was trying to build when I started ContentForge, and why it is worth writing down now that it is working.&lt;/p&gt;

&lt;p&gt;The problem it solves: I publish across LinkedIn, Mastodon, Pinterest, Substack, Medium, Dev.to, IndieHackers, Quora, and a personal blog. I have 17 books that need regular promotion. I run six web apps. I hold a senior enablement role full-time. Manually writing platform-specific content was consuming three to four hours every week, inconsistently.&lt;/p&gt;

&lt;p&gt;ContentForge takes a single story and produces platform-appropriate versions for each channel. A LinkedIn post reads like a LinkedIn post. A Dev.to article has technical framing a Dev.to audience wants. A Pinterest pin has the SEO structure Pinterest requires.&lt;/p&gt;

&lt;p&gt;The technical reality: Vercel-hosted app with a Supabase backend. The AI generation takes a seed input, extracts the relevant elements (the feeling, the insight, the tension, the proof), and generates platform variants. Output goes into a marketing queue table in Supabase. A local Python process called Clawbot watches the queue and drives publication.&lt;/p&gt;

&lt;p&gt;AI generation happens at content creation time. Publication is async and does not require inference on the publish side. This keeps the publish process simple and the AI costs bounded.&lt;/p&gt;

&lt;p&gt;What I got wrong first: the initial version tried to generate from topics. The output was technically correct and completely lifeless. Topics are not seeds. Moments are seeds.&lt;/p&gt;

&lt;p&gt;The second version required a specific story as input. That changes everything about output quality.&lt;/p&gt;

&lt;p&gt;The third version, which runs now, extracts story elements before generating. The moment, the feeling, the insight, the proof, the tension. If you cannot name those elements, you do not have a seed yet.&lt;/p&gt;

&lt;p&gt;Numbers from this week: nine platform assets generated from one seed. Total active time on content: approximately 45 minutes reviewing before publish. Previous approach: three hours for the same volume, with worse platform-native quality.&lt;/p&gt;

&lt;p&gt;ContentForge is at contentforgehq.com. The queue architecture is straightforward. Happy to share more detail if useful.&lt;/p&gt;

</description>
      <category>pethealth</category>
      <category>dogowners</category>
      <category>pawformance</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Dev.to article: Three months running 6 apps. Here's what actually happened. Real distribution data — Quora drove real traffic, d</title>
      <dc:creator>Chad Dyar</dc:creator>
      <pubDate>Wed, 17 Jun 2026 16:25:21 +0000</pubDate>
      <link>https://dev.to/chadtdyar/devto-article-three-months-running-6-apps-heres-what-actually-happened-real-distribution-data-1ni3</link>
      <guid>https://dev.to/chadtdyar/devto-article-three-months-running-6-apps-heres-what-actually-happened-real-distribution-data-1ni3</guid>
      <description>&lt;p&gt;Dev.to article: Three months running 6 apps. Here's what actually happened. Real distribution data — Quora drove real traffic, directory submissions drove nothing, Show HN 0 comments. Momentum $7.99 MRR. Honest builder reflection. ~800 words.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
