3 Systems Run My Whole Solo Business (Claude Code 2026)

Abstract tech illustration: 3 Systems Run My Whole Solo Business (Claude Code 2026)

Most solopreneurs don't fail because they lack automation. They fail because they built eleven half-finished workflows and none of them are processing real money. Here's the exact three-system setup I run from a single home server to keep three live products shipping — no subagent zoo, no MCP sprawl, no Notion-times-three.

The Trap: Automation Becomes the Job

Every week I get on calls with founders who watched a Claude Code tutorial, got excited, and spun up agents, MCP servers, a vector database, a CRM sync, three Notion workspaces, and a Slack bot. Two weeks later they're debugging the automation instead of running the business.

A one-person business has exactly three daily pressures:

  • Money has to come in.
  • Communication has to get triaged so you don't miss the one email that matters.
  • Delivery — client work has to ship.

Everything else is decoration. So my AIOS has exactly three systems, one per pressure, all running locally on a small home server with WSL Ubuntu and Claude Code. Three folders. Three CLAUDE.md files. About a dozen slash commands total. That's the whole stack.

Here's how each one is built.

System 1 — The Money System (Invoicing in 12 Seconds)

The painful version: you finish a job, open Word, copy last month's invoice, change the client name, change the line items, change the date, export to PDF, attach to email, write the cover note, send it. Three weeks later you chase payment because you never logged it. A small invoicing business hand-typing 200 invoices a week burns about four hours a day on this.

The Claude Code version is one folder where the right answer is the only possible answer:

money/
├── CLAUDE.md
├── clients/
│   ├── acme-corp.md
│   ├── northwind.md
│   └── ...
├── templates/
│   └── invoice.html
├── invoices/
│   └── 2025-11-acme-0042.pdf
└── .claude/commands/
    └── invoice.md

Each client file is a flat markdown document — billing address, EIN/Tax ID, payment terms (Net 14, Net 30), hourly rate, preferred language for the cover email. HTML is the template format because it renders cleanly to PDF via wkhtmltopdf or headless Chrome, and Claude reads totals back from HTML without hallucinating numbers (a known failure mode with raw PDFs).

The root CLAUDE.md looks roughly like this:

# Money System

Default currency: USD.
Default tax: none unless the client file specifies sales tax.
Invoice numbering: YYYY-MM-{client-slug}-{sequential}.
If a client file is missing payment terms, default Net 14 and flag it.
Always log generated invoices to invoices/ with the canonical filename.
Draft cover email in the client's preferred_language field.

Then one slash command, /invoice:

# /invoice

Read the email I paste in. Identify the client by name or domain.
Pull the matching client file from clients/.
Fill templates/invoice.html with the work items.
Render to PDF in invoices/.
Append a row to invoices/ledger.csv with amount, due date, status=open.
Draft the cover email in the client's preferred language and show it to me for review.

I paste in: "Hey, can you bill me for last week — 3 hours at the usual rate." Twelve seconds later there's a PDF in invoices/, a row in the ledger, and a cover email waiting for me to hit send. 200 invoices a week becomes one command per invoice and zero copy-paste.

The reason this works isn't that Claude is smart. It's that the folder structure makes the wrong answer impossible to produce.

System 2 — The Communication System (140 Threads → 4 Decisions)

You get 140 email threads a day. Maybe four of them actually need you. The rest is newsletters, vendor noise, cold outreach, calendar confirmations, and clients asking questions you've already answered three times. Filters and labels just give you a more complicated inbox.

The Claude Code version is a triage loop. The folder:

comms/
├── CLAUDE.md
├── kb/
│   ├── faq-pricing.md
│   ├── faq-onboarding.md
│   └── faq-refunds.md
├── rules.md
└── .claude/commands/
    ├── triage.md
    └── digest.md

The CLAUDE.md is your rules in English, not YAML:

# Comms System

URGENT = client in clients/active.md asking about a deliverable,
         or anyone replying to a thread I started in the last 72h,
         or any email mentioning "invoice", "payment", "contract".

AUTO-REPLY (draft only, never send) = pricing questions, onboarding
         questions, refund policy questions. Use kb/ to answer.

ARCHIVE silently = newsletters, cold outreach, calendar confirmations,
         GitHub/Stripe/AWS notifications I've already seen this week.

DIGEST to Telegram = only the URGENT threads, max 4. One-line summary
         per thread + my suggested action.

A cron job pings Claude every 30 minutes. It hits the Gmail API, walks new threads, applies the rules, drops drafts into Gmail's draft folder for the auto-reply category, archives the noise, and pushes a Telegram message via a bot token only when something is genuinely URGENT.

I wake up, open Telegram, see four threads with one-line summaries, make four decisions in three minutes. Inbox handled before coffee.

Why the rules live in English

  • New client onboarded → edit a paragraph in CLAUDE.md.
  • New product launches with new FAQ patterns → drop a new file in kb/.
  • Pattern keeps slipping through → add one sentence to the URGENT definition.

No regex. No config file. No "let me dig through the n8n workflow to find where I set that." The system bends because the rules are written the way you'd explain them to a new assistant.

System 3 — The Delivery System (Stop Reinventing the Folder)

Most solo operators bleed time on the first day of every engagement. New folder, new notes, new spreadsheets, new project structure. After ten clients you have ten layouts and you can't find the deliverables for the one you finished in June.

The fix is one template you clone. Identical structure for every client:

delivery/
└── _template/
    ├── CLAUDE.md
    ├── 00-brief/
    ├── 01-plan/
    ├── 02-work/
    ├── 03-deliverables/
    ├── 04-status-updates/
    └── .claude/commands/
        ├── brief.md
        ├── plan.md
        ├── status.md
        └── wrap.md

cp -r _template/ clients/acme-redesign/ and you're set up.

Four slash commands cover ~90% of the project lifecycle:

Command Input Output
/brief Discovery call transcript Scoped proposal in 00-brief/proposal.md
/plan Approved proposal Week-by-week delivery schedule in 01-plan/
/status Git commit log + notes from the week Client-ready status update in 04-status-updates/
/wrap The full project folder Handover document with deliverables list, credentials, next steps

/status is the one I lean on hardest. Every Friday:

cd delivery/clients/acme-redesign
claude /status

Claude reads the week's commits, scans my working notes in 02-work/, pulls the plan from 01-plan/, and writes a status update in the voice and format I've defined in the project's CLAUDE.md. Twenty minutes of writing becomes ninety seconds of review.

Why This Beats the SaaS Stack

I've watched founders try to do the same three jobs with Zapier + Notion + HubSpot + Make + a custom GPT + three Chrome extensions. Here's what actually breaks:

  • Monthly cost creep. A real-world stack I audited last month: $29 Zapier + $48 HubSpot Starter + $20 Notion team + $19 Make + $20 ChatGPT Plus = $136/month before anyone touches it. My three-folder setup runs on a Claude Pro/Max subscription on a machine I already own.
  • Glue code rots. Every Zapier zap that broke silently this year cost someone a missed invoice or a missed reply. Plain-text rules in CLAUDE.md don't silently rot — when they fail, they fail loudly in the terminal.
  • You can't grep a SaaS. I can grep -r "Net 30" money/clients/ and see every client on those terms in 80 milliseconds. Try that across HubSpot, QuickBooks, and a Google Sheet.
  • The whole system fits in a git repo. Backups are git push. Disaster recovery is git clone.

The Hardware: One Small Machine

This whole AIOS runs on a single mini-PC sitting in my office — Ryzen 7, 64GB RAM, WSL Ubuntu, a few TB of NVMe. Claude Code is installed once. The three folders live under ~/aios/. A handful of systemd timers handle the polling for the comms system. That's it.

No Kubernetes. No serverless. No vector database. No cloud bill that surprises you in February. Power draw is roughly 25W idle — call it $30/year in electricity at average US rates.

Why bizflowai.io helps with this

When clients hire us through bizflowai.io, this is the shape of what we build — a small, auditable AIOS focused on money, comms, and delivery, sized for one operator or a team under ten. We don't bolt on a CRM you'll never log into or a subagent swarm you'll spend weekends maintaining. We ship the three folders, the CLAUDE.md files, and the slash commands tuned to how your business actually runs, then hand you the repo so you own it end to end.

The Pattern to Steal

If you take one thing from this, take this: the goal isn't to make Claude smart. The goal is to build a folder where the right answer is the only possible answer.

Three folders. Three CLAUDE.md files. A dozen slash commands. One machine.

Money in. Noise out. Work shipped.

Everything else is decoration.

Frequently asked questions

What is an AIOS for a one-person business?

An AIOS (AI Operating System) for a solo operator is a minimal setup of three local systems, one for each daily pressure point: money, communications, and delivery. It runs on a small home server with WSL Ubuntu and Claude Code, using three folders, three CLAUDE.md files, and about a dozen slash commands total. No SaaS stack, no MCP zoo, no subagent swarms.

How do I automate invoicing with Claude Code?

Create one folder with a clients directory holding a markdown file per client (billing details, VAT, payment terms, language), a templates directory with an invoice HTML template, an invoices directory for generated PDFs, and a root CLAUDE.md defining currency, tax rules, and fallback behavior. Then build a /invoice slash command that reads a client email, fills the template, generates the PDF, logs it, and drafts the cover email.

Why does over-automation hurt solo founders?

Solo founders often build agents, MCP servers, subagent swarms, vector databases, and SaaS integrations after watching tutorials, then spend weeks maintaining the automation instead of running the business. The automation becomes the job. Many end up with eleven half-built workflows and zero processing real money. Focusing only on the three daily pressures—money in, communications triaged, client work shipped—prevents this trap.

How does Claude Code triage a noisy inbox?

You create a folder with a CLAUDE.md written in plain English defining urgency rules, which clients get human replies, which questions can be auto-answered from your knowledge base, and what gets archived. Claude polls Gmail on a schedule, reads each thread, drafts replies into your drafts folder, and sends a single Telegram digest containing only the threads that need a decision—typically about four out of 140.

Why use HTML templates instead of Word docs for invoices?

HTML renders cleanly to PDF and Claude can read the template back without hallucinating totals or line items. Word documents require copy-paste workflows where you manually change client names, line items, and dates, costing a small invoicing business up to four hours a day for 200 weekly invoices. With HTML plus a structured folder, the same workflow becomes a single slash command running in about twelve seconds.


Want more like this?

I publish practical AI automation, GenAI engineering, and faceless content workflows on YouTube every week.

Subscribe to bizflowai.io on YouTube — never miss a new tutorial.

Planning an AI automation project or need a second opinion on your architecture?

Connect with me on LinkedIn — Lazar Milicevic, GenAI Engineer & bizflowai.io Founder.

Visit bizflowai.io for our services, case studies, and AI consulting.

Frequently asked questions

What is an AIOS for a one-person business?

An AIOS (AI Operating System) for a solo operator is a minimal setup of three local systems, one for each daily pressure point: money, communications, and delivery. It runs on a small home server with WSL Ubuntu and Claude Code, using three folders, three CLAUDE.md files, and about a dozen slash commands total. No SaaS stack, no MCP zoo, no subagent swarms.

How do I automate invoicing with Claude Code?

Create one folder with a clients directory holding a markdown file per client (billing details, VAT, payment terms, language), a templates directory with an invoice HTML template, an invoices directory for generated PDFs, and a root CLAUDE.md defining currency, tax rules, and fallback behavior. Then build a /invoice slash command that reads a client email, fills the template, generates the PDF, logs it, and drafts the cover email.

Why does over-automation hurt solo founders?

Solo founders often build agents, MCP servers, subagent swarms, vector databases, and SaaS integrations after watching tutorials, then spend weeks maintaining the automation instead of running the business. The automation becomes the job. Many end up with eleven half-built workflows and zero processing real money. Focusing only on the three daily pressures—money in, communications triaged, client work shipped—prevents this trap.

How does Claude Code triage a noisy inbox?

You create a folder with a CLAUDE.md written in plain English defining urgency rules, which clients get human replies, which questions can be auto-answered from your knowledge base, and what gets archived. Claude polls Gmail on a schedule, reads each thread, drafts replies into your drafts folder, and sends a single Telegram digest containing only the threads that need a decision—typically about four out of 140.

Why use HTML templates instead of Word docs for invoices?

HTML renders cleanly to PDF and Claude can read the template back without hallucinating totals or line items. Word documents require copy-paste workflows where you manually change client names, line items, and dates, costing a small invoicing business up to four hours a day for 200 weekly invoices. With HTML plus a structured folder, the same workflow becomes a single slash command running in about twelve seconds.