See what is actually there.
Module, service, route, API, dependency, and integration inventory. Dead code candidates. Migration blockers. The map gets cleaner as we read.
Grayhaven starts by deciding whether the work should happen. If it should, we map your legacy system, capture critical behavior, build a verification harness, and ship bounded modernization increments with human-reviewed AI assistance.
The first conversation is a fit check, not a commitment to the paid Preflight.
AI can write new code fast. The hard part is proving the new code preserves the billing rules, workflow quirks, integrations, reports, and edge cases the business already depends on. A blind rewrite replaces known risk with unknown risk. We do the opposite — map, harness, ship, in that order.
Module, service, route, API, dependency, and integration inventory. Dead code candidates. Migration blockers. The map gets cleaner as we read.
Critical workflows captured. API contract snapshots. Golden tests for the boundaries that matter. A test that fails loudly is the deliverable, not a green CI run that lied.
Bounded modernization increments sized to one module, route, workflow, or report. Each ships behind a parity check. You can stop at any time and what is shipped continues to work.
Credible modernization starts by avoiding work that will not reduce delivery risk. On a fit call, we are looking for the smallest boundary where a Preflight can prove something real.
These examples show the shape and verification posture of the work. They are anonymized composites, not customer case studies.
Old AngularJS admin dashboard with weak test coverage. Behavior captured against a Playwright harness before any line of React was written.
Legacy ASP.NET MVC + WCF surface mapped, dependency risk scored, and API contract snapshots installed in CI before the first service was touched.
Test-poor Rails 4 monolith with hidden business rules. Golden-path coverage installed before any service was extracted. Tranches sized to one workflow at a time.
Excel and VBA workflow with embedded business rules. Behavior captured as fixtures, ported to a typed service, and verified with before-and-after output comparison.
Spring 4 monolith with unclear service boundaries. Module-level risk map produced, contract tests added at the boundaries, then modules modernized to Spring Boot 3 one at a time.
Sunsetting WCF service kept callers stable behind a REST facade with contract snapshots. Migration tranches retired the legacy surface one route at a time.
Migration tranches and full programs are scoped separately on the call. You always keep your code and your IP.
We are deliberately slow to take on engagements. If we are not the right fit, we will say so on the first call.
Contact
Show us the system your team cannot safely change. We’ll tell you whether a Preflight makes sense, what boundary we would inspect first, and whether a first verified increment is realistic with the access and domain knowledge available. If we’re not the right team, we’ll say so.