All articles

Custom software for logistics and transport companies

Most operators do not lack logistics software — they lack software that fits the twenty percent of their operation that does not look like everyone else's. Here is how to find that line before writing code.

Most logistics companies do not lack software. They have a TMS, a WMS, an ERP, a handful of carrier portals, and a spreadsheet that quietly runs the parts none of those cover. The question is rarely whether to buy software. It is what to do when the platform you bought stops bending to how you actually move freight.

Where off-the-shelf TMS and WMS hit a ceiling

An off-the-shelf TMS or WMS is the right first move for most operators. It is faster and cheaper to start with, it encodes decades of industry practice, and it covers the eighty percent of your operation that looks like everyone else's. The ceiling appears at the twenty percent that does not. A cross-dock flow the vendor never modelled, a customer who demands a label format no standard module produces, a settlement rule that depends on three data points the system keeps in separate places.

Each gap gets a workaround — a spreadsheet, a manual step, a second screen the dispatcher alt-tabs to. Individually they are cheap. Together they become the real system, and the platform you paid for becomes a system of record that nobody trusts without checking the spreadsheet first. The honest tradeoff: the platform is faster to start and cheaper to run until the workarounds add up. The decision point is not that the software is bad. It is that the cost of the workarounds now exceeds the cost of owning the difference.

It helps to name the ceiling precisely, because it is not the same for every operator. For a parcel and express business it tends to be routing and last-mile density. For a freight forwarder it is documentation and multi-leg orchestration. For a warehouse-heavy 3PL it is the slotting and picking logic that a generic WMS averages away. Knowing which ceiling you are pressed against tells you where the custom investment belongs and, just as usefully, where it does not.

The pains that never make the brochure

Talk to a dispatcher and the real state of logistics software becomes obvious. Dispatch is still done by hand and phone — a whiteboard, a group chat, a person who knows which driver will actually take the load. Live visibility is a promise the sales deck made and the integration never fully kept: a shipment status is accurate right up until a driver forgets to scan, and then it is fiction. Proof of delivery arrives as a photo in a messaging app and gets typed into the system hours later. The driver app works beautifully in the demo and falls over in a concrete warehouse with no signal.

These are not exotic requirements. They are the daily texture of moving freight, and they are exactly where generic software is weakest, because a platform built for everyone cannot afford to model the specific way your night shift hands off to your morning shift. Custom software earns its place here — not by replacing the platform, but by owning the parts the platform was never going to fit. An offline-first driver app that captures a signature and a photo underground and syncs the moment signal returns is not a nice-to-have; it is the difference between a proof of delivery that is real and one that is retyped from memory.

There is also the visibility your customers now expect. A shipper who can track a parcel to the minute on a consumer app does not understand why their freight goes dark for a day. Track-and-trace is no longer a differentiator; its absence is a reason to lose an account. Delivering it means turning scattered, late, sometimes contradictory status events into a single timeline a customer will trust — which is a data problem before it is a screen, and one that generic portals solve only for the carriers whose data happens to arrive clean.

Build, configure, or extend

There are three honest options, and most operators need a mix of all three. Configure means staying inside the platform and bending it with its own settings, custom fields, and workflow rules. It is the cheapest path and the first one to exhaust, because configuration has a hard limit — you can only express what the vendor anticipated.

Extend means building alongside the platform: a service that reads from and writes to it through its API, owning one capability the platform handles badly. A dispatch board that actually matches your operation, a settlement engine that encodes your rate rules, that offline driver app. The platform stays the system of record; you own the difference. Build from scratch is the rarest and should stay that way. It makes sense when your operation is your differentiation — a 3PL whose whole value is a consolidation or routing model no platform sells. Rebuilding the commodity parts — order entry, basic tracking, standard EDI — is a way to spend a year recreating what you could have licensed. The skill is knowing which layer each problem belongs to. That is a scoping decision, not a technology one.

In practice the line moves over time. A capability you were happy to configure becomes the one your biggest customer keeps asking to change, and it graduates to an extension. A custom module you built early turns out to be a commodity the market has since caught up on, and you retire it back onto the platform. Treating build-versus-buy as a permanent verdict rather than a decision you revisit is how operators end up either trapped in a platform they have outgrown or maintaining custom code that no longer earns its keep.

The integration reality

Every logistics build is, underneath, an integration project. Your ERP owns the money and the master data. Your carriers each speak a slightly different dialect — some modern REST APIs, many still EDI, a few a portal a human logs into. Customs systems have their own formats and their own deadlines. Telematics devices stream position and driving-hours data in yet another shape. None of these were designed to talk to each other, and the value of your software is largely in how faithfully it reconciles them.

This is where projects quietly overrun. An integration is easy to demo and hard to make reliable: the carrier's test environment behaves, and their production environment returns a status code the docs never mentioned. EDI is not one standard but a family of dialects with per-partner quirks. The correct posture is to treat every external system as unreliable by default — retries, idempotency, a clear record of what was sent and what came back — because in logistics the systems you depend on will be down at the worst possible moment, and your software has to degrade gracefully rather than lose a load.

Cross-border in the EU

For a Central European operator, cross-border is not an edge case. It is Tuesday. A single shipment can cross three countries, clear customs, and settle in two currencies. That reality touches software in places a domestic-only platform never has to think about. Master data carries multiple tax identities. Documents exist in several languages and formats depending on the destination. Customs is not a checkbox but a sequenced set of declarations with real consequences for getting the timing wrong. Rates and settlements span currencies, and the exchange-rate decision — when you book it, at what rate — is a question of financial integrity, not a display preference.

A platform built for a single national market can be forced across borders, but the workarounds accumulate fastest exactly here, because the assumptions are baked deep: one tax model, one currency, one customs regime. This is often the strongest case for custom. The cross-border complexity that is a burden for a generic tool is frequently the thing you are actually good at, and software that models it faithfully becomes a durable advantage rather than a running cost.

The same logic applies to the paperwork that follows freight across a border. A CMR, an e-CMR where it is accepted, customs documents, and the country-specific variations of each are not a formatting detail; they are the difference between a truck that crosses and a truck that waits. Software that treats documents as a core part of the flow — generated correctly, versioned, available to the driver and the customs broker at the right moment — removes a whole category of delay that domestic platforms never had to design for.

Where custom pays off, and where a platform is enough

Custom software pays off where the work is specific, high-volume, and central to how you compete — dispatch, settlement, the driver's daily flow, the cross-border logic, the one integration your largest customer demands. It rarely pays off for the commodity layer that every operator runs the same way. There, a platform is not just enough; it is the better engineering decision, because someone else maintains it.

The mistake in both directions is the same: deciding by ideology instead of by the operation. Some operators over-buy, contorting the business to fit the platform. Others over-build, spending a year recreating a licensable commodity. The right answer is almost always a platform for the commodity and a deliberately scoped custom layer for the difference — and knowing where that line falls is worth doing carefully before anyone writes code. That is why the sane first step is a short, fixed-fee assessment rather than a proposal. A few days spent mapping your real flow — where the spreadsheets live, which integrations hurt, what is commodity and what is your edge — turns "we need better software" into a costed plan that says exactly what to buy, what to extend, and what to build.

Weighing a build for your fleet or warehouse?

A short, fixed-fee assessment maps your real freight flow and tells you plainly what to buy, what to extend, and what to build — before you commit a budget.

Book a logistics assessment