ubb / Unique Business Basic Free report

Unique Photo · Since 1947

A photo companywrote a runtime.

Unique Photo has been in business since 1947. We are a distributor in Fairfield, New Jersey, and for decades we have run the whole company — inventory, purchase orders, sales orders, accounting — on a Business Basic ERP. This page is about what happened after that, and why the runtime underneath it is now something we sell.

The alternative was to keep paying rent on a language. Forever.

Alexander Sweetwood · Unique Photo
Fairfield, New Jersey · In business since 1947

01 What we run on

The software was never the problem. Everything around it was.
  • 1947In business since
  • Fairfield, NJWhere the company sits
  • TodayOur own orders go through this runtime

Inventory. Purchase orders. Sales orders. Accounting. All of it on a language older than the personal computer, on a system that works. Genuinely works.

That is the part people outside this industry never quite believe. Order entry written decades ago still ships product every day, correctly, at a cost per transaction nobody has ever had a reason to question. What sits inside those programs is thirty years of encoded business rules — every exception, every customer-specific price, every rule somebody learned the hard way and wrote down once, in code.

It has outlasted every trend that came and went around it. Client-server. The middleware decade. Two or three eras of the correct way to build software.

We were never trying to replace it. We were trying to stop paying for the ground it stood on.

02 The arithmetic

And every year, the same three things.

Not one of them was an argument about the software. All three were arguments about what the software was sitting on.

01The invoice

The license invoice arrived.

Per seat, per year, for a runtime designed before the IBM PC. It is not a roadmap you are funding and it is not maintenance on your own system. It is rent on a language, and it goes up when you add a warehouse.

02The hardware

The box got another year older.

One more year on the machine, and one fewer person willing to be the one who reboots it. There is a cold spare somewhere. There is a backup. Nobody has restored it end to end recently enough to say so out loud.

03The bench

The number of people who could safely change anything got smaller by one.

Never dramatically. One at a time, by retirement. Nobody is graduating into this language, so the queue of "can we just change this one thing" gets a little longer each year while the list of people who can safely answer it gets a little shorter.

03 The rewrite

The quotes came in the way they always do.

Millions of dollars. Years of disruption. And a promise to replace something that already worked with something that might.

It is the same quote every distributor in America has in a drawer somewhere. A multi-year programme to re-implement, in a modern stack, business rules that nobody has written down in twenty years — while the business those rules describe keeps changing underneath the project that is re-implementing it.

There was no version of it that came back cheap, or fast, or certain. At the end, assuming it landed, we would have spent several million dollars to arrive at roughly where we already were, minus the exceptions nobody remembered to specify.

So the answer was no. And the following year, the invoice arrived again.

The board said no. Correctly.

04 What we did instead

So we wrote our own runtime.

Not as a product. As a way to keep our own company running.

The reasoning was narrow, and none of it was visionary. Our programs were fine. Our data files were fine. Our people were fine. Exactly one component in that stack was the problem — the interpreter underneath all of it — and it was the only component we did not own.

Set against a rewrite, writing an interpreter is the smaller job. It has a definition, it has a finish line, and you can test it against the thing it replaces. A rewrite has none of those properties. So we measured the incumbent runtime instead of guessing at it, and we built against the measurements: reads, writes, decimals, screens, keys.

It took a long time. It runs our company today.

5,079

Programs parsed, 100%

A real production corpus, not a benchmark suite — 536,000 lines of Business Basic source, read without a single exception.

1.34M

Records verified byte-exact

1,344,450 records in one customer master, read on both engines and compared record for record. Not sampled.

245/245

Arithmetic cases matching

Penny-exact decimals, including the PRECISION rounding model. This is financial software. The pennies have to match.

The measurements in full, including what doesn't run yet

We didn't build this to sell it. We built it because we run on it.

Our own inventory, orders, purchasing and accounting go through this engine. Today. If it stops, we are not fielding a support call. We are not shipping.

05 Why that matters to you

Everyone else offering to fix this is a consultancy.

That is not an insult. It is a description of exposure. A consultancy carries a project. We carry the consequences, on the same software, in the same month, as you.

Our books

If the runtime is wrong by a penny, it is our ledger that is wrong

Not a customer's ledger — ours. Every case in the arithmetic conformance suite is there because a real number in a real month-end close has to come out right, and we are the ones who have to sign it.

Our warehouse

If it stops, it is our orders that stop shipping

This runtime is not a deliverable we hand over and walk away from. It is the thing standing between our own pick tickets and a very quiet building. That changes what gets shipped and what gets held back.

Our close

We are the most exposed customer this product has

Which means we find the defects first, in our own operation, before they are anybody else's problem. That is not a support policy we wrote down. It is simply where we happen to be standing.

There is no version of this where your problem is not also our problem. We have to live inside the thing we built.

06 The offer

There are thousands of companies in exactly our position.

Distributors, wholesalers, manufacturers. Running the business on Business Basic. Paying the same invoice, watching the same box age, down to the same last engineer.

We know what that position feels like because we are standing in it. We did not arrive from outside with a methodology. We had the problem, we could not buy the answer, so we built it — and once it was built and running our own company, keeping it to ourselves stopped making sense.

The terms are the ones we would want if we were sitting on the other side of the table. Your programs stay yours. Your data files keep their format. Your old system stays exactly where it is, and you can go back to it. We prove the behaviour matches before you commit to anything at all.

We built the way out for ourselves. We are offering it to everyone else in the same position.

Start here · free

Send us your programs. Get a compatibility report.

Our parser runs your whole corpus and reports what parses, what doesn't, and what we would have to look at next. No call and no salesperson — you can read the report and never speak to us again.

Get your free report
How the runtime works

Since 1947

Seventy-nine years.

You are being asked to put an operating dependency in someone else's hands, which is a fair thing to be careful about. Plenty of the companies that have sold you software over the last thirty years have since been acquired, changed direction, or quietly stopped answering.

Unique Photo has been in business since 1947, in Fairfield, New Jersey. This is not a venture we can wind down and walk away from, because it is the software our own company runs on. We will still be here.

Unique Photo · Fairfield, New Jersey · In business since 1947. If you would rather read before you talk, the compatibility page has the measurements and the gaps.