A specialized business management system for international freight operations - handling invoicing with transport-specific parameters, multi-currency cash flow, and carrier performance analytics.

Overview
Manify is a business management system purpose-built for international freight and transportation companies. Generic ERP tools don't map to this domain well - a freight invoice isn't just line items and a total. It carries a transport reference, truck and trailer identifiers, a boat cost for the maritime leg, and a carrier commission that directly affect the margin.
The system handles multi-currency invoicing, links purchase costs to sales for real margin calculation, tracks payment aging across clients, and provides carrier-level performance analytics - the exact data a freight business needs to run profitably.
Objective
Manage invoices with freight-specific fields - transport reference, truck, trailer, boat cost, and carrier commission - directly on the billing document
Handle multi-currency billing and payments accurately, critical for cross-border shipments billed in EUR, MAD, or other currencies
Calculate real per-shipment margins: revenue minus taxes, purchase costs, boat costs, and commissions - not just revenue
Maintain clear cash flow visibility: what's paid, what's partial, what's overdue, and for how long
My Role
Modular Backend Architecture
Designed 12 Laravel 12 domain modules - each with its own models, service layer, controllers, and API routes. Auth, Business, Client, Finance, Invoices, Purchases, Reports, Sales, Supplier, and more.
Domain Modelling
Modelled freight-specific entities: the Sale carries transport reference, truck, trailer, boat cost, and carrier - all contributing to a precise margin calculation per shipment.
React SPA Frontend
Fully decoupled React + TypeScript SPA built with Vite - TanStack Router for file-based routing, Zustand for shared lookup state, typed axios endpoint map throughout.
Analytics & Reporting
Built four report types: sales & profit (date-range), payment status with aging buckets, per-carrier performance (bateau costs + commissions), and per-client analytics.
Payment & Cash Flow Engine
Partial payments, void/refund flows, multi-currency, and payment aging from 0-30 to 90+ days - all tracked against invoice expiry dates set per client.
Tech Stack
Core Features
Atlas Import Co.
ICE 001234567890001
41
Invoices
184K
Revenue
3
Overdue
Souss Export Ltd
ICE 002345678901002
Maghreb Transit SARL
ICE 003456789012003
All data is fully isolated per business
Multi-business
Manify supports running multiple fully independent businesses under a single deployment. Each business has its own isolated dataset - switching context in the navbar instantly scopes every invoice, client, supplier, payment, and report to the selected company.
Full data isolation
A global query scope on every model filters by business_id automatically - no manual scoping needed anywhere in the codebase.
Instant context switch
The business switcher sends X-Business-ID on every API request. Switching businesses invalidates the router - all data refreshes without a page reload.
Per-business branding
Each business configures its own logo, stamp, color theme, tax number, ICE, and RIB. PDFs and invoices are branded per company automatically.
Persistent selection
The selected business is saved to localStorage. Users land in the right company context every time they return.
Screenshots

Invoices

New Invoice

Reports
Architecture
The backend is a Laravel 12 API organized into 12 self-contained modules. The frontend is a fully decoupled React TypeScript SPA - it communicates entirely via REST, secured with Laravel Sanctum. Both layers can evolve independently.
Backend
Frontend
Key Takeaways
Niche > Generic
A specialized tool that models the actual domain - transport ref, truck, trailer, boat cost - is worth infinitely more than a generic tool that forces workarounds.
Margin is the real metric
Revenue alone is misleading in freight. Real profit = sale revenue − taxes − purchase costs − boat cost − commission. The system calculates this per shipment, automatically.
Multi-currency is a design decision, not a feature
International operations invoice in EUR, get paid in MAD, and pay carriers in mixed currencies. Treating currency as a first-class concern from day one prevents expensive rewrites later.
Decoupled frontends pay off
Building the React SPA as a fully separate consumer of the API meant faster UI iteration without touching the backend - and left the door open for a future mobile app.
Impact
Accurate freight invoicing
Every invoice captures the full cost picture of a shipment - not just the service line, but boat fees, carrier commissions, and truck details.
True margin visibility
Per-shipment profit is calculated automatically by deducting all transport costs from revenue - owners know exactly where they stand.
Collection control
Payment aging reports show exactly which invoices are overdue and for how long - prioritizing collections becomes straightforward.
Carrier accountability
Transporter performance reports surface which carriers cost the most per shipment - enabling data-driven negotiation and routing decisions.
Work with me
Whether it's a domain-specific business tool, a SaaS platform, or a system that needs to model complex real-world operations - I help you figure out the right approach before writing a line of code.