Kestrel Freight
Freight Visibility Platform
Kestrel Freight is an ocean and air visibility platform for a Rotterdam forwarder, built around the question its customers ask most and its people could answer least quickly: where is my shipment, and is it still on time?
Designed & developed by Entrovix
- Year
- 2025
- Discipline
- LogisticsSystems DesignEngineering
- Services
- Product StrategyUX/UI DesignPlatform EngineeringCarrier Integration
- Built with
- ReactTypeScriptNode.jsPostgreSQLKafka
Active consignments14
MSKU 483 2917On schedule
Rotterdam → SingaporeETA 14 Jun
HLXU 771 0043Delayed
Hamburg → Jebel AliETA 09 Jun · +3 days
TCNU 226 5518At port
Felixstowe → New YorkETA 21 Jun
OOLU 950 3374On schedule
Antwerp → SantosETA 28 Jun
In transit
14
across 6 lanes
Exceptions
02
1 weather, 1 customs
Cleared this week
31
avg dwell 1.8 days
The Challenge
The answer existed, in eleven places
A forwarder does not lack shipment data. It arrives constantly — carrier portals, EDI feeds, port terminals, a broker's email, and a spreadsheet somebody rebuilds every Monday. Each source is authoritative about one leg and silent about the rest, so answering a single customer question meant opening four systems and trusting whichever looked freshest.
The brief was one view the whole company could stand behind, and a way to be told about problems rather than discovering them when a customer called.
The Approach
How we worked
Model the consignment, not the message
Carrier feeds arrive as fragments about legs and events. Each one is folded into a single consignment record, so the interface never asks anybody to reconcile two sources by eye.
Exceptions are the product
A shipment running to plan needs no interface at all. The console is built around the handful that are not, and everything else stays quiet until it stops being quiet.
Show the route, not the coordinates
Position is drawn on a lane between two ports rather than listed as a latitude. Where a box is only means something relative to where it is going.
Time zones are a first-class problem
Every ETA carries the port's local time and the viewer's, because a freight team spread across three regions cannot afford to guess which one a screen is quoting.
The Solution
Quiet until something needs a person
The console opens on active consignments, each carrying its lane, its ETA and how far along it is, with anything off-plan pulled out in amber. Beside it, the route map places a vessel between its origin and destination so progress reads at a glance rather than as a date to interpret.
Below that sit the day's counts and a single exception strip naming the shipment, the port and the reason. It is the shape the operations meeting already had, turned into the screen the team keeps open.
Active consignments14
MSKU 483 2917On schedule
Rotterdam → SingaporeETA 14 Jun
HLXU 771 0043Delayed
Hamburg → Jebel AliETA 09 Jun · +3 days
TCNU 226 5518At port
Felixstowe → New YorkETA 21 Jun
OOLU 950 3374On schedule
Antwerp → SantosETA 28 Jun
In transit
14
across 6 lanes
Exceptions
02
1 weather, 1 customs
Cleared this week
31
avg dwell 1.8 days
Inside the product
What it actually does
The Outcome
What it settled
- One consignment record replaces four systems and a spreadsheet
- Problems are surfaced to the team rather than found by a customer
- Position is shown against the route, not as raw coordinates
- Every ETA carries both the port's local time and the viewer's
That was some of our work
Now let’s talk about yours.
Tell us what you’re building. You’ll get a written plan, a clear proposal, and a team that shows its work every week.