CargoSharks

Comparison

CargoSharks and CARGOES Runner

A DP World product, which is the fact that matters most about it and has nothing to do with software. Here is what that buys you, and where a smaller independent system is the better answer.

Open the live demoAll comparisonsWhat we doThe home page

01 — Who owns the software

The distinguishing fact here is not a feature

DP World operates terminals and also sells software to the forwarders who book through them. Both parties publish that and it is not an accusation — for a forwarder whose volume runs through those terminals, the closeness is the whole reason to choose it. For a forwarder whose volume does not, it is a question worth asking out loud. That is the axis this comparison turns on, and no feature list touches it.

A diagram showing where each party sits in the freight chainshipperforwarderterminalcarrierDP World runs terminals, and sells the softwarewe sell the software and nothing else
This is not an accusation and both parties publish it. Closeness to the terminal is a real advantage if your volume runs through it, and a question worth asking if it does not. We operate nothing you book through, which is also a position with two sides to it.

02 — In their words

What they say about themselves

DP World describes CARGOES Runner as an ERP built from the ground up for small and medium-sized freight forwarders, aimed at back-office operations — quotations against your own tariff, quote-to-ship, digital invoicing and margin analytics, with an integrated ocean sailing-schedule search.

Read from www.dpworld.com/smart-trade/freight-forwarding-erp on 2026-08-25. If this has gone out of date, tell us and we will correct it.

02 — The case against us

Pick CARGOES Runner if

This section comes before the next one on purpose. A comparison page that cannot name a reader who should buy the other product is not a comparison.

  • Your volume runs through DP World terminals and you want the platform that sits closest to them.
  • The backing of a group that size is itself part of what you are buying. That is a legitimate reason to choose a vendor and we would say so on a call.

03 — The case for us

Pick us if

Every point below is a mechanism you can check in the demo or in the source, rather than a promise.

  • Arabic and English are the same build, checked for parity on every commit — 2,727 interface strings in both, and every document the system issues exists in each.
  • The dinar keeps three decimal places from the database to the printed invoice. Money is decimal end to end and never a floating-point number.
  • Separation between branches and entities is a row-level policy in the database, not a filter in the application — 197 of them. A query written wrong returns nothing rather than somebody else’s shipments.
  • Nothing is deleted. Every change is stamped with who made it and when, by 80 audit triggers, and a superseded row is marked superseded and stays.
  • You can open the whole thing right now, on seeded data, with a sign-in for you, your customer and your agent, without talking to anybody.
The claimFigureHow you check it
Transport modes5Sea FCL, sea LCL, air, road, rail and courier appear in the mode selector on any enquiry in the demo.
Row-level security policies197select count(*) from pg_policies where schemaname = 'public' — against any deployment, ours or yours. The policies are written by loops over the table registry, so a grep of the migration text counts the loops rather than the policies; pnpm test:db fails the build if any table lacks one.
Audit triggers80select count(*) from pg_trigger where tgname like '%\_audit' and not tgisinternal — attached by a loop rather than by a list, so a table added in a later migration is covered without anybody remembering to add it.
Interface strings, English and Arabic2,727pnpm lint runs check-messages.mjs, which fails the build if a key exists in one catalogue and not the other.
Decimal places on every dinar3Open any invoice in the demo. A system built for dollars and adapted shows two.
Minutes to check all of the above~10No sign-up and no call. That is the claim this whole page rests on.
Three separate databases, one per customer and region, against a single shared table carrying a customer columnWhat we buildA forwarderKuwaitAnotherUAEA thirdEUno tenant identifier in the schema, because there is no second tenant in the databaseThe shape we did not buildtenant_idevery query must remember it — and one that does not is enoughrespectable engineering, and a different promise
One database per customer, in their own instance, in a region they choose and that goes into the contract. Inside it, branches are separated by row-level security in the database rather than by application code: ask for another branch’s shipment and it comes back not found, because the row is not in the answer at all.

On the screen

The screen the argument above is made on

The operations board: live shipments ordered by exception, oldest first
Everything on this board is there because somebody at your desk put it there. We operate no terminal, no vessel and no depot, so nothing here arrives from a party that is also selling you the software — which is a position with two sides to it, and the other side is that we have no privileged data feed either. Open it yourself — no sign-up.

04 — The questions

Ask both of us these, and compare the answers

Our answers are already written, and beside each one is what a good answer sounds like from any vendor — including us. Somebody who takes this list to another vendor’s call and gets a better answer than ours should buy from them, which is what makes it worth publishing.

The questionOur answerWhat a good answer sounds like
Is the Arabic a translation layer, or is it the same build?The same build. Right-to-left is in the layout rather than added on top of it, and `pnpm lint` fails if a string exists in one language and not the other. Open the demo, press the language switch, and look at a delivery order.A good answer names a mechanism — a parity check that fails a build, one catalogue rather than two, right-to-left in the layout. A weak one is “yes, we support Arabic” plus a screenshot. Ask to see a printed delivery order rather than a screen: that is where an added-on language shows first.
How many decimal places does an invoice in Kuwaiti dinars carry?Three, everywhere, because the dinar has three. This is the single fastest way to find out whether a system was built for dollars and adapted.“Three” should come back instantly and without conditions. Hesitation, or “it is configurable”, usually means money is a floating-point number somewhere and the decimals are a display setting — which is fine until a rounding difference lands on a reconciliation.
Whose database is it, and can I have a copy of my data on a Tuesday afternoon without asking?PostgreSQL, and yes. The separation between customers is enforced by the database itself rather than by our application, which is also what makes the answer to the first half of that question boring.Listen for a named engine and an export you can trigger yourself. “We can arrange an extract” is a different answer from “here is the button”, and the difference is what leaving costs you in three years.
What does it cost when volume doubles?Ask every vendor this and ask for the answer in writing. Per-shipment and per-transaction pricing is normal in this category and is not a trick — but it is a different shape of bill from a flat one, and the difference shows up in year two rather than at signature.Any pricing shape is defensible; a refusal to put the shape in writing is not. Ask for the figure at twice and five times today’s volume, in the contract rather than on a call — and ask us the same way.
Can I see it working, today, without a call?Yes — demo.cargosharks.com, no sign-up. We think this question separates vendors more reliably than any feature question, which is why it is last.The answer is yes or no, and both are legitimate. A demo that needs a discovery call first is a sales process rather than a fault — but it is also a reliable measure of how long a pilot will take to start.
A chart comparing the shape of a flat bill with a per-shipment bill as volume growsthe crossing — ask for itvolume →the bill →per shipmentflat
There is no vertical scale, and that is deliberate — the shape is the whole content. Per-shipment pricing is normal in this category and is not a trick, but it is a different shape of bill, and the crossing point is the number worth asking every vendor to put in writing. Including us.

What you will not find on this page

A tick-and-cross grid. We know our product properly and theirs from the outside, and a grid written by one side is not a comparison — it is an argument with a table around it. Worse, it goes stale silently: every entry starts decaying the day it is published, and the person it misleads is your prospect while the person who looks foolish is you.

Ask us directly at [email protected]. You will get a written answer that cites what each vendor publishes itself, and where we do not know, you will get “we do not know”.