Six months ago, I was trying to run three side businesses with one brain and a spreadsheet.
It wasn’t working.
Too much context switching. Too much repetitive work. Not enough actual execution.
So over the past six months, I’ve built and rebuilt an AI automation stack to handle as much of that repetitive work as possible.
This is the version I’m running now: what I use, what it costs, what it handles well, and — more importantly — what I still refuse to automate.
The Three Businesses
The stack makes more sense with some context.
I’m currently using it across three different types of side businesses:
Content affiliate site — An English-language review site monetized through Amazon Associates and other affiliate networks. Current output: two articles per week.
Social media automation — Multiple X (Twitter) accounts in a niche market, managed through a custom Python agent stack. Current output: 3–5 posts per day, per account.
B2B service — Outbound sales for a lead-generation service targeting SMBs. Current output: 5–10 personalized outbound emails per day.
Different businesses. Different output formats. Different cadences.
Underneath, though, most of the infrastructure is shared.
The Stack
Claude API (Anthropic) — Intelligence Layer
Almost every generation task eventually routes through Claude.
That includes article drafts, social copy, email personalization, and product-selection logic.
I use two model tiers:
- Claude Sonnet for work that requires judgment: article writing, personalized emails, strategy, and anything where nuance matters.
- Claude Haiku for repetitive work: templated social posts, bulk processing, and other predictable generation tasks.
Monthly cost: $30–50 depending on volume.
Using Haiku for high-volume work is what keeps that number manageable.
What I’d change: At the moment, nothing.
The quality difference between Haiku and Sonnet is noticeable enough that I don’t want Haiku handling judgment-heavy work. At the same time, using Sonnet for everything would make the stack unnecessarily expensive. The split works.
Claude Code — Development Layer
Claude Code is what I use to build and maintain the Python agent stack itself.
Cron jobs, API integrations, error handling, log parsing — most of the system has been developed and maintained with Claude Code as my primary development tool.
Monthly cost: $38–62. I wrote a separate 30-day breakdown of exactly where that money goes.
What I’d change: Long-session memory.
I keep a CLAUDE.md context file in every project to document the architecture, rules, and important decisions. It works, but it’s still a workaround for context getting weaker across long development sessions.
Astro + Vercel — Publishing Layer
The affiliate site is built with Astro and deployed on Vercel.
At my current scale, the combination is hard to argue with. It’s fast, deployment is simple, and the static output gives me clean HTML without having to maintain much infrastructure.
Monthly cost: $0 on Vercel’s Hobby tier.
What I’d change: Nothing yet. The free tier comfortably handles my current traffic. I’ll revisit that when traffic gives me a reason to.
Python + macOS LaunchAgents — Execution Layer
The social automation runs as a collection of Python scripts on my local machine, triggered by macOS LaunchAgents.
Each script follows roughly the same flow:
- Pull the day’s strategy from Claude.
- Generate the post copy.
- Apply platform-specific rules such as timing, hashtag limits, and posting jitter.
- Publish through the Twitter API.
Monthly cost: Around $15 including Twitter API credits and incidental compute.
What I’d change: Eventually, I’ll move it to a VPS.
Running locally means the system stops if my machine sleeps, loses connectivity, or crashes. At my current scale, that hasn’t been enough of a problem to justify moving it. Eventually it will be.
Todoist — Human Task Layer
Todoist sits on top of the automation as the part I actually look at.
I use recurring tasks to manage each business’s cadence and project boards for work that takes longer than a single cycle. It’s not sophisticated. That’s part of why I still use it.
Monthly cost: $4 for the Pro plan. I haven’t found a reason to replace it.
Total Stack Cost
| Tool | Monthly Cost |
|---|---|
| Claude API | $30–50 |
| Claude Code | $38–62 |
| Vercel | $0 |
| Twitter API | ~$12 |
| Todoist Pro | $4 |
| Total | $84–128 |
That’s the real number after six months of iteration.
The early versions were cheaper because I was running less volume. They were also much less capable. At this point, I consider $84–128 the steady-state operating cost of running the automation behind three parallel side businesses.
What Runs Automatically
The stack currently handles:
- Social media post generation and publishing: 3–5 posts per day across four accounts
- Affiliate product selection by account niche
- Initial article drafts
- Outbound email drafts
- Weekly performance summaries using log parsing and Claude analysis
But “automated” doesn’t mean unsupervised. That’s an important distinction.
What I Still Do Manually
I still personally handle:
- Final review and editing of every article before publication
- Review of every outbound email before it gets sent
- Replies to DMs, comments, and inbound leads
- Strategic decisions such as new niches, pricing, and positioning
- Anything that involves real money moving: purchases, payments, or subscriptions
That last rule is non-negotiable.
The system can generate output and surface recommendations. A human still approves anything with real consequences.
What a Modern AI Automation Stack Actually Looks Like
This video breaks down the tools and architecture I’d recommend to anyone starting from scratch in 2026 — matches closely with what I settled on after six months of iteration:
What I’d Do Differently If I Started Again
Start with one business and one output.
I built three systems at roughly the same time. That also meant I created three different places for things to break. The first six weeks were painful.
If I were starting over, I’d automate one repetitive output for one business, get it stable, and only then reuse the infrastructure elsewhere.
Start cheap, then upgrade the model where it matters.
I initially used Sonnet almost everywhere. That was unnecessary.
My API bill was roughly three times higher than it needed to be because a lot of the work simply didn’t require Sonnet-level judgment. Haiku is perfectly capable of handling predictable, templated output. Use the more expensive model when the quality difference actually matters.
Create a CLAUDE.md on day one.
Every project I maintain now has a CLAUDE.md file explaining the project structure, important rules, and decisions I’ve already made.
It sounds trivial. It isn’t.
When I return to a project after a week away, having that context written down saves a huge amount of time — for Claude Code and for me.
This site participates in affiliate programs. As an Amazon Associate, I earn from qualifying purchases.