HuTor Tech logo HuTor Tech
← All posts

· hutor.tech

How to take over an existing Laravel project

How to take over an existing Laravel project

Taking over someone else's Laravel application is mostly an exercise in reducing uncertainty. The code is a known quantity — you can read it. What you cannot read is the deployment, the cron jobs, the queue workers and the three environment variables that only the previous developer knew about. Our handover starts there, not in the editor.

Ask for access before you ask for anything else. A handover is complete when you hold the repository, the server (SSH and the control panel), the database, the DNS and domain registrar, the mail and payment provider accounts, and the third-party API keys. Missing credentials are the single most common reason a takeover stalls for weeks, and they are much easier to collect while the previous team is still answering messages.

Get the project running locally on day one. Clone, `composer install`, copy `.env`, generate the key, import a database dump, run the migrations. Every step that fails is a finding: an undocumented PHP extension, a package pulled from a private repository, a migration that has never been run in order. Write those failures down as you go — that list is the first honest description of the project's health.

Then read the boring files first:
— `composer.json` and `composer.lock`: the framework version, abandoned packages, how far behind the release you are;
— `.env.example` against the production `.env`: which keys are real and which are decorative;
— `routes/` and the middleware: the actual surface of the application;
— the migrations folder: whether the schema is described by migrations at all, or only lives in the database.

Check what runs outside the request cycle. Scheduled commands in `routes/console.php`, queue workers, supervisor configs, backup scripts, webhooks from payment providers. This is where inherited applications hide their surprises, and where a silent failure can go unnoticed for months.

Do not refactor in the first week. Fix the deployment, set up a staging copy, add error tracking and a backup you have actually restored once. Only then start touching the code, in small commits, with a test around anything you change. The client's trust is built by a working deployment and predictable releases, not by a rewrite.

Finish the takeover with a written map: how to deploy, where the logs are, what the cron does, which parts of the code are fragile and what should be tackled first. If the previous team left no such document — and they usually did not — you have just created the artefact that makes the next handover cheap.