I run a solo studio. Three brands. Daily content across Instagram, X and a blog. When I sat down to figure out how to handle content at that scale, I had two options: pay for tools or build my own system.
I did both. Built some things, bought others. A year in, here's exactly what worked, what didn't and the framework I use now for every build-vs-buy decision.
The problem
Three Instagram accounts. A blog that publishes weekly. X threads for each post. I needed a system that could generate content, score it for quality, create branded images and publish — across all three accounts, on a schedule, without me touching it every day.
The obvious answer was to buy a content tool. Jasper, Predis.ai, Buffer, Later — there's no shortage of options.
The buy option I evaluated
I looked seriously at three tools:
Jasper — $49/mo. Good at generating blog drafts. Bad at multi-brand voice control. Every time I switched between brands, I was re-explaining the tone. No API access at the tier I'd need, so no automation.
Predis.ai — $29/mo. Generates social images and captions from a prompt. The templates looked generic. No way to enforce my specific brand colors, fonts or layout rules. Fine for one account, painful for three.
Buffer/Later — $30-60/mo for scheduling. Good at what they do, but they're schedulers, not generators. I'd still need to create all the content manually.
Total cost to cobble these together: ~$110-160/mo. And I'd still be doing manual work every day — copying content between tools, reformatting images, switching between brand profiles.
What I built instead
A Claude-powered pipeline that runs on GitHub Actions every Monday:
1. Topic selection — Claude picks topics based on what's trending and what hasn't been covered yet 2. Blog generation — full post draft, scored 1-10 on shareability, relatability and hot-take factor 3. Quality gate — posts scoring 7+ get social assets generated automatically. Below 7, they get flagged for manual review 4. Image generation — branded Instagram images (1080x1350) rendered with Puppeteer, using the exact brand colors and fonts for each account 5. Caption + thread — IG caption with hooks, CTAs and hashtags. X thread broken into 4-5 tweets 6. Auto-publish — perfect 10/10 scores publish directly to Instagram and X. Everything else gets queued
The whole thing runs on a cron job. I wake up Monday morning and either have published content or a GitHub issue telling me what needs review.
Cost: ~$15-30/mo in Claude API tokens. Zero infrastructure cost — GitHub Actions is free for public repos, Vercel hosts the site.
But here's the thing — I also bought
For scheduling, I bought Metricool at $20/mo. Not because I couldn't build a scheduler — I could wire up the Meta Graph API and X API directly. I actually did build direct publishing for 10/10 posts.
But scheduling is commodity work. Picking the right time to post, managing a content calendar, seeing analytics across platforms — that's solved. Metricool does it fine. Building my own version would take weeks and I'd end up maintaining a worse version of something that already exists.
The Metricool decision took me five minutes. The content pipeline decision took me two weeks. That gap tells you everything about which problems are worth building for.
The framework
After going through this, here's how I evaluate every build-vs-buy decision now:
Build when: - The tool needs custom logic that SaaS can't handle (multi-brand voice scoring, quality gates) - Daily usage compounds the cost of a SaaS tool (paying per-generation adds up fast) - The output quality directly affects your reputation (generic AI content is recognizable) - You need it to integrate tightly with your existing workflow (GitHub Actions, Vercel, your own database)
Buy when: - The task is a single step with no custom logic (scheduling a post at 9am) - The UI matters more than the backend (calendar views, drag-and-drop) - You'd use it less than daily (analytics, reporting) - Someone else maintaining it saves you real hours (API changes, platform updates)
What I got wrong
I overbuilt the image generation. Puppeteer for rendering branded images works, but it's slow, flaky in CI and hard to debug. I should have used Sharp from the start — it handles 90% of what I need at a fraction of the complexity. I wasted about a week on Puppeteer issues that Sharp would have avoided.
I also underestimated maintenance. The Meta Graph API changes its token format roughly every quarter. X's API rate limits shift without warning. Every time a platform changes something, my auto-publish breaks. Metricool absorbs that pain for the scheduling side. My custom pipeline takes the hit on the publishing side.
If I were starting over, I'd keep the generation pipeline (that's where the real value is) and buy even more aggressively on the publishing side.
The actual lesson
Build-vs-buy isn't about saving money. The SaaS tools would have cost more monthly, but less in engineering time. My custom pipeline costs less monthly, but I spent weeks building and debugging it.
The right answer depends on where your edge is. My edge is multi-brand voice control and quality scoring — that's what my clients hire me for, so building it myself made me better at my job. Scheduling posts? That's not an edge for anyone. Buy it.
Most founders I talk to get this backwards. They build commodity features (auth, payments, scheduling) and buy their differentiators (white-labeled AI, off-the-shelf templates). The result is a product that feels generic where it matters and custom where nobody cares.
If you're stuck on a build-vs-buy decision right now, ask yourself: is this where my edge is? If yes, build it. If no, buy it and move on.
I run build-vs-buy audits for founders and engineering teams. If you want a second opinion on what to build vs what to buy, that's literally what I do — [get in touch](/qualify).