All work
(01) SaaS productLogistics

CourierOS

Multi tenant software that gives every Caribbean courier its own branded site, customer portal and back office.

Live in production at courieros.co

courieros.co
CourierOS homepage on desktop
CourierOS homepage on mobile
Automated tests
240+
Screens
66
User roles
5
Surfaces
3 in one app

The problem

Small couriers in Jamaica run on WhatsApp, spreadsheets and paper receipts. Customers cannot see where a package is, and staff spend the day answering the same question. Enterprise courier software is priced for companies ten times their size.

What I built

I took the order and tracking system I built for Ship'd JM and rebuilt it as a product. One Laravel application resolves the tenant from the request host, scopes every query to that tenant, and serves three surfaces: the CourierOS marketing and signup site, each courier's public site, and the portals behind it.

One codebase serves any number of couriers, each with isolated data, its own branding and its own customers. TODAY Shipping already runs on it.

What it does

  • Multi tenant
  • Payments
  • Customer portal
  • Admin dashboard
  • Mobile responsive

Platform

  • Self serve signup with Stripe subscription checkout and trials
  • Each courier on its own subdomain, with custom domain support
  • Per tenant branding: logo, colours and site copy
  • Owner console with revenue, tenant health and suspend or reactivate
  • Built in support inbox between couriers and the platform

Courier back office

  • Package intake, status updates and full status history
  • Pre alert review with customer invoice uploads
  • Customer records, shipping rates and warehouse address management
  • Reports and an activity log of every staff action
  • Owner, admin and staff roles with fine grained permissions

Customer portal

  • Instant account with a personal warehouse address and reference
  • Pre alert shipments and upload invoices before they land
  • Track every package from warehouse to collection
  • Authorised pickup people, so someone else can collect

Under the hood

The full stack, from what you tap on screen down to where it runs. Frontend, backend, database and hosting are all designed, built and maintained by the same engineer.

  1. Frontend
    • Vue 3
    • Inertia.js
    • TypeScript
    • Tailwind CSS v4
    • reka ui
    • Chart.js
  2. Backend
    • Laravel 12
    • Fortify (2FA and passkeys)
    • Laravel Cashier
    • Wayfinder
    • Resend email
  3. Data
    • MySQL 8
    • Tenant scoped models via a global scope
    • Per tenant currency (USD and JMD)
  4. Infrastructure
    • Laravel Forge
    • Nginx
    • Wildcard subdomains
    • Stripe billing

Engineering detail

How tenancy works

Everything hangs off the request host. A middleware reads the subdomain or custom domain, binds the tenant, and a trait on every tenant owned model adds the tenant filter to every query and fills it on create. Session cookies are scoped to the exact host, so a login on one courier can never be used on another.

See it running

Real captures from the live site. Every one links to the same page in production, so you can check it yourself.

Keep scrolling

Want something like this?

Tell me what your business needs to do online. I will scope the smallest useful version with a fixed quote before any work starts, and look after it once it is live.