Harbor AI · Grand Bend, Ontario

Software that runs real businesses, today

Eleven products in daily use — a taxi fleet's phone line, a contractor's receipts, a millwork supplier's catalogue. Four of them you can try right here, with the real screens and invented data. The rest are live; open any of them.

11Products live
4Try in browser
24/7Taking calls

Try one

Real interfaces, invented data. Nothing here touches a live system or a real customer.

🚕

Fleet Dispatch

Call routing and a trip log for a taxi fleet — one driver, one phone, one night. Shown here as Lakeshore Cabs, an invented fleet.

Live · in daily use

The business number rings. What happens next depends on one thing — whether the driver is on shift. Flip it and watch the call go somewhere else.

Dana Whitfield · 519-555-0148
A number the fleet knows — rings the driver's handset straight through, no greeting.
Why it matters: the driver's own mobile is never given out. The passenger sees the business line, and at 1 AM an unknown caller is usually a fare.

The phone pins the pickup and the drop. Everything else is said out loud, once, while pulling away — not typed at the end of a shift.

Press the button.
The tax is never the model's opinion. The amount is taken from the words; the HST is recomputed from the province's rate afterwards. A model that is confidently wrong about arithmetic is worse than one that stays out of it.

One week, added up as it happened. The driver sees all of it. The office sees all of it but one line.

Card fares$1,883.07
Cash fares (driver holds)$220.90
Card tips (company owes)$243.30
Cash tips 🔒 driver's own$13.17
Fuel to reimburse$288.45
Payout due to driver$893.89
Cash tips are structurally invisible to the office. Not filtered in the UI — the office reads a database view that has no such column, so the leak cannot be written by mistake.
🧾

Receipt Tracker Pro

Say what you bought. It files itself, with the tax worked out properly.

Live

A contractor in a truck, hands dirty, engine running. One sentence is the whole interaction — and one sentence may hold more than one receipt.

Press the button.

Two receipts out of one breath, each with its own category.

VendorHome Depot
Subtotal$41.59
HST 13% recomputed, Ontario$5.41
Total$47.00
MaterialsMiller job
VendorTim Hortons
Subtotal$7.96
HST 13%$1.04
Total$9.00
Meals50% deductible
Never trust the model's arithmetic. It reads the vendor, the total and the category. The subtotal and the tax are then derived from the province's rate — the one part of this that must be right every single time.

Out the other end, in whatever the bookkeeper actually uses.

Canadian small business, specifically. Provincial tax rates, CRA expense categories, the 50% meals rule — the details that make a generic tracker useless north of the border.
📐

SiteMeasure

Measure a suite once. Multiply it across the building. Walk it to confirm.

Live

A tower is not two hundred separate problems. It is four suite types repeated. Measure each type once, in full, and the building is mostly done.

Template 2-bed cornerType B
Entry door solid core, rated1 × 36"
Interior hollow, primed5 × 32"
Closet bifold2 × 24"
Casing210 lf
Base180 lf
Why a catalogue sits underneath it. "32 inch primed hollow core" is not a description, it is a line on a supplier's price list. The template points at the catalogue item, so a spec change reprices the whole building instead of sending someone back through their notes.
Type A · 1-bed Type B · 2-bed corner Type C · 2-bed Type D · studio

Now say how many. Change the building and watch the takeoff move — this is the arithmetic that used to be an evening with a clipboard and a calculator.

Floors 8
Suites per floor 6
Type B on every floor, to keep the demo honest about what it is showing. The real thing mixes types per floor and keeps common areas — corridors, stairwells, amenity rooms — on their own count.
Suites48
Entry doors48
Interior doors240
Closet bifolds96
Casing10,080 lf
Base8,640 lf
Door leaves to order384

Then someone walks it. The job on site is not measuring — it is confirming, and catching the one that is wrong.

Nothing walked yet
Press the button to start down the corridor.
The override is the whole point. One widened opening on one floor does not invalidate the template — it becomes an instance that differs, recorded against that unit, and the order changes by exactly one door.
🧠

Recall

Tell it things as they happen. Ask for them later in your own words.

Live

Capture is a text to a bot — no app to open, no form to fill. A voice note gets transcribed, a link gets read and summarised. Five things somebody told you this week:

Now ask in your words, not the words you stored. The note and the question often share nothing at all — which is precisely where searching for text gives up.

And once a day it arrives unasked — what is owed, who is waiting, what you said you would do.

A brief that repeats itself gets ignored. It reports what changed, and says so plainly when nothing did. The fastest way to make a daily message worth opening is to let it be short.
Shared, but only where you say so. Notes are yours by default; a circle lets a team search each other's — the same retrieval, run across several people's entries instead of one.

Everything else

All live. Open any of them.