You're Allowed to Fire Your Dev Team. Here Is the Email.

The guilt costs you twice. It keeps a contract running that eats your runway, and it talks you into "one more sprint" with a team that has already had plenty of them. One more sprint rarely fixes a pattern that took months to form.
So here is the email. Before it, the four things to have in hand. After it, what to do the next morning.
Before you send: four things to have ready
The signed contract. Find the termination clause and the IP assignment clause. The notice period sets your last working day. The IP clause says when the code becomes yours, and in some contracts that happens only after the final invoice is paid, so read it before any conversation about money.
Your own login to production. Whatever cloud account the agency set up, get your own admin access before the email goes out, not after. The stretch between "we're ending this" and "you've lost access" is the riskiest part of any transfer.
Owner access to the repository. Get added as an owner of the GitHub or GitLab organization. Contributor access isn't enough: owners can remove people, and contributors can't.
The next team, with a start date. Don't send the email until someone has committed to picking up the work. Two weeks with nobody on the code costs more than two more weeks with the wrong team.
The email
Subject: Engagement transition: [project name]
Hi [lead name],
We need to wind down the current engagement. The deliverables on our last invoice did not land, and the timeline has slipped past what we can absorb. Another sprint is not the answer right now.
Per Section [X] of our agreement, I am giving notice as of today. The final working day is [date, per the notice period in the contract].
Before that date I need:
1. All source code pushed to the main branch of [repo URL], with no outstanding feature branches.
2. A current README covering how to run the project locally, plus every environment variable and service it depends on.
3. Full ownership transfer of every account created on our behalf: domain and DNS, hosting, database, Stripe webhooks.
4. A final invoice through [last working day], with line items tied to what shipped to production.
Thank you for the work so far. Let me know a time this week to walk through the handover.
[Your name]Keep it that short. Don't soften it, and don't explain why this is hard for you. They already know.
Each of the four requests maps to something you'll need in the first week with a new team: the code, a way to run it, the accounts it lives on, and a bill you can check against what actually shipped. If the agency pushes back on any of them, that tells you where the handover will get stuck.
Fit the email to your contract
Paste your termination and IP clauses into ChatGPT with the prompt below. It will adjust the email to your notice period and flag anything in the contract that could slow the handover.
“|”
The morning after
Rotate every credential the agency could see. Stripe keys, cloud admin accounts, the database service role, third-party API keys. Don't wait for the last working day. The agency can finish the handover with repository access alone, and they don't need your production keys for that.
Tell investors and key customers yourself. One short note: you're changing development partners to hit the next milestone, and the roadmap stays the same. People hear about these changes anyway. It's better they hear it from you first.
Get the new team into the repository. The sooner they audit, the sooner you ship. Day 1 of our 14-day transfer playbook starts right here, with a clean clone of the code and a careful read of the contract.
If the handover stalls
Handovers tend to stall on small things: a README that doesn't install, or a DNS account registered to someone's personal email. Tie the final payment to the handover items, in writing, and pay when they're done. That's why the email asks for line items tied to shipped work. It gives both sides a list to check off instead of an argument.
If an item is still open on the last working day, don't extend the engagement to close it. Extend the payment date.
Need a team to take over from your agency?
Agency Transfer starts at $500, and the price is flat. We audit the code and the contract and quote the transfer before any work starts. We can also be the receiving party your old team hands over to. Send your email and we'll set up a 30-minute call within 24 hours.
Before you press send
- The contract is read, with the notice period and the IP clause marked.
- Your own admin login to production works.
- You're an owner of the repository organization, not a contributor.
- The next team is named, with a start date.
- The final working day is on your calendar.
- You have a list of every key to rotate the morning after.
Related reading
- Our 14-day transfer-and-ship playbook: what happens after the email goes out
- Getting your code back: what to demand before you walk away: the handover list to hold the final invoice against
- Our client stopped paying. We shipped anyway.: what a development partner should do when things get hard
The service: Agency Transfer. Stuck with a team that went quiet: transfer rescue. Comparing options: agency vs Start Matter.
Enjoyed this article? Share it with others
Related Posts

We Don't Reject AI. We Use It Like Surgeons.
We write production code with AI agents every day, and we get hired to take over codebases that agents wrote with nobody steering. The tool is the same. Here is what we hand the agent, what never leaves a human, and the one rule behind both.

Seven Defects We Check First in Any Vibe-Coded App (proposed; old title in the notes)
AI coding tools make the same mistakes because they get asked the same questions. Here are the seven defects we look for first in a vibe-coded app, from paywalls enforced in the browser to AI features with unguarded tools, and a check for each.

The Transfer Pattern: Five Ways an Agency Project Goes Quiet (proposed; old title in the notes)
The deadline slipped twice and the Slack went quiet. Stalled agency projects tend to stall the same way, and the signs show up months early. Here are the five patterns, a five-minute check, and what to do when three of them match.