Smart Info Technologies

Home / Framework

One definition. Every layer.

The framework reads a metadata definition and runs the application from it — interface, backend and APIs, on web, mobile and desktop. No code is generated and nothing is deployed. This is what that means in practice.

What the definition holds

The specification is the system.

There is no gap between the document that describes the application and the application itself, because there is nothing in between them. The framework reads this definition and runs the system from it.

Entities & fields
The things your business tracks, their attributes, types, relationships and validation.
Screens & layout
Lists, forms, tabs, nested detail — including screens complex enough that most teams would hand-build them.
Roles & permissions
Who sees what and who may change it, enforced on the server for every request.
Rules & behaviour
Defaults, calculations, conditional visibility, status transitions.
Integration mappings
How your data maps to and from partner formats over EDI, XML and API.
Tenancy
Which organisation each record belongs to, isolated by the framework rather than by convention.

Define once, run everywhere

Three platforms, no parallel codebases.

The usual cost of "we also need it on mobile" is a second team, a second codebase and a permanent synchronisation problem. Here the same definition renders natively for each context.

WEB

Full operational screens

Dense grids, multi-pane detail views, bulk actions — the interface a dispatcher or clerk lives in all day.

MOBILE

The same data, in hand

The definition renders to a layout suited to a phone, for people who are moving rather than sitting at a desk.

DESKTOP

Where the desktop still wins

For workflows that need local integration or long-running sessions, without maintaining a separate product.

The same definition also drives the backend and the public API. Nothing is described three times, so nothing can disagree.

A rule change reaches the phone before the meeting ends.

This one is worth stating plainly, because it is where "also runs on mobile" usually turns out to be less than it sounded. Our mobile client reads the same definition the web application reads. It is not a separate build of a separate app, so changing a rule does not mean a new binary, a submission, and a wait in Apple's review queue while your operation carries on doing it the old way. Change the definition; the next refresh has it.

Ask us to prove this in the demo rather than taking it on trust. We will change a rule while you watch and you can pull-to-refresh on your own phone. It takes about ten seconds, and what matters is everything that doesn't happen in between.

How it actually works

There is no generated code.

This is the part people most often get wrong about us, so we'll be blunt about it. The framework does not read your metadata and write out an application for someone to build and deploy. It reads the definition and runs the application, directly, every time.

There is no build step, no generated source tree, and nothing to review, fork or merge. The definition isn't a blueprint that becomes the system. It is the system, being read.

  • Nothing sits between the definition and the running application, so the two cannot drift apart
  • An ordinary change is a change to the definition — not a code change, a rebuild, a test cycle and a release
  • There is no generated codebase for anyone to hand-edit, which is how generated systems usually decay
  • Improvements to the engine reach every customer's system without regenerating or redeploying anything
  • What the system does can be read in the definition rather than reverse-engineered out of code
  • The backend runs from the definition too — not just the screens, which is where most platforms in this category stop
  • Where something genuinely sits outside what a definition can express, we write real code for it — and you own that

Base, organization, role and user

One definition, resolved in layers.

Every application starts with a shared base definition. Our configuration team can then adapt that definition for an organization and refine it again for a role — without changing the common foundation. At runtime, the framework resolves those layers into the experience that person is allowed to use.

Users can personalize selected parts of that experience for themselves. For example, they can choose which permitted fields appear in Quick Search or in a results grid, and the order in which those fields appear. They are personalizing their workspace — not changing organization rules, role permissions or the underlying business model.

01 SIT foundation

Base definition

The shared business model: objects, fields, relationships, validations, workflows and standard behavior that form the common application foundation.

02 Configuration team

Organization configuration

Terminology, additional fields, rules, workflow variations and other organization-specific requirements are applied as a separate layer over the base.

03 Configuration team

Role configuration

The configuration team defines what each role can see and do, including which information and actions are available to that role inside the organization.

04 Individual user

User personalization

Within the fields and functions already permitted for the organization and role, each user can shape frequently used search fields and the information shown in result grids.

The boundary stays clear. Organization and role configuration determine what is permitted. User preferences determine how the permitted information is arranged for that individual.

What the user controls

Personalize the search experience without changing the application.

Two users doing different jobs may need very different information at hand. The framework lets each person organize the fields that matter most to them while staying inside the organization and role boundaries configured for them.

SmartSCM Customize Quick Search Fields dialog showing available fields and selected fields in display order
Quick Search

Put frequently used search fields first.

A user chooses from the fields available to that role and organization, then arranges the selected fields in the order that best fits the way they search.

SmartSCM Customize Grid Fields dialog showing available columns and selected columns in display order
Results Grid

Show the columns that matter to the work.

An LTL user may prioritize pieces, weight and volume, while a TL user may care more about equipment and routing information. Each can organize the grid without changing the shared screen for everyone else.

The same application can therefore be standardized at the foundation, tailored for an organization, governed by role, and still feel personal to the individual using it.

Where a variation is larger than an override can carry, new business objects and new roles are configured rather than the base being bent to accommodate one organization. What only we extend is the metamodel itself — the kinds of thing a definition can express. See what you configure and what we do below.

Where the framework came from

Twelve years in production, rebuilt this year.

Two questions get asked about any framework, and they pull in opposite directions. Is it proven? And is it current? A platform usually gives you one or the other — long-running and creaking, or freshly built and untested on anything that matters.

Ours has been running production operations since 2014, when we rebuilt our own transportation product on it after first building that product the conventional way. Twelve years of real operational load tells you precisely where a framework holds up and where it fights you. This year we shipped the current generation, rebuilt around exactly that.

PROVEN

The approach isn't new here

We have been running applications from a definition since 2014, across multiple live SaaS products and millions of shipments. This is not a direction we changed to recently; the design decisions in the current generation come from a decade of watching the earlier one under load.

CURRENT

The engine is this year's

The current generation shipped in 2026. Where the previous one made something harder than it should have been, that is what the rebuild addressed — informed by production experience rather than by guessing at requirements up front.

We did to our own framework what we tell customers a good system should let them do: change it in response to what the work actually turned out to need.

Worth checking on any platform you evaluate

Most definition-driven platforms stop being definition-driven at the back end.

On the surface this whole category sounds the same, so it is worth knowing where the differences actually are. Every serious platform here runs its screens from a definition — that part is genuinely solved, and solved well. Then real business logic arrives, and almost all of them hand you a programming language.

The form varies. A compiled plug-in module. A proprietary language of the vendor's own. Server-side scripting. A compiled extension in Java or C#. The vocabulary differs and the marketing differs, but the shape is the same: past a certain point, someone writes code, and from that moment you own a codebase — with its build, its test cycle, its release process, and the developer who understands it.

THE COMMON PATTERN

Definition-driven until it isn't

Screens, forms and simple rules come from a definition. Anything beyond that is written by hand in a real language, compiled, and deployed. The no-code promise holds right up until the logic gets interesting — which is exactly when it mattered.

That seam is where the maintenance burden starts, and it is usually invisible during a demo, because a demo never gets that far.

HERE

Definition-driven the whole way down

The screens run from the definition and so does the logic behind them. There is no point in the stack where the model runs out and a developer takes over, which is why there is no build step and no deployment step anywhere in the system.

Nothing is compiled, so there is no artefact sitting between the definition and the running application for the two to disagree about.

The question to put to anyone you evaluate, including us: at what point does this stop being configuration and start being code? Every vendor has an answer. It is worth hearing all of them before you choose.

One point of precision, because a good architect will raise it: definitions are resolved and cached, so you are not paying resolution cost on every request. We are not claiming nothing is ever optimised. We are claiming nothing is ever compiled, and nothing is ever deployed.

AI and governed execution

AI needs a model of what the business is allowed to do.

As models move from answering questions to proposing and taking actions, the important architecture question becomes permissioned execution. What objects exist? Which actions are valid? Which roles may invoke them? Which rules, approvals and integration contracts apply?

Those concerns already live in the SIT definition: entities, fields, rules, roles, permissions and external interfaces are explicit, structured and enforced by the runtime. That makes the framework a natural governed surface for AI-assisted and agentic workflows without moving the source of truth into a prompt.

PROPOSE

AI can accelerate authorship

Requirements can be turned into draft definitions, partner mappings, test cases and documentation faster, with a human reviewing the result before it becomes operational.

GOVERN

The definition sets the boundary

Objects, permissions, validations, workflows and integration contracts remain explicit rather than being inferred anew from a prompt on every request.

EXECUTE

The runtime remains accountable

Approved business rules and permissions are enforced by the framework. AI can assist the work without becoming the only authority for what the application is allowed to do.

AI understands intent. Your business model defines the boundaries. The framework executes them.

This is an architectural position, not a claim that every workflow is autonomous today. We name specific AI features only when they are implemented and measurable.

Included from day one

The parts that usually take six months.

Role-based security

Defined alongside the data it protects, so permissions can't drift away from the model.

Federated identity

Google Firebase handles sign-in. We store no passwords. MFA available per tenant.

Tenant isolation

Every query is scoped to the tenant by the framework, not by each developer remembering to.

Audit trail

Who changed what, when — captured as a property of the framework rather than a feature request.

Multi-column sort & group

Most day-to-day analysis happens in the grid, without exporting anything anywhere.

Charts on grouped data

Pie, bar and line views of any grouping, straight from the screen the user is already on.

Advanced search

Complex AND / OR criteria on any entity — no report request, no waiting on a developer.

Excel export

When the analysis does belong in a spreadsheet, it's one action away.

Talking to the outside world

Integration is a mapping, not a project.

Trading partners each want their own format. Because the mapping between your data and theirs is defined rather than coded, adding a partner is configuration work rather than a new custom integration project.

In production today across our customers: EDI, XML, JSON APIs, FTP/SFTP and AS2, plus direct links to load boards, rating engines, mileage engines, carrier vetting services and accounting systems.

  • EDI transaction sets mapped to your entities, both directions
  • XML and JSON API interfaces, inbound and outbound
  • Published APIs served from the same definition that drives the screens
  • File-based exchange over FTP, SFTP and AS2 where partners require it
  • Accounting system interfaces for customers, vendors, A/R and A/P

How an engagement runs

From your process to a working system.

We don't start with a twelve-week requirements document you have to imagine your way through. We start by defining enough to show you something real.

DISCOVER

Watch the work

We learn how your operation actually runs — including the parts held together by spreadsheets and habit.

DEFINE

Write the definition

Entities, screens, roles and interfaces are defined. You see working screens early, because the moment something is defined the engine can run it.

RUN

Go live, hosted

We configure, develop, host and manage the system on Google Cloud Platform, with your data isolated and encrypted.

EVOLVE

Keep changing it

New requirement, new field, new partner interface. We change the definition and every layer follows — with no rebuild and no release to wait for.

Screens from a definition

What a definition actually runs.

Representative screens from a system running on the framework — a transportation operation, in this case. None of this was hand-built and none of it was generated as code: the grid, the grouping, the charts, the search builder and the multi-panel detail screen are all the engine reading a definition and drawing what it describes.

Shipment search grid showing filter conditions, multi-column sorting and footer totals
Screen 01The search gridSaved filter conditions across the top, multi-column sorting (status first, then pickup date), status shown as data rather than decoration, and running totals in the footer. Column set, formats, alignment and who may see which column are all read from the field definitions as the screen loads.
Shipment search grid grouped by mode with running totals, alongside a donut chart of revenue by mode
Screen 02Grouping and charts on the same dataShipments grouped by mode, with revenue, cost and margin totalled per group and a running count. The chart draws from whatever grouping is on screen and switches between count, revenue, cost and margin as you click. Nobody configured this view.
Advanced search builder with nested AND and OR condition groups
Screen 03Advanced search with AND / ORConditions built against whatever fields the entity defines, including nested groups where any one of several conditions may be true. Users save their own views and come back to them.
Shipment record with five tabs, dozens of fields, and editable stops and legs grids
Screen 04A genuinely complex screenFive tabs, dozens of fields, an editable stops table and a legs table for multi-modal routing, with add, reorder and delete on every row. No developer laid any of it out.
Mobile tracking app showing a driver's assigned loads and status actions
Screen 05

The same definition, on a phone

No second codebase and no separate mobile team, because there is no codebase to duplicate. The same definition that drives the operational grid also drives the layout.

Representative screens shown with sample data.

Ownership

Who owns what, in writing.

This question comes up in every contract, so we answer it before it's asked — including the part most vendors leave vague.

You own
Your data, your process design, your screen and workflow configuration, and any custom development commissioned specifically for you.
We own
The underlying framework — the engine that reads metadata and runs applications from it. It is a product in its own right, and it is what lets one small team deliver and support systems of this size.
What you configure
Your fields, screens, rules, roles, permissions and integrations — and new business objects for parts of your operation the base doesn't cover. Almost everything lands here, and none of it waits on our release schedule.
What only we can extend
The framework itself — the kinds of thing a definition is able to express. When an operation needs something genuinely new at that level, we assess it with you, determine whether it belongs in the framework, and plan the right implementation path. Where it makes sense as a shared capability, we build it into the framework rather than creating a fragile special case for one customer.
Delivery model
Today, applications are configured, developed, customised, hosted and managed by SIT. For larger engagements we can hand over configuration, hosting and management so your own team runs it.
Continuity
Source code and metadata escrow is available on request. The metadata doubles as the system's specification, so nothing critical lives only in someone's head.

Show us the process that doesn't fit.

Bring the workflow your current software makes awkward. We'll walk through what its definition would look like.