Why every screen in 4klyft is also an API call

Building API-first is a constraint that makes the product better for everyone — not just developers.

We made a rule early: no dashboard action may exist that the public API cannot perform. It is a demanding rule. It means every feature ships twice — once as a screen, once as a documented endpoint. It has also made 4klyft dramatically better.

The forcing function

When the API is a first-class citizen, you cannot hide a messy workflow behind a clever UI. If an action is awkward to express as an endpoint, it is usually awkward conceptually — and that is a signal to fix the model, not paper over it.

const shipment = await client.shipments.create({
  pickup:   { address: "...", timeWindow: "09:00–12:00" },
  delivery: { address: "...", requirePhoto: true },
});

await client.shipments.schedule(shipment.id, { optimise: "auto" });

The payoff: customers build their own ops views in a single sprint, and we never ship a feature that only works if you use it exactly the way we imagined.

Written by
Callistus Nkamuo
Staff Engineer, 4klyft

Works on the routing engine and the public API. Believes the best logistics software is the software dispatchers forget they are using.