Flagship · Shipsoft Solutions

Shipsoft 2.0

Isolated freight CRM for 35+ forwarders — one lead-to-booking platform instead of scattered tools, with each tenant’s data on its own database.

Role: Full-stack · primary backend contributor · Apr 2025 – Present · post-production (demo not public yet)

Laravel 11Stancl TenancySanctumNova 5Angular 19PostgreSQLRedisOpenAI

Problem

Freight sales and operations were fragmented across tools that could not safely isolate each forwarder’s data or unify prospecting, quoting, booking, rates, and email. Shipsoft needed a single SaaS platform with database-per-tenant isolation and a modular commercial lifecycle.

Role

As the primary backend contributor on a multi-developer team, I owned Laravel modules, tenancy, REST APIs, workflows, integrations (IMAP, Paperless, rate-sheet agent/OpenAI), Nova admin surfaces, migrations, and automated tests—while collaborating with frontend engineers on the Angular SPA. I also owned the rate-sheet agent repository that feeds AI-assisted extraction into the platform.

What I built

  • Multi-tenant modular Laravel backend with central master data and per-tenant databases.
  • REST APIs for CRM and freight flows: leads, customers, enquiries, quotations, bookings/shipments, and dashboards.
  • Sanctum authentication with tenant resolution, team permissions, and admin impersonation.
  • Integrated webmail with IMAP sync, compose/reply, and background sync jobs.
  • Carrier rate-sheet ingestion/approval pipeline with AI-assisted extraction hooks — see Rate Sheet Agent.
  • Durable enquiry/quote lifecycle workflows and document workflows via Paperless-ngx.
  • Operator SPA surfaces (with the team) for dashboard, quoting, booking, and mail; Nova for central/tenant administration.

Stack

Laravel 11, PHP, Stancl Tenancy, Sanctum, Nova 5, Angular 19, Tailwind/Metronic, PostgreSQL multi-DB tenancy, Redis queues, Reverb, IMAP, Paperless-ngx, OpenAI, Scribe, PHPUnit.

Related

Also built the Rate Sheet Agent (carrier sheets → quoting JSON; in production, internal use) and the Enquiry Email Automation Agent — mailbox → CrewAI/OpenAI → Shipsoft create-enquiry (97% accuracy, ~10 min saved per enquiry).