Legacy X-ray
Microsoft Access · VB6 · FoxPro

Rebuild the old app your business can't lose, with proof it gives the same answers.

We rebuild business-critical Microsoft Access apps as modern web apps, and take on VB6 and FoxPro case by case. Before anyone switches, the new app has to pass acceptance tests you approved, built from what your old app actually does.

Fixed price for the agreed scope Acceptance tests you approve Final 40% due only on acceptance
Legacy App X-raySample report
Dealer warranty system · Microsoft Access · 2003–2012
8
forms
~45
business rules
3
confirmed defects (+10 potential)
ConfirmedWarranty tags always print claim #15's parts, whichever claim is open
ConfirmedExchange-rate source works on one PC only, and its rates are 100x too small
PotentialRepair-order totals can include another order's lines
PotentialTwo people adding claims at once can get the same number
Rebuilt app vs. results recorded from the original1,574 / 1,574
Technical demonstration on a public open-source app, data anonymised · case study
The sample, side by side

A real Access app, rebuilt as a web app, with the original's own answers as the test.

The same repair order in the original and in the rebuild. Real screens on the sample's anonymised data, not mock-ups.

The original Microsoft Access work-order screen: act 403575, claim 00021, total 1 032,61
Original · Microsoft Access, 2003–2012Repair order 403575, claim 00021. Total 1 032,61.
The rebuilt web app's work-order screen: act 403575, claim 00021, total 1032.61
Rebuilt · web app, 2026The same order, the same claim and lines. Total 1032.61.

The expected answers weren't written by us. Access itself produced them, by running the original app's own queries, totals and reports on the sample data. The rebuild has to reproduce every one, and the tests were then checked by breaking the rebuild on purpose.

Read the case studySample X-ray report (PDF)

Results recorded from the original, reproduced by the rebuild1,574 / 1,574
Money totals133 / 133
Automated tests70 pass
Defects introduced on purpose, caught by the tests16 / 16
Original re-recorded after a restartidentical

A technical demonstration: nobody commissioned it, nobody uses the rebuild, and it isn't deployed. How the screens compare visually, and use by a team, aren't tested. What is and isn't verified

Why now

The danger isn't the app's age. It's that nobody can safely change it.

These apps keep running until something around them changes: a person leaves, a PC is replaced, or an Office update lands.

One person knew how it worked

The developer moved on, the business rules live only in the code, and every change is a gamble with live data.

Errors hide in plain sight

In our sample X-ray, warranty tags printed the wrong claim's parts, and the exchange-rate table was a link to a file on the original developer's PC. See the sample.

The platform keeps moving

Microsoft support end dates for the tools these apps were built on:

  • Access 2016 & 2019 · Oct 14, 2025
  • Access 2021 · Oct 13, 2026
  • Visual FoxPro 9 · Jan 13, 2015
  • VB6 IDE · Apr 8, 2008

Access itself continues in Microsoft 365 and Access 2024, and the VB6 runtime is still supported on Windows 11, so an old app may keep working for years. The risk is the day it doesn't, with nobody able to fix it. Sources: Microsoft lifecycle pages for Access 2016, Access 2019, Access 2021, Access 2024, Visual FoxPro 9.0 and the VB6 support statement.

How it works

Three steps. Stop after any of them.

Each step leaves you with something you keep, whether or not you go on.

1

Free X-ray

Free · 2 business days after acceptance

A short risk report on one qualifying app.

  • What it does, in plain words
  • Each finding classified: confirmed, potential, or a decision for you
  • What breaks, and when
  • A size and price range, and which path we recommend
2

Diagnostic

$1,500 · credited to the rebuild

The full blueprint, and a fixed quote.

  • The business rules we identify, with dependencies and exceptions, for you to approve
  • Each defect, with a keep-or-fix decision
  • Acceptance tests, a timeline and a fixed price
3

Rebuild

Fixed price · from $6,000

Your app, rebuilt and accepted.

  • A modern web app on a standard database
  • Passes the acceptance tests you approved
  • Two weeks side by side, then switch

How the prices work. Rebuilds start at $6,000 for smaller applications. Your diagnostic establishes the full scope, timeline and fixed price before implementation begins, and any change after that is priced in writing before work starts. The diagnostic fee is credited in full against the rebuild if you sign within 90 days of receiving the diagnostic. After launch there's an optional care plan from $250 a month: managed hosting, backups, updates, and up to 2 hours of changes a month. Unused hours don't roll over, and anything larger is quoted and approved separately. Full terms are in each project's written agreement.

Not every app needs a rebuild.

The X-ray recommends one of three paths, and tells you when a rebuild isn't worth it.

Repair

Fix what's dangerous

Fix the defects that put money or data at risk, in the app you already have.

In stages

Move the data first

Move the data to a proper database server, then replace the screens one at a time.

Rebuild

Replace it, with proof

A new web app, accepted against your old app's behaviour. This is the path the guarantee covers.

Repair and staged work are quoted after the X-ray.

The acceptance guarantee

You pay the last 40% only when it passes the tests you approved.

60%when you sign the fixed scope
40%after it passes acceptance and 2 weeks side by side
  • Before we build, you approve the acceptance matrix: the rules we've identified, the scenarios recorded from your old app, and the results the new one must reproduce.
  • Each known defect is listed with a keep-or-fix decision. You make each call.
  • We run every scenario against the new app. Every agreed result must match.
  • If it doesn't pass, the final 40% isn't due. What happens next, a fix period and how either side can end the project, is set out in the written agreement.

Passing means passing the matrix you signed. We don't claim the new app matches the old one in situations nobody tested. Rules that live outside the app, such as other databases, scheduled jobs or systems we can't access, are listed as dependencies rather than guaranteed.

CheckOld appNew appResult
Claim 21 total1,032.611,032.61✓ match
Claim 3 reimbursement292.69292.69✓ match
Item "0" typed on a linelabour linelabour line✓ match
Warranty labelsclaim 15's partsthe open claim's✓ fixed
From the automated tests of the sample rebuild, a technical demonstration: 1,574 of 1,574 recorded results and 133 of 133 money totals match the original. The last row is the hard-coded claim #15, fixed because the sign-off said so. Layout and live use with a team aren't validated. How it was checked
For IT providers

A safe partner for the app you can't fix.

The first call about one of these apps usually goes to the company that runs the client's IT, so that's who we're built to work with. How partnering works →

We never take your client

We don't sell IT services. We work white-label or co-branded, whichever you prefer.

15% referral

15% of the net fees we collect on every job you refer, including the diagnostic. Paid monthly. Terms

Overflow capacity

Already sell migrations? Hand us the ones you don't want to staff, at a fixed price.

Your app, your data

What you keep, and how we handle what you send.

An app copy often contains customer records. Here's how we treat it. Where every copy lives is listed in our privacy notice.

You own the resultYour data is always yours. Once the final payment is made, so is the rebuilt app's source code: you get the code, the database and instructions to run it. Our pre-existing tools are excluded, and third-party components stay under their own licences.

Your infrastructure by defaultThe new app runs on your own or your IT provider's server or cloud account. Managed hosting under the care plan is optional.

Always a way backYour old app stays untouched and in use until you accept the new one.

NDA first, no email attachmentsIf you'd like an NDA, we sign it before you send anything. Files come through a private upload link, never by email.

A dedicated virtual machineYour app only ever runs inside a dedicated virtual machine. Working copies stay on our own workstation, out of online code repositories and out of our backups.

Anonymised when you want itWe can replace personal data with test values before analysis, then check that the business results haven't changed.

AI-assisted, with your permissionOur method uses AI coding tools (currently Anthropic's Claude) to read and rewrite code. We ask for your written OK before any of your material goes to an AI provider, and we can work from an anonymised copy of your data. What a provider keeps is governed by its terms, not ours.

Deleted after the projectWithin 30 days of the project closing, we delete every copy we hold, or sooner if you ask. There are no backup copies to expire. We can't delete what an AI provider has already processed, which is why we ask first.

Who you'll work with

Founded by an enterprise software engineer.

Frank Martin brings about six years of experience developing and modernizing enterprise software, including API modernization and database migration projects. He holds a master's degree in computer science and a bachelor's degree in mathematics. Legacy X-ray applies that experience to smaller businesses whose critical applications have become difficult to maintain.

Based in Milwaukee, Wisconsin. You deal with Frank directly, from the first email to handover. Frank on LinkedIn

Frank Martin
Frank MartinFounder and software engineer

How the work gets done

Every project follows the same method: extract the real app, catalogue each business rule, record what the old app actually does, rebuild, then test the two against each other.

AI tools speed up the reading and writing. A finding only goes in a report once it's confirmed in the database file itself, not just in the code. In the sample, that check removed two false alarms before they reached the report.

Questions

Before you send anything.

The questions owners and IT providers ask first.

What's in the free X-ray?

A short risk report on one app: what it does in plain words; the defects we find, each classified as confirmed (reproduced, consequence shown), potential (present, impact not reproduced) or a decision for you; what breaks and when; and a size and price range with our recommended path. The sample shows the format.

It isn't a fixed quote. The fixed price comes from the diagnostic, once you've approved the rule catalogue.

How fast is the free X-ray, and what qualifies?

You get it two business days after we accept your submission, which means we've confirmed in writing that it qualifies and that we can open it.

A free X-ray covers one Access app: one front-end file that still contains its source code (not only a compiled .accde or .mde), its data or back-end file, and any linked files, up to about 20 forms and reports in total. Bigger apps get a quoted assessment instead.

We take on a limited number of free X-rays each week, so we'll tell you whether we can take yours, and roughly when, before you send any files.

Could we repair the app instead of replacing it?

Often, yes. The X-ray recommends one of three paths, and says so when a rebuild isn't worth it:

  • Repair: fix the defects that put money or data at risk, in the app you already have.
  • In stages: move the data to a proper database server first, then replace screens one at a time.
  • Rebuild: a new web app, accepted against your old app's behaviour.

Repair and staged work are quoted after the X-ray. The acceptance guarantee covers full rebuilds.

What does "gives the same answers" actually mean?

It means passing an acceptance matrix you approve before we build: the business rules, the scenarios recorded from your old app, and the results the new app must reproduce.

Copying the old app blindly would copy its bugs too, so each known defect gets a keep-or-fix decision from you. We don't claim the new app matches the old one in situations nobody tested. That's why the matrix is agreed up front.

Will you find every business rule?

Nobody can honestly promise that for an app they've never seen. Rules can live outside the app: in other databases, scheduled jobs, spreadsheets, or systems we can't access.

The diagnostic gives you a catalogue of the rules we identify, plus the dependencies and exceptions we find, and you approve it before we build. The guarantee covers that approved acceptance matrix.

Is the price really fixed?

Yes, for the scope you sign after the diagnostic. If you want something added or changed after that, we write it up as a change request with its own price, and nothing changes until you approve it.

Rebuilds start at $6,000 for smaller applications. The $1,500 diagnostic is credited in full if you sign the rebuild within 90 days of receiving it.

Do you need our live data?

We need a copy, not access to your live system. If it holds sensitive records, we can work from a copy with personal data replaced by test values, or with the sensitive tables emptied. Tell us which before you send it. Nothing goes to an AI provider without your written OK.

Who owns the rebuilt app?

You do, once the final payment is made: the source code, the database, and instructions to run it, whether or not we host it. Our pre-existing tools are excluded, and third-party components stay under their own licences.

Do you handle VB6 and FoxPro?

Case by case. Our tooling and published sample are for Microsoft Access. VB6 and FoxPro apps go through the same method, and after a first look we'll tell you, before the X-ray, whether we can take yours on.

What do you rebuild it in?

By default, a web app written in Python (Django) on a PostgreSQL database. It runs in a browser, so nobody installs anything. If your IT provider needs a different platform, raise it in the X-ray call.

We already have an IT provider. Does this step on their toes?

No. We don't sell IT services, hardware or licences, and we're glad to work through your provider. How we work with IT providers.

What does the care plan include?

From $250 a month after launch: managed hosting, backups, updates, and up to 2 hours of changes a month. Unused hours don't roll over, and anything larger is quoted and approved separately. It's optional: by default the app runs on your own infrastructure.

What would you like?

We'll use these details only to reply to you. See our privacy notice.