Open by design
Your data belongs to you. Always.
That sentence is on a lot of websites. Here is what it means in practice: every capability in the platform is a documented REST route and an MCP tool, your files live on your storage account, and there is no term to serve out.
No lock-in as a business strategy — which means we have to be worth keeping rather than hard to leave. That is the intended effect, not a side effect.
One capability, every door
Most software has an API the way a building has a fire exit: it exists, it is documented somewhere, and it is not the way anybody actually gets in. The API gets whatever the product team had time for, and it is always a release or two behind the screens.
Here, a capability is written once, and the screen, the REST route and the MCP tool are three projections of the same thing.
| The usual shape | How this is built |
|---|---|
| The UI is the product; the API is a port of it, maintained separately. | One capability, discovered automatically, projected onto every door at once. |
| “Every feature will have an API” is a policy, so it rots — the cost lands on whoever is nearest a deadline. | The tool is a by-product of the thing that had to be written anyway. There is nothing extra to skip. |
| Nobody notices the gap until an integrator hits it. | A capability that exists on only one door fails the build. Not a policy — a gate. |
The list of capabilities is published as a manifest, so what the platform can do is something you can read rather than something you have to ask us.
Which is why an agent can do it
The reason a workflow can be run by a person on a phone, a clerk on a screen, or headless by an agent is not that we wrote three versions of it. It is that a step declares the capability it needs, not the screen it wants.
“Set the tax status” is the requirement. A madlib panel, an MCP tool call, and an agent that queries a state portal first and then writes the answer are three renderings of the same step.
- Same executor, same permissions, same locks, same audit trail. An agent is not a side door; there is no side door.
- Which door a call came through is recorded and never acted on. It is audit information, not a branch — so behaviour cannot quietly diverge between the screen and the API.
- A human can pick up an agent’s run mid-way, and an agent can pick up a human’s. A step only one of them can satisfy would break the other, so that is designed out rather than discovered.
- Events are discoverable too. An agent can ask what events exist and what is bound to them — which is what lets you ask one to set up a rule rather than telling it exactly which rule to use.
Your files, on your storage
Photographs are the most valuable thing a field business accumulates and the easiest thing for a vendor to hold hostage. So the bytes can live in your account.
Your bucket, your subscription
Amazon S3, Azure Blob, Google Drive — or a share on your own server for a shop that wants it in the building. You point us at it and the files are yours from the first upload.
Nothing above the provider knows where a file is
The platform passes around a file descriptor, not a path. So moving from one provider to another is a setting, not a project.
Credentials never reach a browser
Access is a signed, expiring link. Sensitivity travels with the file reference rather than being re-decided at each door.
And the proof survives the shrink
Metadata read and the original hashed on the server, before anything is resized. The hash is kept forever even if the original is discarded.
A customer whose photographs sit in their own account cannot be held hostage — which means we have to be worth keeping instead of hard to leave. That is the intended effect.
Getting your data out
- Back to your system of record. Times, parts, completions, captures and documents, against the same job id the work came in with.
- To QuickBooks for the financial side. In build
- To your reporting tools. Captured answers live in real typed columns rather than an opaque blob, which is the difference between data you own and data you can only look at through our screens. The dashboard your operations manager keeps asking for is a connection string: Power BI, Tableau, Excel and SSMS read it as ordinary tables over a read-only SQL login, with no export step and no nightly job. A full database endpoint of our own is where that is going. In build
- In bulk, whenever you want, photographs included. Not a support ticket and not a professional-services engagement — and not links that expire when the invoice does. If you would rather the files never sat with us at all, point us at your own storage and they never will.
- Straight out of the API, using the same documented routes everything else uses. There is no export feature to request, because there is nothing special about exporting.
And you can leave
No term. $75 per tech per month, $25 per office user, cancel at the end of any month. And in the augment model there is very little to unwind in the first place, because the system that runs your business never moved.