Maintenance, upgrades and recovery for web, mobile, SaaS and e-commerce applications built by others
Software maintenance, support and rescue covers web, mobile, SaaS and e-commerce applications that someone else built and nobody now looks after in production. Fixes, upgrades and documentation come first. Monthly maintenance follows. It suits businesses whose original developer has gone.
- Works on software other vendors built
- Written health report before code changes
- Code, hosting and accounts in your name
Applications are maintained and recovered for distributors, clinics, manufacturers, logistics operators, schools and professional firms worldwide, including systems GullySystem did not build. Some products never reached launch. Others outlived the team that wrote them.
Where Unmaintained Software Runs Into Trouble
Original Developer No Longer Available
A freelancer stops replying or an agency shuts. The sole engineer who understood the system resigns with the deployment steps in their head, and every small change waits for someone willing to open the code.
Recurring Bugs
A bug is patched and returns. Support staff handle the same complaint every month because nobody traced the cause, be it a missing null check, an unhandled timeout or a slow query.
Unsafe Deployment Practice
Files are dragged onto the live server over FTP by hand, with no staging copy, no version history and no way to roll back a broken release. Even a price list edit is a gamble.
Outdated Framework and Libraries
The runtime is out of support. Security patches no longer arrive, and a payment gateway or app store notice now warns that the current build will stop working.
Documentation Missing
Nobody can say what a module does, which server runs the cron jobs, or where the payment gateway keys and the .env file are stored. Estimates from a new developer are guesses.
Project Stopped Before Production
Most of the application is built and paid for, yet it cannot go live, so the work sits in a repository while the business runs on spreadsheets. The money is already spent.
No Monitoring or Tested Backups
Nothing watches uptime, no backup has ever been restored, and failures come to light when a customer or dealer phones because they cannot log in. The first alarm is a phone call.
Discarding the software is rarely the answer. Most applications can be taken over, stabilised and put under regular care once a review has measured the real state of the code, the server and the database.
Taking Over Software Built by Someone Else
Work begins with the repository, the server and the database, and a plain statement of the application’s condition follows once the audit closes. Urgent faults are fixed next. The system is documented, and ongoing maintenance then runs with a named owner on our side and a defined channel for your team to raise tickets.
Audit Before Any Change
The code is read module by module, the environment is rebuilt from the repository, and servers, backups, dependency lockfiles and database are reviewed before anything is touched. A plain-language health report comes out of it.
Stabilise First, Improve Second
Order, payment and compliance faults go first. Deployments and backups return to a reliable state, with a staging copy and a tested restore in place, before anyone discusses a new feature or a redesign.
Maintenance Planned in Advance
Each month has an agreed block of capacity for fixes, upgrades and small enhancements, and a written log shows what was done and what is still open.
What Changes When Someone Owns the Application
Focus on business value before discussing technology.
Clear Ownership of Application Health
One team answers for whether the software is up, patched, backed up and working, so a problem no longer belongs to nobody until it turns into an outage.
Structured Handling of Production Issues
Every reported problem is logged in one tracker, reproduced on staging, ranked by business impact and worked in an agreed order by the same people each time. Nothing waits unread in a chat thread.
Attention to Security and Compatibility Risk
Unsupported runtimes, outdated libraries, expired certificates and stale logins are cleared before they become an outage, a store rejection or a breach. Expiry dates get tracked.
Knowledge Held Beyond One Person
Architecture notes, environment setup, deployment steps and a list of every third-party account are written down and stored in your repository, where the next developer can find them. No one phone number holds the business up.
Routine Releases With a Rollback Path
A tested staging environment, tagged releases in version control and a rehearsed rollback let routine changes go out during working hours without anyone holding their breath. Releases become ordinary work.
Reserved Capacity for Improvements
Under a maintenance retainer, small improvements such as a new report column or a revised invoice layout are scheduled alongside urgent fixes instead of competing with them. The roadmap moves in small steps.
What Software Maintenance, Support and Rescue Covers
Everything required from operational discovery to production deployment and long-term maintenance.
Existing Application Takeover
Web, mobile, SaaS and e-commerce applications built by other vendors are adopted, with repository access recovered, hosting logins reissued and the development environment rebuilt from scratch. Your team then has one contact.
Code Audit and Application Health Report
A structured review covers code quality, architecture, security exposure, dependencies, the database schema and hosting, with findings in plain language and risks ranked by business impact.
Bug Fixing and Production Support
Each defect is reproduced, diagnosed and fixed at the root, including the recurring ones that earlier developers only patched on the surface. A regression test is added.
Framework and Dependency Upgrades
Laravel, React, Next.js, Node.js and NestJS versions are upgraded in steps on a staged copy, never on production, and regression checks then cover login, ordering and billing. Each hop gets tested.
Legacy PHP Maintenance
Older PHP, CodeIgniter and hand-written applications still running the business are supported, including migration to a supported PHP release, a rebuilt php-fpm setup and a current server. Old code still earns money.
Security Patching and Access Cleanup
Security updates are applied and known vulnerabilities closed. Credentials are rotated, ex-employee and ex-vendor access is removed from SSH, cPanel and the admin panel, and server and database logins move under your control.
Database Maintenance
Work covers index and slow-query review, cleanup of oversized session tables and log files, and storage growth checks before the disk fills. Backup routines are restored and verified.
Monitoring and Alerting
Uptime checks, error tracking and alerts reach a channel your team reads, so a failure arrives as a notification and not as a phone call from a customer. Customers stop being the monitor.
Deployment Stabilisation
A repeatable release process with a staging environment, Git branching discipline and a rollback path replaces manual file copies onto the live server. Releases stop being events.
Incomplete and Abandoned Project Recovery
What was built is compared with the original proposal screen by screen, reusable modules are kept, and the remainder is re-scoped and taken to production. Paid-for work is not thrown away.
Maintenance Retainers and Annual Contracts
Ongoing support has agreed monthly capacity, defined severity levels and a single channel for raising issues, and periodic reports cover work completed, tickets still open and application health. Annual maintenance contract terms are written down.
Vendor Transition Support
When you change development partners, a handover checklist covers the account inventory, repository and database transfer, DNS and domain control, and reissued credentials in your own name. Nothing is left in a personal account.
Situations Where This Service Is Usually Needed
Real-world business processes we configure and automate.
Undocumented Laravel Portal at a Distributor
A distributor books dealer orders and tracks credit limits on a Laravel portal built by a freelancer who no longer responds to messages. The running code and database are pulled from the hosting account, the environment is rebuilt and each module is documented in a short architecture note. Credit-limit logic is corrected. The parallel Excel sheet can be retired.
Abandoned Mobile App at a Diagnostics Chain
A diagnostics chain paid for a patient booking and report app that reached internal testing and then stalled when the original team moved on. The build no longer compiles. The store rejects the outdated SDK target. Remaining screens are finished, the SDK and libraries are updated, and the app is published on Google Play and the App Store under the clinic’s own developer accounts.
SaaS Product With Repeating Bugs
A small B2B SaaS product with paying subscribers sees the same billing and session errors after each release, and its original developers have left. Error tracking is added and causes are fixed. Regression tests now guard billing and session handling, and every release follows a written checklist with a rollback step before it reaches subscribers.
D2C Store With Checkout Failures
An online brand on a custom-built store finds that checkout fails for some customers after a payment gateway API change, and refund requests start arriving. The gateway integration is upgraded, failure logging is added, and every affected order is reconciled line by line against the gateway dashboard. A failed payment becomes visible to the team.
Manufacturer on an End-of-Life Server
A production tracking application runs on an old PHP release and on a shared server that the hosting provider is retiring. The code is upgraded to a supported PHP release, tested against a copy of the production database and moved to current infrastructure in a quiet window. Supervisors keep the screens they know. No retraining is needed.
Professional Firm Changing Vendors
A practice-management system depends on an exiting vendor who still holds the repository, the server login and the domain registration in its own name. The handover runs as a checklist covering accounts, code and database transfer and credentials reissued in the firm’s name, with each line signed off by the firm. Maintenance can continue under a retainer.
Is This Service Right for Your Business?
We partner with established businesses that have outgrown manual processes and want reliable systems.
Businesses Whose Developer Is Unreachable
The freelancer or agency that built the application has stopped responding, closed its doors or moved to other clients, and nobody left can change a line safely. Support has simply vanished.
Companies Running Another Vendor’s Software
The application runs daily operations well enough, yet nobody on your side can explain a module, extend a report or repair a failed import when something breaks. It works until it does not.
Founders With a Project Stuck Before Launch
Most of the build is paid for yet incomplete, so the need is an assessment of what is usable and someone to carry the remaining work into production. Throwing it away wastes it.
Teams Carrying an Ageing but Critical System
Billing, dispatch or scheduling depends on software several framework versions behind, and the upgrade keeps being postponed because nobody wants to be blamed if it breaks. Delay is its own risk.
Not a Fit When a Rebuild Is the Right Answer
Where the code cannot carry what the business now needs, maintenance postpones the cost, so the audit scopes a rebuild instead of selling a retainer on a dead end. Honesty comes before the contract.
Not a Fit When Standard Software Already Does the Job
If a custom application does little more than a subscription accounting or CRM product, moving to that product is usually simpler than maintaining code. The audit says when that applies.
Enterprise Capabilities in Plain Business Terms
Codebase and Architecture Review
The code is read as it stands, and modules, cron jobs and data flows are mapped into a record of what exists rather than what was promised.
Environment Reconstruction
The application is made to build and run again, locally and on staging, even when setup instructions were never written down by anyone. Config is rebuilt from the live server.
Issue Triage and Ranking
One backlog holds every reported problem. Each is reproduced on staging, sized in hours and ordered by business impact before anyone writes a fix, so the loudest voice does not win.
Root-Cause Analysis
Recurring defects are traced to their source. A stack trace, a database query log and a bisect through earlier commits replace another surface patch that fails the following month.
Error Tracking and Log Review
Application errors and server logs are gathered in one Sentry project, so every failure arrives with its stack trace, the affected user and request.
Uptime and Health Monitoring
Checks on availability, response time, SSL expiry and failed scheduled jobs send alerts to a channel your team reads, not to an inbox nobody opens.
Backup and Restore Verification
A backup is tested by restoring it. An untested backup is only an assumption.
Dependency and Version Upgrades
Runtimes, frameworks and libraries are upgraded in stages. Composer and npm lockfiles are reviewed, each hop is tested on staging, and regression checks cover login, checkout and the reports the business cannot lose.
Security Patching and Access Control
Known vulnerabilities are closed and credentials rotated. Logins that belong to people who have left, whether staff or earlier vendors, are removed from the server, the repository and the admin panel.
Database Health Checks
Slow queries, indexing and data growth are reviewed. Tables that quietly fill the disk, such as audit logs, session rows and abandoned carts, are archived or cleaned up before the server stops accepting writes.
Release and Rollback Process
Git version control and staging sign-off come with a documented way to undo a release that misbehaves, written as steps anyone on call can follow.
Documentation and Handover Pack
Architecture notes, environment setup, deployment steps and an account inventory let the next developer pick up the work on day one, without phoning anyone who built it.
Our Structured 6-Step Delivery Process
A transparent path from your first conversation to a reliable production release.
- 01
Access and Discovery
Everything that exists is collected: the repository or a copy from the live server, hosting and database logins, domain control, app store accounts and third-party keys. You name one person authorised to grant access and hand over a list of the problems that hurt most, ranked by how often customers notice them. An NDA is signed before anything is shared.
- 02
Code and Infrastructure Audit
The environment is rebuilt and the code read. Database, server, dependencies, backups and security exposure are reviewed, and you receive a plain-language health report with risks ranked by business impact and a repair-or-rebuild view.
- 03
Stabilisation Plan
The report becomes a prioritised backlog that separates critical risks, recurring defects, version upgrades and improvements, each item sized so you can approve or defer it. You decide the order. Cost and sequence are agreed here. Nothing in production changes before this gate.
- 04
Critical Fixes and Upgrades
Urgent items are fixed, security patches applied, dependencies upgraded and a reliable deployment path restored, with every change written up in the ticket that raised it. Each change is shown on staging first. It needs your acceptance before it reaches production.
- 05
Testing, Deployment and Documentation
Regression tests cover every touched area and the journeys the business cannot lose, such as login, order entry, invoicing and the month-end report. The release goes out with a rollback path. Monitoring and backups are verified, and written architecture, environment and deployment documentation is handed over to your team, with a walkthrough for whoever will run it next.
- 06
Ongoing Maintenance and Support
The support terms are agreed: how issues are raised, how severity is judged, how much capacity is reserved each month, and what is reported back. Your team gets a short walkthrough.
What You Receive Upon Project Completion
Everything required to run, maintain, and expand your software without vendor lock-in.
Connects With the Systems You Already Rely On
We build bridges between your software so you don't have to replace functional existing tools.
Hosting & Infrastructure
- AWS
- DigitalOcean
- Google Cloud
- cPanel & shared hosting
- On-premise Linux servers
Source Control & Release
- GitHub
- GitLab
- Bitbucket
- GitHub Actions
- Google Play Console
- App Store Connect
Monitoring & Backups
- Sentry
- UptimeRobot
- Grafana
- CloudWatch
- Scheduled database backups
Business Systems Already Connected
- QuickBooks & Xero
- Stripe / PayPal / regional payment gateways
- WhatsApp Business API
- SMS & email gateways
- Courier and logistics APIs
Support & Ticketing
- Freshdesk
- Zendesk
- Jira
- Shared support inbox
Selected for Reliability, Speed, and Longevity
Technology chosen to match your operational scale and long-term maintainability.
Backend & Legacy Stacks
Frontend & Mobile
Databases
Infrastructure & Tooling
Testing & CI Tooling
Why Business Owners Choose GullySystem
Work on Code Written by Others
Many teams maintain only their own work. Reading an unfamiliar codebase, rebuilding a missing environment and making sense of undocumented stored procedures or cron scripts is the core of this service. It is not an exception.
Audit Before Estimate
A takeover is not quoted blind. The audit comes first, so both sides know what is being signed, and you can stop after it if you want a second opinion from another firm.
A Stated Verdict on Repair Versus Rebuild
A sound application is maintained. Otherwise you get the reasons in writing, along with what a partial rewrite of the worst modules would involve and which parts of the schema could survive it.
Documentation as a Deliverable
Architecture notes, environment setup, deployment steps and an account inventory are part of the work, so no single person’s memory holds the business up again. Documentation is a deliverable.
Everything Held in Your Name
Your name sits on every account. The repository, servers, domain, database and app store listings belong to you, so the application can move to another team at any time without a recovery exercise.
Business Impact Sets the Priority
Whatever affects orders, customers or compliance is fixed first. Tidier code can wait, because the backlog is ordered by what the business feels, such as a failed checkout or a wrong stock figure, not by technical interest.
Flexible Engagement Options
Choose an engagement model that matches your operational scope, budget, and timeline.
Application Health Audit
A one-time review produces a health report, a ranked risk list and a maintenance backlog, with no obligation to continue and no change made to production. Start here when the software’s state is unknown.
Rescue and Stabilisation Project
A bounded project clears the agreed critical list. It covers urgent fixes, security patches, dependency upgrades, a working deployment path and documentation handover, and it ends when the agreed list is closed.
Project Completion Takeover
This suits applications that never reached production. What is reusable is assessed, the remaining work is re-scoped against the original brief, and the product goes live under your own store and hosting accounts.
Maintenance Retainer and Annual Contract
Continuous support comes with agreed monthly capacity for fixes, upgrades and small enhancements, a defined channel for raising issues, written severity levels and regular reporting on work done. Some businesses call this an annual maintenance contract.
Frequently Asked Questions
Straightforward answers to the questions owners ask before getting started.
Can you maintain software that another company built?
Yes. Adopting applications built by freelancers, agencies and in-house developers who have since moved on is most of what this service does. The original developer’s cooperation is usually not needed. Access to code, server and database is enough. Where the code itself is missing, the live server usually holds a deployable working copy, and the audit starts from that copy, whatever state the files are in.
Can you complete a project that was never finished?
Yes. The audit first compares what exists with the original proposal, because the two often differ by whole modules that were promised but never built. You receive a statement of which parts are usable, which need rework and which are missing, with a re-scoped plan to reach production. Sometimes rebuilding a module beats repairing it. That comparison is shown to you.
Will you tell us if the software should be rebuilt instead of maintained?
Yes. The verdict arrives with the audit. If the architecture cannot support what the business now needs, or every change breaks something else, continued maintenance can cost more over time than a planned rebuild. The audit lays out three options, which are to maintain, to rewrite the worst modules or to rebuild, and weighs the trade-offs of each.
What access do you need, and what do you need from our side?
It depends on the application. Typically we need the source code or a copy from the live server, hosting and database logins, domain control and, for a mobile app, developer store accounts. Payment, SMS and WhatsApp keys are needed too. From your team we need one person authorised to grant access, a list of the problems that hurt most and someone to confirm each fix works. Missing accounts, and any still held by a previous vendor, are recovered and reissued in your name during the first stage. Nobody depends on the old vendor’s goodwill.
What if our previous vendor will not hand over the code or hosting?
Work starts from whatever you can legally access, which is usually the running application on its own server and the live database behind it. The server usually holds deployable code. An inventory is prepared of every account, key and asset that should be in your name, so a handover request to the previous vendor can name each one specifically. If something cannot be recovered, you are told what has to be rebuilt, in writing, before you commit to any cost, so the decision stays yours.
How do you price a takeover?
In two stages. Nobody can price maintenance before seeing the code. The audit is priced on the size and condition of the application: modules, screens, stack, integrations, and whether the code and environment exist or must be recovered. Work after the audit is priced against the backlog you approve, or as reserved monthly capacity under a retainer, with scope written before anything starts. Any figure is confirmed after scoping.
How long does it take to stabilise an application?
It depends on what the audit measures. Those factors are the amount of code and access that exists, the size of the application, and how far the framework and libraries have fallen behind. Others include whether a staging environment can be built, which payment, SMS or courier integrations must be re-tested, and whether the database or server has to move. Emergency fixes need access and a repro case. Stabilisation follows the schedule agreed afterwards.
Can you handle urgent production issues, and do you provide an SLA?
Yes, under a support arrangement agreed in writing. Severity levels, the channel for raising an issue and the working hours covered are all defined, so an outage and a cosmetic glitch never share one queue. We promise only what can be staffed. A narrower SLA that is always met is preferred over round-the-clock cover that nobody can sustain through nights, holiday weeks and staff leave. Without a retainer, urgent work waits for capacity.
Can you modernise legacy software, upgrade the framework or move to a new server, without breaking what works?
Yes, with care. Both happen on a copy first. Upgrades go in steps rather than one jump, and regression tests cover login, order placement, checkout, billing and the reports management relies on. A server move or database migration starts with a trial run on staging, where record counts and key reports are compared against the existing system. The switch-over happens in a low-traffic window. The old environment stays intact until you confirm the new one behaves, and every release keeps a documented rollback path that has been rehearsed on staging.
How do you protect our data and credentials?
An NDA is signed before the audit begins. Access is granted through named accounts that you own and can revoke at any time, never through shared logins passed around in chat. Credentials handed over during the takeover are rotated once the handover is complete, and masked or limited data is used wherever the task allows. Production data stays on your infrastructure. The handover pack lists who can reach what.
Do we own the source code, hosting and app store accounts?
Yes. Code lives in a repository under your organisation. Servers and domains are registered in your name, and mobile apps are published from your own Google Play and App Store developer accounts. Where assets are inherited under someone else’s account, moving them into your name is part of the takeover, and the old owner is then removed. Another team can step in at any point. No permission from us is needed.
Will you train our team or work alongside our in-house developer?
Yes to both. Office staff get short walkthroughs of the admin screens and the support process, so they know what to log and who answers. A developer joining or already on your side gets a handover covering the architecture, environment setup, deployment process and known weak points. We can also act as a second pair of hands while your own engineer gradually takes over the application, module by module. Nobody is left alone with it.
Our custom software is unreliable. Should we switch to an off-the-shelf tool instead of fixing it?
Sometimes. The audit says which case you are in. Switching makes sense if the software does something standard, such as accounting, basic CRM or plain invoicing, and a ready-made tool now covers it properly. It rarely makes sense once the software holds years of transaction history, connects to processes an off-the-shelf tool cannot replicate, or follows a workflow unique to you. Migration and retraining usually cost more. Repair is never assumed to be right.
Read before you decide.
Practical notes on the questions this service raises, not product marketing.
What Is Software Maintenance?
Software maintenance covers corrective, adaptive, preventive and improvement work that keeps a working application reliable and current.
What Should a Software Maintenance Contract Include?
What a small business should check in a maintenance contract: covered systems, severity levels, change requests, ownership of code and access, and exit terms.
Signs That Your Existing Application Needs Maintenance
Recurring errors, broken integrations, staff workarounds and old support tickets are signs it’s time to review your application’s maintenance.
How to Take Over Software Developed by Another Company
A practical sequence for taking over an application built by a previous vendor: access, environment, dependencies, risk and handover.
Let’s Build the Right Software for Your Business
Tell us about your current operational challenge, spreadsheet bottleneck, or software requirement. An experienced engineer will review your workflow and reply within one business day.
- No obligation consultation
- Senior engineer reviews your brief
- Your operational details stay 100% confidential
Start with your requirements
Seven short steps that tell us what you need. An engineer reads them before getting in touch.
Share your requirementsRelated Practices & Services
Custom Software & Product Engineering
When the audit shows a rebuild is the better answer, we design and build the replacement web, mobile or SaaS application from a clean foundation.
QA and Software Testing
Structured test coverage and regression suites so the defects we fix during stabilisation do not quietly return with the next release.
Performance Engineering
For applications that work but crawl: slow queries, heavy pages and month-end reports that time out under real load.
Cybersecurity and Application Security
For applications carrying payments, personal data or regulated records, a security review of what an unfamiliar codebase might be quietly exposing.
