Guides / Django project handover checklist for clients, and how Django Cloud keeps it short
Django project handover checklist for clients, and how Django Cloud keeps it short
The contract ends, the client takes over, and a month later they ask you how to restart the server. A good handover makes that question unnecessary. Use this checklist to hand a Django project to a client in one afternoon.
1. Hand over the accounts, not just the code
- Source code: move the repository to the client's GitHub organization, or add them as owner and remove yourself later.
- Cloud account: the app should run in an account the client owns. If it does, there is nothing to move. If it does not, plan a migration.
- Domain and DNS: the registrar login belongs to the client. A domain registered in your name is the most common handover trap.
- Third-party services: email provider, error tracking, payment provider. Each needs the client as owner.
2. Hand over the secrets safely
- List every environment variable the app reads, with a one-line description each.
- Generate new values for the
SECRET_KEYand any API key you personally created, then update the running app. Old keys held by you stop being a risk. - Send credentials through a password manager share, never email.
3. Write a one-page runbook
The client or their next developer should find these answers without calling you:
- How to deploy and how to roll back.
- Where the logs are.
- How to run a migration and how to create an admin user.
- How to restore the database from a backup.
- What it costs per month and who is billed.
4. Remove your own access
- Remove yourself from the cloud account, or delete the access role you were given.
- Revoke deploy keys and tokens that you created.
- Check the project's collaborator lists one last time.
When the app runs in the client's own AWS account, removing the access role does not stop the app. It keeps running; only your ability to deploy ends.
5. Do a dry run
Ask the client, or their next developer, to make one small change and deploy it while you watch but do not touch anything. Whatever confuses them goes into the runbook.
Or skip it
When the app runs in your client's own AWS account through Django Cloud Self-hosted, handover is mostly removing your access. If the access role is deleted or AWS is disconnected, the deployed app keeps running in their account.
pip install djangocloud-cli
djangocloud deploy
Free plans are available for students, AWS Activate startups, open-source, non-profit and research projects. See how Django Cloud compares with other ways to host Django.
Django is a registered trademark of the Django Software Foundation. Django Cloud is not affiliated with or endorsed by it. Found a mistake in this guide? Tell us and we will fix it.