Skip to content
SaaS Black Horse Delivery · Aug 2025 — Nov 2025

Black Horse Delivery

A delivery-management platform spanning operations, fleet and customer-facing booking, built with Vue, NestJS and a full CI/CD and E2E testing pipeline.

domains covered
3
domains covered ops · fleet · booking
E2E suites
2
E2E suites Cypress + Playwright

Black Horse Delivery is an operations platform for a delivery business — covering the dispatcher’s console, the fleet, and the customer who just wants to book a pickup.

Problem

A delivery operation has three audiences with conflicting needs: operators want control, drivers want simplicity, and customers want a booking that just works. One system had to serve all three without becoming a tangle.

My role

I worked full-stack across the platform — building the Vue front ends, the NestJS and MongoDB backend, the Nuxt marketing site, and the CI/CD and testing pipeline that kept it all releasable.

Key decisions

I split the product by audience but kept a single NestJS + MongoDB backend as the source of truth, so operations, fleet and booking stayed consistent. The marketing site runs on Nuxt deployed to Cloudflare Pages, separate from the app, so content changes never risk the product.

I invested early in CI/CD with GitHub Actions and two layers of end-to-end tests — Cypress and Playwright — because a logistics tool that breaks silently costs real deliveries. Brevo handles transactional email across the flows.

Outcomes

  • One platform covering operations, fleet and customer booking on a shared backend.
  • Automated deploys with GitHub Actions CI/CD and Cypress + Playwright E2E coverage.
  • A decoupled Nuxt marketing site on Cloudflare Pages.

Lessons

When a system serves operators, drivers and customers at once, the backend contract is the thing that keeps it coherent — so it’s worth getting right first. And in logistics, test coverage isn’t gold-plating; a missed edge case is a missed delivery.

Want results like these?

I take on a small number of projects at a time. Tell me about yours.