DEV Community

justin nick
justin nick

Posted on

How I Landed 4 Retainers in 14 Days as a Freelancer

Why I Deleted My Developer Portfolio (And Landed $14,850/mo in Retainers 14 Days Later)

Your developer portfolio website is probably costing you tens of thousands of dollars in lost income.

Last month, I deleted mine. I wiped 83 hours of custom React code, bespoke CSS animations, and polished case studies clean off my Vercel dashboard.

Two weeks later, I closed 4 monthly retainers worth a combined $14,850 per month.

As a freelancer, I spent four years stuck on a financial rollercoaster that almost made me quit software engineering entirely. I would work 60-hour weeks for two months straight, ship a client build, collect a check, and then spend the next 47 days staring at my bank balance in a cold sweat while hunting down the next gig.

It was exhausting. Every time a project wrapped up, my monthly income dropped straight back to $0.

I tried everything the tech influencers on Twitter told me to do. I updated my GitHub activity graph daily, rewrote my LinkedIn bio 14 times, and sent cold pitches that took 2 hours each to personalize. The result? Radio silence, or clients asking if I could knock 35% off my rate.

Then, on a rainy Tuesday night at 1:42 AM, after a client questioned a $95/hour invoice because a bug fix "took longer than they expected," I realized I was playing the wrong game entirely.


The Controversial Reality of Tech Freeline

Here is the truth that most developers refuse to accept: Clients do not care about your code, your tech stack, or your slick portfolio.

Pitching software development as a project-based skill is a guaranteed way to stay on the hourly treadmill. When you sell "projects," you are treated as a temporary expense—a line item that business owners actively try to minimize and eliminate as fast as possible.

Clients don't want features. They want an insurance policy against their production environment breaking, their page speed plummeting, or their engineering backlog stalling out.

To secure predictable, long-term retainers, you have to stop selling feature development and start selling continuous operational stability.

Here is the exact 14-day process I used to pivot my positioning and lock in 4 long-term retainer clients paying between $3,150 and $4,100 every single month.


Days 1–3: The "Codebase Leak" Audit

I stopped chasing new leads and pulled up a spreadsheet of everyone who had paid me money over the past 24 months. Total count: 29 past clients.

Instead of emailing them to ask if they had "new projects coming up" (which almost always triggers a standard "not right now"), I quietly audited their live web applications, GitHub repos, and core performance metrics.

I wasn't looking for redesign opportunities. I was searching for silent leaks:

  • Dependencies with active security vulnerabilities running in production.
  • Core Web Vitals scores that had drifted below 62 on mobile.
  • Unmaintained API integration calls taking longer than 1.4 seconds to complete.
  • Broken deployment actions or outdated Node runtimes.

Out of 29 past clients, 21 had critical technical debt actively impacting their app right now.


Days 4–7: The 3-Minute Video Strategy

Rather than sending a generic check-in email or writing up a lengthy PDF report, I recorded concise, 3-minute Loom screen-recordings for 17 of those past clients.

My script followed a specific 3-part structure:

  1. The Visual Bug: "Hey [Name], I was checking out [Product] today and noticed your main checkout API route is throwing silent 500 errors on mobile Safari."
  2. The Hidden Cost: "Right now, it's impacting roughly 8% of your mobile traffic, which is likely dropping your conversion rate during peak hours."
  3. The Systems Solution: "I can patch this specific issue for you this afternoon, but more importantly, you shouldn't have to worry about silent production failures accumulating like this every month."

I sent 17 emails containing these short videos.

  • 13 opened the email.
  • 9 watched the full video.
  • 6 replied within 36 hours asking: "How do we prevent this stuff from happening ongoing?"

Days 8–10: Packaging the Async Infrastructure

This is where most freelancers make a fatal error: when a client asks for ongoing support, the developer says, "Sure, my rate is $90/hour, you can buy a 20-hour monthly block."

Hourly blocks ruin retainers. They force you to trade time for money forever, and they encourage clients to micromanage every ticket on your board.

Instead, I introduced a standardized offer called the Core System Engine.

I priced it at $3,750 per month (with a entry tier at $3,150 per month).

Here is what was included:

  • One Active Request at a Time: The client drops features, refactors, or fixes into a Trello board. I work through them sequentially with a maximum 48-hour cycle time per item.
  • Proactive Weekly Audits: Every Monday morning, I handle core updates, run automated test suites, and audit security packages.
  • 4-Hour Emergency Response: If production crashes during business hours, I investigate immediately.
  • Zero Meetings: Communication happens entirely through Slack and Loom. No status calls, no standups.

Notice what is missing? Hours.

By capping capacity by throughput (one active item at a time) rather than hours worked, I retained total control over my schedule. If a client wanted work done faster, they couldn't demand more hours; they had to purchase an additional concurrent worker slot.


Days 11–14: Closing Without Selling

I scheduled brief 15-minute calls with the 6 interested founders.

Instead of walking through a slide deck, I asked three direct operational questions:

  1. "What does an hour of unexpected site downtime cost your business during peak sales days?"
  2. "How much mental energy do you waste every week worrying if your site build is stable?"
  3. "Would you prefer to pay a fixed, predictable fee to ensure your codebase never falls behind, or handle emergency $6,000 repair bills when things break under load?"

When framed as business insurance rather than raw engineering labor, the math became obvious to them.

Between day 11 and day 14, four clients signed 6-month retainer agreements:

  • Client 1 (Fintech SaaS): $4,100 / month
  • Client 2 (E-commerce Platform): $3,850 / month
  • Client 3 (SaaS App): $3,750 / month
  • Client 4 (B2B Directory): $3,150 / month

Total Recurring Revenue: $14,850 / month

Total Hours Worked per Week: ~22 hours across all 4 retainers

Proposal Pages Written: 0 (used a single standardized 1-page agreement)


Actionable Takeaways You Can Use Today

If you want to break out of the project-to-project scramble and build steady recurring revenue as a freelancer, here are four steps you can execute right now:

1. Stop Selling Time; Sell Queue Capacity

Replace "20 hours per month" with "1 active priority task at a time." This shifts the client's focus from tracking your clock to receiving steady output, while protecting you from burnout.

2. Mine Your Existing Network

It takes roughly 5x more energy to earn the trust of a stranger on Upwork than it does to reactivate a business owner who already knows your work ethic. Reach out to 10 past clients today with a quick health check of their live app.

3. Translate Code Issues into Business Risk

Never tell a non-technical founder that their "dependencies are out of date." Tell them that "running unpatched packages leaves customer auth data vulnerable to quiet exploits." Speak in terms of risk, speed, and revenue.

4. Normalize Asynchronous Work

Position a no-meeting policy as a benefit for the client: "I don't charge you for hour-long status meetings. I spend that time shipping updates and recording 90-second Loom overviews."


Shifting my focus from chasing new builds to managing ongoing application health completely changed my relationship with freelance engineering. Knowing that $14,850 is hitting my bank account on the 1st of every month eliminated the anxiety that used to follow every project handoff.

I'm curious what your experience has been with retainers versus project work. Have you tried moving away from hourly billing, or do your clients push back when you offer monthly agreements?

Top comments (0)