The team ran on disconnected tools: one app for loads, another for invoices, a Google Sheet as the customer list, plus WhatsApp and phone. Nothing shared the same data, and getting carrier quotes meant hours of repetitive email.
The problem
What we built
- One system for customers, carriers, loads, documents and invoicing.
- Proof of delivery and bills of lading stored with the load they belong to.
- Customer-entered details checked by staff before a load goes active.
- Carrier invoices checked against the price that was agreed.
- A private link customers can open to check their shipment, no login needed.
- Next: an AI assistant that emails carriers for quotes, chases the ones who go quiet and lines the prices up, while staff still choose the carrier and set the price.
What it solved
- One place to see where every load and every customer stands.
- Fewer billing mistakes, because carrier invoices are checked against the agreed quote.
- Customers can check status themselves instead of calling.
- The team keeps every decision about carriers, prices and billing; the software does the typing.
Built with
- Next.js
- Postgres
- Prisma
- Railway
- Vercel
