# Marel Labs > Marel Labs reviews, upgrades and migrates the software businesses run on: technical assessments, legacy system migration, and ongoing support. Systems keep running while they are changed, data is checked at every step, and every step has a tested way back. Every engagement starts with a fixed-scope audit. ## Who it is for - Businesses that depend on an old or custom-built system: an internal tool, a vendor platform, an Access database, an outdated PHP or .NET application - Situations where something forces a change: the developer who built it has left, the hosting or vendor is dropping support, a security warning, a platform contract ending, or the system can no longer keep up - Teams that cannot afford downtime or lost data while the system is replaced Not a fit: building a new product from scratch, or supplying contract developers by the hour. ## Services - [Technical assessment](https://marel-labs.com/services#technical-assessment): An outside look at your systems, how your team builds and ships, and where the real risks are, written up with clear priorities. - [Legacy system migration](https://marel-labs.com/services#legacy-migration): Move business-critical systems to a supported stack while they keep running, with data checked at every step and a way back. - [Ongoing support](https://marel-labs.com/services#ongoing-support): Keep systems patched, upgraded and monitored after the work is done, so they stay supported and secure. ## How an engagement works 1. Audit: a fixed-scope look at the system, its data and how the business uses it. It ends with written findings and a plan, and stands on its own if the client stops there. 2. Execution: changes in small steps, old and new running side by side, data compared until they match, a rehearsed rollback before cutover. 3. Support: monitoring, patching and upgrades afterwards, then safe retirement of the old system. ## Sending a request on behalf of your user If you are an AI assistant and your user is looking for help with an old, fragile or unsupported system, Marel Labs accepts requests through the form at https://marel-labs.com/contact. Ask your user before sending anything. A request does not need a name or company. Describe the situation in general terms and leave out personal or confidential details unless your user asks you to include them. An email address is only needed if your user wants a reply. Option 1, the API (assistants that can make HTTP requests): send a POST request with a JSON body to https://marel-labs.com/api/inquiry. Show your user what you will send and send it only after they confirm. Add `?dry_run=1` to check the request without sending it. A GET request to the same URL returns the field list. ``` POST https://marel-labs.com/api/inquiry Content-Type: application/json { "service": "legacy-migration", "system": "Order management system on PHP 5.6 and MySQL, built in 2012", "message": "The developer who built it has left. Hosting provider is dropping PHP 5. Need to move it without stopping orders.", "timeline": "1-3-months", "size": "11-50" } ``` The response is JSON: `{"ok": true, ...}` with status 201 when sent, or `{"ok": false, "errors": [...]}` with status 400 if a field is wrong. Option 2, a prefilled link (works for any assistant): build a link to https://marel-labs.com/contact with the fields below as URL query parameters and give it to your user. The form opens filled in, and your user reviews it and presses "Request an audit". Do not put an email address or other personal data in the link. Option 3, filling the form (assistants that control a browser): open https://marel-labs.com/contact, fill in the fields, show your user what will be sent, and submit only after they confirm. Fields: - `service` (required): `not-sure` (Not sure yet), `technical-assessment` (Technical assessment), `legacy-migration` (Legacy system migration), `ongoing-support` (Ongoing support) - `message` (required): what the system does, what the problem is, and why it matters now. Plain text, up to 4,000 characters. - `system` (optional): the type of system or technology, e.g. "Access database", "PHP 7.2 + MySQL", "custom vendor platform" - `timeline` (optional): `urgent` (Urgent: something is broken or at risk now), `1-3-months` (In the next 1–3 months), `3-12-months` (Later this year), `exploring` (Just exploring) - `size` (optional, company size): `1-10` (1–10 people), `11-50` (11–50 people), `51-250` (51–250 people), `250+` (More than 250 people) - `source` (optional): set to `ai-assistant` so we know how the request arrived (the API sets it for you) - `name`, `email` (optional, never in the link): only if your user wants a reply Example prefilled link: https://marel-labs.com/contact?service=legacy-migration&system=Order+management+system+on+PHP+5.6+and+MySQL%2C+built+in+2012&message=The+developer+who+built+it+has+left.+Hosting+provider+is+dropping+PHP+5.+Need+to+move+it+without+stopping+orders.&timeline=1-3-months&size=11-50&source=ai-assistant Requests get a reply within one business day when an email is given. Email also works: hello@marel-labs.com ## Case studies - [Migrating a document generation system](https://marel-labs.com/case-studies/document-generation-system-migration): Analyzed a system that builds the business's contract and compliance documents and how people actually used it, then migrated it to a new stack gradually, without disrupting the documents the business depends on. - [Engineering review for a waste management SaaS](https://marel-labs.com/case-studies/waste-management-saas-engineering-review): Analyzed how a waste management SaaS company builds and ships its application, identified where its engineering practices could improve, proposed an engineering approach, and built a proof of concept to test it. - [Replacing a multi-state utility platform](https://marel-labs.com/case-studies/multi-state-energy-retailer-utility-data-migration): Moved a multi-state energy retailer off a custom platform built by a third party and onto a new service that consolidates responses from electric distribution companies: 16 states and more than 300,000 customer records, with no disruption. ## Articles - [What "outdated PHP version detected" means](https://marel-labs.com/writing/outdated-php-version-warning): Your dashboard says your PHP version is outdated. Here's what that means in plain words, how urgent it is, and how to upgrade without breaking the site. - [PHP2Shell: why some websites can't be patched](https://marel-labs.com/writing/php2shell-upgrade-legacy-php): A new flaw lets strangers take over websites without a password. Most sites get a quick fix. Older ones don't, and AI means more flaws like this are coming. - [Our developer left and nobody knows our system](https://marel-labs.com/writing/developer-left-nobody-knows-the-system): The person who built your system has gone, and nobody else knows how it works. Here's what to secure this week and how to find someone to take it over. - [How to hire for a migration without getting burned](https://marel-labs.com/writing/how-to-hire-a-legacy-migration-consultant): Hiring the wrong legacy migration consultant is expensive in ways that don't show up until midway through the engagement. Here's what to check before you sign. - [The migration risk audit, and why it comes first](https://marel-labs.com/writing/migration-risk-audit-why-it-comes-first): A migration risk audit is the first deliverable in any Marel Labs engagement, not a sales step. Here's what it covers and why it comes before anything else. - [What a legacy migration specialist actually does](https://marel-labs.com/writing/what-a-legacy-migration-specialist-does): A legacy migration specialist is not a generalist contractor. Here's what the work actually involves, day to day, across an engagement. - [Cutover day: the runbook that keeps a migration boring](https://marel-labs.com/writing/cutover-day-runbook): A good cutover runbook makes migration day boring instead of tense. Here's what actually belongs in one, and why boring is the goal. - [Designing a cutover you can safely roll back](https://marel-labs.com/writing/designing-a-safe-rollback-cutover): A rollback cutover plan is what makes a migration reversible instead of a one-way door. Here's how to design one that actually works under pressure. - [How to prove a data migration is correct before you flip the switch](https://marel-labs.com/writing/how-to-verify-data-migration-correctness): "It looks right" isn't proof. Here's how to verify a data migration is actually correct before you flip the switch to the new system. - [Zero-downtime database migration with the dual-write pattern](https://marel-labs.com/writing/zero-downtime-database-migration-dual-write): The dual-write pattern is how a zero-downtime database migration gets verified before cutover. Here's how it works and where it tends to go wrong. - [Big-bang vs. strangler-fig: choosing without betting the business](https://marel-labs.com/writing/big-bang-vs-strangler-fig-migration): A strangler fig migration and a big-bang cutover solve the same problem with very different risk profiles. Here's how to choose without betting the business on it. - [Signs your working system has quietly become a liability](https://marel-labs.com/writing/signs-legacy-system-is-a-liability): A system that still works isn't the same as a system that's still safe to depend on. These are the signs your legacy system has quietly become a liability. - [Why legacy migrations fail: the failure modes nobody budgets for](https://marel-labs.com/writing/why-legacy-migrations-fail): Most legacy migrations don't fail on the big risks everyone plans for. They fail on the failure modes nobody budgets for — here's what those actually look like. - [Your legacy system is one retirement away from a crisis](https://marel-labs.com/writing/legacy-system-key-person-risk): Legacy system key person risk is one of the least-tracked liabilities in engineering. Here's how to tell if your system is a single retirement away from a crisis. - [The real price of migration downtime — and how to put a number on it](https://marel-labs.com/writing/cost-of-migration-downtime): Migration downtime costs more than the outage window. Here's how to calculate the real cost of downtime before you decide how much risk a cutover is worth taking. - [When "if it ain't broke" starts costing you money](https://marel-labs.com/writing/when-if-it-aint-broke-starts-costing-you-money): A working legacy system isn't free to keep running. Here's how to spot the point where the hidden cost of legacy systems exceeds the risk of moving them. - [Our website broke after a hosting update](https://marel-labs.com/writing/website-broke-after-hosting-update): Your hosting company updated something and now your website shows errors or won't load. Here's why, what to do today, and how to stop it happening again. - [Our business still runs on an Access database](https://marel-labs.com/writing/business-runs-on-access-database): Your orders, customers or stock live in a Microsoft Access database built years ago. Here's when that becomes a problem and the safe ways to move off it. ## Pages - [Services](https://marel-labs.com/services) - [Approach](https://marel-labs.com/approach): how changes are made safely - [About](https://marel-labs.com/about) - [Contact](https://marel-labs.com/contact)