The handover package: 10 things a client should hold when your project ends
"It works on the demo server" is not the same as "the client can keep running it without you." Most handover pain we've seen doesn't come from bad code. It comes from things that were never written down or never moved out of the developer's accounts. Here is the 10-item package we put together before the last invoice, with one line on why each matters and one way to verify it. The 10 items 1.…
When a project reaches its conclusion, clients should receive a comprehensive package to ensure a smooth transition. Below are ten essential items to hold during the handover process:
1. Repository in the client's account: This ensures the codebase remains accessible and modifiable by the client even after the project's completion. Verify by having the client clone the repository from their own organization and confirm the full commit history is accessible.
2. Domain, cloud, app store, and payment accounts in the client's name: Only the account owner can manage renewals, cancellations, or transfers. The client should log in to each service using their credentials and verify that all accounts belong to their organization.
3. Admin credentials, handed over safely: Clients must have full administrative access to make changes to their product. Share these credentials through a secure password manager, not via email or chat. The client should then rotate all credentials and disable the developer's account.
4. A complete .env.example file: This file contains essential configuration variables, such as database addresses and third-party API keys, necessary to recreate the project's environment. Ensure each variable is listed with a concise description, and the real values are provided separately for testing.
5. A run-and-deploy guide that works without you: If the next developer asks how to deploy the project, that requires additional paid hours. Provide a detailed, step-by-step guide allowing another developer to set up the project on a clean machine without any assistance.
6. Backup and a tested restore: A backup without a tested restoration is essentially useless. Specify where backups are stored and how frequently they are performed. Conduct a restoration of the latest backup on a test environment to demonstrate its functionality.
7. Paid services and monthly cost table: Subscription services, such as email providers, maps, AI tools, and cloud servers, often reveal their costs once the project is handed over. Create a table listing each service, its purpose, billing cycle, and expected monthly cost. Verify that the total cost aligns with the initial quote.
8. Licence list (open source, images, fonts): Confirm that all assets used within the project comply with their respective licenses. List each item along with its source, license type, and any purchased receipts to prove payment was made for proprietary assets.
9. Warranty window and how to report bugs: Clients should be aware of the free-fix period following the project's conclusion. Clearly outline the start and end dates of this warranty window, provide a dedicated reporting channel, and set a target response time for bug fixes.
10. A handover memo for the next developer: Code alone doesn't explain the project's architecture, design decisions, or potential pitfalls. Include a comprehensive memo covering the project's structure, known issues, postponed tasks, and areas that require special attention. This memo helps the next developer understand the project's context and navigate any challenges.
Remember, the order of these items matters. Review the entire package before final payment to ensure all components are in place. If any item is missing or delayed, document the issue and provide an estimated timeline for delivery. While this checklist offers general guidance, it is not a substitute for legal advice. Consult a professional for any contract-related matters, particularly regarding source code ownership and intellectual property.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.