1. Secure access and backups
Before changing anything, we confirm you own the repository, hosting, domain and third-party accounts, and we check that the live code matches the code you have. We set up backups and restore one to prove it works. Without this, every later step carries more risk.
2. Read the system
We audit the code and database schema, record versions and packages, and run composer audit for known advisories. We also ask the people who use the system every day which workflows they depend on, because those often aren’t written down anywhere.
3. Stabilise what is live
Urgent security issues and recurring failures come first. We add monitoring and error reporting if they are missing, and tests around the flows that matter most, so later changes can be checked.
4. Decide what to save
You get a written recommendation for each part of the system: keep, repair, upgrade or replace. Only then do we quote the larger work, so you aren’t committing to a big project on a first impression.
5. Hand over or carry on
We document what we have learned, so the application no longer depends on one person, whether that person is on your team or ours.