Home / Blog / Solo dev: how one person ships what a five-person team ships

Solo dev: how one person ships what a five-person team ships

I learned to deliver fast as a freelancer. Here are the disciplines that actually produce output, and the ones that only look productive.

A client once told me, “working with you is like working with a three-person agency”. I took the compliment but felt a bit short on it, because without a few disciplines I wouldn’t keep that pace. Shipping like a five-person shop isn’t magic, it’s a set of habits. Here’s what I’ve noticed.

The written brief rule

Every job starts with a written brief. When a client says “a small addition”, I don’t write code until it’s on paper. The reason is simple: speech disappears, writing stays. A week later when the client says “but we said X”, the written brief settles it.

Two or three paragraphs is enough. “This is the problem, this is the solution, this is the acceptance criteria.” Client reads, approves, I start. If they won’t approve, I’ve misunderstood something and I’d rather find out now.

Scope discipline

The biggest threat to a solo dev is scope creep. “And while we’re at it, let’s also do X” requests that, stacked up, eat weeks. Every extra request is a new agreement.

“Sure, that’s outside the current package. I can put together a separate quote.” You can’t freelance without learning that sentence. It isn’t rude, it’s professional.

Templates and starter kits

If I start each project from scratch, each project costs two weeks. So I built myself starters:

  • WordPress theme base (this theme, ac_ prefix, inc/ structure).
  • iOS SwiftUI skeleton (navigation, networking, dependency injection wired up).
  • Next.js + Tailwind + Auth SPA starter.
  • Laravel + Sanctum + Tailwind Breeze skeleton.

New projects fork from one of these. Day one has something functional running. Client is happy, I save time.

Treat constraints as a gift

A solo dev is time-constrained and can’t fan work out to a team. That constraint is actually a gift. Extra features, over-engineering, playing with the trendy framework, those become too expensive to indulge. I write the minimum code that does the job.

“This feature is a week of work. The client wants it done by end of month. Is it actually a must-have?” That question runs in my head constantly. Most of the time it’s not, and it goes to the MVP pile.

Async client communication

You can’t do real work if the client wants three calls a day. I agreed to that on my first project and lost three months. Now the rules are set:

  • Daily written update via Slack or email.
  • One hour-long call a week. Agenda shared in advance.
  • Non-urgent question: Slack thread, answered within 4 hours.
  • Urgent question: DM, answered within 30 minutes.
  • Actually urgent: phone (maybe two or three times a year).

Some clients push back on “not enough calls”. They push back until the first project ends. Fewer calls, more work shipped.

One stack, used everywhere

Picking a different stack for each project kills your depth. Every relearning costs time, bugs multiply. I froze my own stack:

  • Web: WordPress or Laravel + Tailwind + Alpine.js.
  • SPA: Next.js + TypeScript + Tailwind.
  • Mobile: Swift + SwiftUI + MVVM.
  • Backend: Laravel or Node.js/Express.
  • DB: PostgreSQL or MySQL.
  • Deployment: Hostinger, a VPS, or Vercel.

Unless there’s a real reason, I stay inside this stack. Every new tool is another rock to carry. Mastery doesn’t come from adding rocks, it comes from moving the same ones faster.

Automation obsession

I automate anything that repeats.

  • Deploys: git push, CI/CD, server. No manual step.
  • LiteSpeed cache purge: a wp-cli script.
  • Backups: cron job, uploads to Backblaze.
  • Environment setup: Docker Compose + Makefile.
  • Invoicing: subscription-style, client card on file.
  • Time tracking: Toggl + Zapier + Notion.

If I’ve done a task manually twice, the third time it’s automated. The payoff compounds.

Focus time

9am to 12pm is deep focus. Slack off, email off, phone silent. Just coding. Afternoons are for meetings and review. Evenings for admin work (invoicing, email, learning).

That rhythm buys me 25 to 30 focused hours a week. It beats 40 hours of “I’m working” by a wide margin.

Written SOPs

I keep written standard operating procedures, for myself.

  • New WordPress setup: 12 steps, checklist.
  • Client onboarding: 7 steps.
  • Month-end report: 5 steps.
  • Incident response: 9 steps.

They keep me from forgetting things and stop me burning energy on remembering the routine when I start a new project.

Short-term resilience

A solo dev getting sick, going on holiday, or making a bad call can block a client. That risk is real.

  • Every project has an active git repo, documentation, and handover-ready credentials. If something happens to me, the client can keep going with another developer.
  • I keep a network of backup freelancers who can step in on short notice.
  • Contracts include a “two-week pause on health grounds” clause. No one forces it but it’s there.

Takeaway

Being a solo dev who ships like a five-person team isn’t about doing more work, it’s about choosing the work you don’t do. No pointless meetings, no scope creep, no toying with new frameworks, no repeated manual steps. What’s left is actual work.

Have a project on this topic?

Leave a brief summary — I’ll get back to you within 24 hours.

Get in touch