Skip to content
Yamil Morales
All case studies
Velocitti

Last-mile delivery

Velocitti Runs Every Pickup And Every Delivery From One System

Velocitti picks up Mercado Libre Flex orders in the morning and delivers for its own merchants in the afternoon, with the same fleet. I built the system that runs all of it: an Android app for the street, a console for the office, a portal for merchants and a tracking link for whoever is waiting on a package. And I left it ready to grow, up to 3,000 drivers.

Velocitti's office console: a pickup route on the map of Mexico City, with its stops and its progress.
The driver's app on My Day: the pickup and the delivery route on the same phone.
Days from kickoff to the first signed app release
14
Client points, each turned into a written promise
23
Offline events synced in order, zero duplicates
16/16
Full database restore, tested for real
9 min

The Operation

Velocitti is a last-mile delivery company in Mexico City and the State of Mexico, with its own fleet of motorbikes, cars and vans. Its day has two loads. In the morning it picks up Mercado Libre Flex orders at the sellers' locations, and those go out for delivery the same day. In the afternoon it delivers for its own merchants, whose packages go through a warehouse and leave the next day on a planned route.

The same fleet and the same phone handle both loads. And a package can change hands: the person who picks it up is not always the one who brings it to the door.

Before The System

The business grew on two fronts, and the coordination stayed in messages to the office and in each driver's experience. There was no single view of both sources of work. Each package's warehouse was decided later, by hand. The route depended on whoever was driving. Merchants messaged the office to schedule a pickup or to ask about a shipment. And there were no numbers to sit down with a driver, a route or a seller.

What Velocitti asked for was to run that operation, the one that already worked, on a single system.

Everything In Writing Before We Started

Velocitti sent me 18 points in writing, and on a call we clarified five more. Before building anything, I turned each one into a named promise with its delivery phase, and that document became the contract: if something wasn't in it, it wasn't sold.

What depended on third parties was in writing from day one too. Automatic sync with Mercado Libre was not promised, because it depends on what their API allows and on each seller authorizing the app. What was promised: read their label and record every pickup and every delivery with a scan.

The working rhythm was agreed as well: a written status every Wednesday and a demo every other Friday.

What I Built

For Pickups

The pickup driver sees the day's locations on a map, with how many packages are waiting at each one. They scan the barcode or the QR code, and if the label arrives damaged, the camera reads the printed number and keeps a backup photo. That same scan marks the package as picked up and sends it to the right warehouse, following Velocitti's zone rules.

Before moving, the driver confirms the load manifest for their unit. On arrival at a warehouse, the app checks their location against the warehouse's and asks for a photo of the drop-off, because some warehouses have no supervisor on site.

Step 1 of 3 in the app: the next pickup point, how many packages are waiting and the button to head there.
Step 2 of 3: take the load to its warehouse, with the distance and how many packages go there.
The pickup driver's day, step by step: the pickup points first, then the warehouse.

For Deliveries

The delivery driver sees the day's drops on a map. At the door they record the delivery with a photo, a signature and the time, or an incident with its reason.

The app works with no signal. In the airplane-mode test it stored 16 events offline, was closed and reopened, and once the signal came back it synced them in order, with zero duplicates.

The vans work as warehouses on wheels: they can hand packages over to the motorbikes, and every transfer is recorded in the package's history.

Step 3 of 3: the next delivery stop, with who receives it and the neighborhood.
The day's packages in the app: to pick up, in my unit and delivered, with who received each one and when.
Every delivery keeps its proof: who received it, the code, the photo and the signature, with the time of each step.

For Supervisors And The Office

Supervisors see every unit from their phone: what it delivered, what's left and any incidents. The office has a console with packages, pickups, warehouses, routes, drivers and reports, a dashboard with the day's numbers, and reports by driver, by route and by pickup location. Every change goes into a log with who made it and when.

Supervision in the console: the units on the map and each one's pickups and deliveries for the day.
Every unit on one screen: where it is, what it delivered and what's left.

For Merchants

Each merchant joins by invitation and schedules pickups by saying how many packages they have and how much space they take. They upload shipments one at a time or with a file, and they see the status of every package, with the delivery photo and signature.

The merchant portal: the next scheduled pickup and the history of past ones, with their packages and status.
Merchants schedule their own pickups and follow every package without messaging the office.

For Whoever Is Waiting On A Package

A link, with no account or password, showing where their shipment stands.

For The Sales Team

A new prospect can come in from the four-step sign-up form on velocitti.mx, with consent, or from the chat on the site. Each one is assigned to a seller by account size, by zone or by turn, and a light shows how fast the first contact happened.

From the prospect's page, the seller calls, writes on WhatsApp with templates or sends an email, and sees when it was opened and which links were clicked. Replies come back into the same thread. The chat on the site answers with AI, from the articles the team writes and publishes. Proposals come out of the price tables as a web page and a PDF, and there are email sequences too. Two sales roles: the manager sees everything, each seller sees only their own.

A prospect in the sales CRM: stage, AI rating, assigned seller, value and the activity history.
Call, WhatsApp and email from the same page, and every step lands in the prospect's history.

For Cash On Delivery

When a shipment carries an amount to collect, the driver records the payment at the door before closing the delivery. At the office, dispatch receives each driver's cash in a closure, and if it doesn't match what was expected, an alert goes out. Then the office pays each merchant, who gets the receipt by email and sees their collections in the portal.

The system always knows where each peso is: with the driver, at the office or already paid to the merchant.

For Orders That Arrive By Email

A merchant can also send their Excel file or their label PDF to Velocitti's general mailbox. The system checks that the sender is an authorized merchant, reads the attachments and opens a batch in the order inbox with every row ready to review.

Nothing is confirmed on its own: the office reviews the batch and confirms it, the same as an upload from the portal.

A batch in the order inbox: a label PDF read page by page, with its orders ready to review.
Whatever comes in, a file, labels or an email, waits here as a batch until the office confirms it.

For Notices

Whoever is waiting on a package gets an email when it's on its way and when it's delivered, with the tracking link. Drivers get a push on their phone when their route is ready or changes. The team gets its alerts in the console's bell and as a push on their phone.

One of those alerts is the one Rogelio asked for: a unit at 75% of its deliveries or less by 7 p.m. WhatsApp and text messages come built in as well, ready for the merchant or the person who turns them on.

The console's notifications: a unit with no signal, a route that hasn't started and a delivery behind at 7 p.m.
The team sees its alerts by type, and every message that went out to recipients and merchants.

The First Live Test

Fourteen days after kickoff, the Android app had its first signed release. On September 28 we tested it live with Rogelio, from Velocitti, and whatever came up during the test got built in the same session: the app was updated three times that day.

That test also put in writing how Velocitti really operates. When a package has no zone rule, it goes to the warehouse closest to its destination. The warehouse sorts and assigns routes by zone. Flex orders take priority and close before 10 p.m. And if a unit is at 75% of its deliveries or less by 7 p.m., Rogelio gets an alert.

The day's history in the app: points, pickups, deliveries and incidents, route by route.
Every day stays in the app's history, route by route.

Protecting What Already Works

The database backs itself up, and a full restore was actually tested: it took nine minutes. Every change goes through tests before it's published, and the no-signal mode has its own test protocol.

Ready To Grow

The system gives Velocitti a control tower like the big carriers run, the likes of DHL or FedEx: every unit live on the map, every package with its full history, and an alert as soon as a delivery starts falling behind.

Adding a driver takes an invitation: they sign in on their phone, get a unit and start receiving routes. If a unit falls behind, its packages move to another one with a scan, without calls to the office, and the person waiting still gets their updates.

Everything is built to deliver on time and on the first attempt, with a 99% target, and to grow without rebuilding anything: the platform is ready to run up to 3,000 drivers.

What Comes Next

Velocitti has run its daily operation on the system since October 5, 2026, with a 90-day guarantee on everything delivered. The direct connection to Mercado Libre and the iPhone app were set aside as separate stages, to be built when the operation calls for them.

Your turn

Yours Would Be The Next One Of These.

Forty-five minutes with your pipeline on screen. You leave knowing which piece to build first.

See all services