<?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: Yonatan Gross</title>
    <description>The latest articles on DEV Community by Yonatan Gross (@yonaigross).</description>
    <link>https://dev.to/yonaigross</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%2F3819756%2Ff1220597-437f-4132-9de7-96c498250b9f.jpeg</url>
      <title>DEV Community: Yonatan Gross</title>
      <link>https://dev.to/yonaigross</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yonaigross"/>
    <language>en</language>
    <item>
      <title>Building an Automated Content Pipeline That Posts to 6 Platforms</title>
      <dc:creator>Yonatan Gross</dc:creator>
      <pubDate>Thu, 12 Mar 2026 10:32:21 +0000</pubDate>
      <link>https://dev.to/yonaigross/building-an-automated-content-pipeline-that-posts-to-6-platforms-h8a</link>
      <guid>https://dev.to/yonaigross/building-an-automated-content-pipeline-that-posts-to-6-platforms-h8a</guid>
      <description>&lt;p&gt;Every developer knows the pain: you write a great article, publish it on one platform, and then spend the next hour manually reformatting and posting it everywhere else.&lt;/p&gt;

&lt;p&gt;I built an automated content distribution pipeline that publishes to 6 platforms from a single source of truth. Here's how.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;Write once, distribute everywhere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hashnode&lt;/strong&gt; (source of truth)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev.to&lt;/strong&gt; (you're reading this here)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn&lt;/strong&gt; (article share + commentary)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Threads&lt;/strong&gt; (text teaser)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instagram&lt;/strong&gt; (card image + caption)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;daily.dev&lt;/strong&gt; (auto via RSS)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each platform gets a tailored variant — not a blind copy-paste.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Platform Adapter Pattern
&lt;/h2&gt;

&lt;p&gt;Each platform implements a common interface with a single &lt;code&gt;publish()&lt;/code&gt; method. Adding a new platform is just implementing one class. Rate limiting is Redis-backed per platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smart Content Composition
&lt;/h2&gt;

&lt;p&gt;The hardest part isn't the API calls — it's making content feel native. Twitter gets a 280-char hook. Threads gets a 500-char teaser. LinkedIn gets a 3,000-char article share.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Quality Ladder
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ollama (local, free) generates the first draft&lt;/li&gt;
&lt;li&gt;Quality gate checks readability and boring-start patterns&lt;/li&gt;
&lt;li&gt;Claude Haiku polishes if needed (~$0.002)&lt;/li&gt;
&lt;li&gt;Template fallback as safety net&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Feedback Loop
&lt;/h2&gt;

&lt;p&gt;A weekly task evaluates performance, extracts patterns, and injects learnings into future prompts. The system gets smarter over time.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Python 3.13, FastAPI, SQLAlchemy 2 async, Celery&lt;/li&gt;
&lt;li&gt;Next.js 16, TypeScript, TanStack Query&lt;/li&gt;
&lt;li&gt;AI quality ladder (Ollama → Haiku), RAG, pgvector&lt;/li&gt;
&lt;li&gt;1Password secrets, Redis rate limiting&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This post was cross-posted using the pipeline described above.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>automation</category>
      <category>api</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
