← Back to the homepage

Product case study · Building

OpsFlow In development

A connected operations system for small and mid-sized transport and logistics businesses.

OpsFlow is designed to replace scattered Excel sheets, WhatsApp threads, notebooks and disconnected records with one connected operational workflow, from customer orders to trips, invoices, payments and outstanding balances.

The early build is a sign-in shell of the current software. Use synthetic data only.

The problem

Information scattered across too many places

Many small and mid-sized businesses may manage these workflows across a combination of spreadsheets, messaging and manual records. That can make it harder to keep one consistent view of customers, orders, trips, invoices, payments, outstanding balances and reports.

Who it is for: small and mid-sized transport, logistics, freight, warehousing and distribution businesses.

A typical pattern, not a claim about every business:

  • Customer informationExcel
  • OrdersWhatsApp / phone
  • TripsNotebook / spreadsheet
  • InvoicesSeparate files
  • PaymentsManual records
  • OutstandingCalculated by hand
  • ReportsSpreadsheet work

Fragmented operations

  • Excel
  • WhatsApp
  • Notebook
  • Separate billing
  • Manual reports
OpsFlow

Connected operations

  • Customer
  • Order
  • Trip
  • Invoice
  • Payment
  • Outstanding
  • Reports

The value is not simply storing records. The product connects operational events so that information created in one part of the workflow can support the next.

Core workflow

Customer → Order → Trip → Invoice → Payment → Outstanding → Reports

Select a stage. Each shows its purpose, data, actions, related process and honest status.

Customer

Implemented

Maintain the customer information used across the whole operational lifecycle.

Key data
Name, code, contact details, credit terms and limit, tax number.
Typical actions
Create, update, search and deactivate customers. Available through the API; no screen yet.
Business process
Customer onboarding and credit terms.
Connects to
Quotation (implemented) → Order → Invoice → Payment → Outstanding

Order

In development

Capture what the customer requested, so operations start from one agreed record.

Key data
Customer, cargo, route, agreed pricing, and the quotation it came from.
Typical actions
Convert an approved quotation into an order. This is the next roadmap step; no order route exists yet.
Business process
Hand-over from sales to operations.
Connects to
Customer and Quotation → Trip / Operation

Trip

In development

Represent the actual operational execution of an order.

Key data
Vehicle, driver, route, status and, later, trip expenses.
Typical actions
Assign a vehicle and driver and follow the trip. Vehicle and driver records exist; trips and dispatch are still open.
Business process
Dispatch and delivery.
Connects to
Order → Vehicle and Driver → Invoice

Invoice

Planned

Convert completed operational work into a billing record.

Key data
Lines, tax, totals, due date.
Typical actions
Create an invoice from a completed trip. Not built yet; the database schema exists.
Business process
Customer billing.
Connects to
Trip → Payment → Outstanding

Payment

Planned

Record payment received against business receivables.

Key data
Amount, date, method, the invoice it settles.
Typical actions
Record a payment against an invoice. Not built yet.
Business process
Collections and reconciliation.
Connects to
Invoice → Outstanding

Outstanding

Planned

Give visibility into unpaid balances.

Key data
Balance per customer and per invoice, and ageing.
Typical actions
Review unpaid invoices and follow up. Not built yet.
Business process
Receivables follow-up.
Connects to
Invoices and Payments → Reports

Reports

Planned

Turn connected operational data into business information.

Key data
Orders, trips, invoices, payments and balances, joined together.
Typical actions
Review operational and financial summaries. Not built yet.
Business process
Management review.
Connects to
Everything upstream

Current status

Building

A working foundation and the first operational modules. The financial half of the workflow is still ahead.

Implemented

  • Tenant-isolated accounts and roles
  • Customer records
  • Routes and rate cards
  • Fleet records (vehicles, drivers, trailers, containers, equipment)
  • Quotations with an approval workflow

In development

  • Orders: approved quotations becoming orders
  • Trips: assigning vehicles and drivers

Planned

  • Invoices
  • Payments
  • Outstanding balances
  • Reports
  • Expenses, warehouse and inventory

A portfolio product project: the code is real and running, but it is not a released product and has no customers, revenue or usage figures. The list is checked against the current code.

Modules

What exists, what is being built, what is planned

  • Customers

    Implemented

    Customer records, credit terms and contacts.

    API
  • Vehicles

    Implemented

    Fleet vehicles with ownership, odometer and service intervals.

    APIUI
  • Drivers

    Implemented

    Driver records with licence details.

    APIUI
  • Fleet assets

    Implemented

    Trailers, containers, equipment, maintenance, fuel and mileage logs.

    APIUI
  • Quotations

    Implemented

    Rate-card pricing, server-calculated totals and an approval workflow.

    APIUI
  • Rate cards

    Implemented

    Contract and spot rates by customer, route and vehicle type.

    API
  • Users & Roles

    Implemented

    Role-based permissions, owner protection, two-factor sign-in.

    API
  • Branches

    Implemented

    Branch records and branch-scoped access.

    API
  • Settings

    Implemented

    Organisation profile only; wider configuration is still ahead.

    API
  • Orders

    In development

    Approved quotations become orders. The next roadmap step.

  • Trips / Operations

    In development

    Assigning vehicles and drivers and tracking execution.

  • Invoices

    Planned

    Billing records created from completed work.

  • Payments

    Planned

    Payments recorded against invoices.

  • Outstanding

    Planned

    Unpaid balances and receivables.

  • Expenses

    Planned

    Trip and operating expenses.

  • Reports

    Planned

    Operational and financial reporting.

  • Warehouse & inventory

    Planned

    Stock locations and movements.

API means the capability exists in the backend; UI means a screen exists in the current build. Most screens are still ahead.

Data relationships

How the records connect

  • Customer
    • Orders via quotations
      • Trips
        • Vehicle
        • Driver
        • Invoice
          • Payment
            • Outstanding
              • Reports
  • Customer → OrdersA customer has orders, starting from an approved quotation.In development
  • Order → TripAn order creates a trip or operation.In development
  • Trip → InvoiceA completed trip generates an invoice.Planned
  • Invoice → PaymentAn invoice receives payments.Planned
  • Invoice → OutstandingAn invoice contributes to the outstanding balance.Planned
  • Everything → ReportsAll of these records feed the reports.Planned

Quotations (implemented) sit between customers and orders: an approved quotation is what becomes an order in the next step.

Product preview

What the current build looks like

Implemented Fleet (implemented). Select the image to enlarge it.
Implemented Quotations (implemented). Select the image to enlarge it.
Orders today6
Active trips4
Pending invoices3
Outstanding2
Recent activityCustomerStage
Order createdDemo Customer AOrder
Trip dispatchedDemo Customer BTrip
Payment recordedDemo Customer CPayment
Planned Dashboard concept. There is no dashboard yet; this is product direction.
CustomerOpen invoicesStatus
Demo Customer A2Due soon
Demo Customer B1Current
Demo Customer C3Overdue
Planned Receivables concept. Not built yet.
Synthetic demonstration data. The real screens use a fictional “Demo Company”; concept screens are mockups. No customer, vehicle or financial data is real.

Multi-tenant architecture

Tenant isolation: separate company environments

Company AIsolated business data
Company BIsolated business data
Company CIsolated business data

The product is designed around company-level data isolation, so several businesses can use the same application without mixing operational records.

Implemented Implemented in the foundation and the existing modules: every tenant record carries an organisation id, tenant identity comes only from the signed-in session, queries are scoped to it, and composite foreign keys enforce it in the database. An end-to-end test suite exercises it. Modules still to be built will follow the same rule.

Product thinking

From internal tool to general product

My production systems

Each began with one specific operational problem: a billing calculation, a vehicle balance, an overtime bill. They solve that workflow directly.

OpsFlow

Instead of one port workflow, it models the patterns that recur across transport and logistics businesses: customers, orders, trips, invoices and payments.

  • Abstraction
  • Workflow modelling
  • Product thinking
  • Reusable business logic
  • Multi-tenant thinking
  • Operational software design

An exercise in product design and building. The source is private and there has been no market validation.

Architecture and technology

Built the way the code is built

  1. UserSigns in through the web app.
  2. Web appReact single-page app on Cloudflare Pages.
  3. Same-origin proxyA Pages Function forwards API calls to the Worker.
  4. APICloudflare Worker running Hono routes.
  5. MiddlewareAuthentication, tenant context and role checks.
  6. ServicesBusiness logic and rules.
  7. QueriesThe only layer that touches the database.
  8. DatabaseCloudflare D1 (SQLite).
Frontend
TypeScript, React 19, Vite, Tailwind CSS, Lucide icons.
Backend
Cloudflare Workers, Hono, Zod validation.
Database
Cloudflare D1 with plain prepared statements and numbered migrations.
Auth
Server-side sessions, Google sign-in, two-factor authentication.
Deployment
Cloudflare Pages and Workers, deployed by GitHub Actions.
Quality
Vitest, ESLint and TypeScript checks run in CI.
Development
Git, GitHub, AI-assisted development.

The source repository is private. No microservices, queues or container orchestration are used.

Why it exists

Why I started building OpsFlow

After working with real operational workflows, I saw how much business information can become fragmented when orders, operations, billing and payments are managed separately. OpsFlow is my attempt to turn that understanding into a reusable product for businesses with similar operational complexity.

  • SimpleKeep daily operational tasks understandable.
  • ConnectedConnect business events instead of creating isolated records.
  • PracticalPrioritise useful workflows over unnecessary complexity.
  • TraceableMake important operational and financial information easier to follow.
  • ExtensibleCreate a foundation that can grow with the business.

These are design principles, not claims about results. There has been no market validation.

AI-assisted development

Built with AI as an accelerator

AI helps accelerate implementation, exploration and debugging. The product requirements, operational model, business rules, validation and final decisions remain directed by me.

  1. Operational experience
  2. Product idea
  3. Business requirements
  1. AI-assisted development
  2. Implementation
  3. Testing
  4. Validation
  5. Iteration

Roadmap

Where it stands and what comes next

Foundation

  • CustomersImplemented
  • OrdersIn development
  • TripsIn development
  • InvoicesPlanned
  • PaymentsPlanned
  • OutstandingPlanned
  • ReportsPlanned

Operations

  • VehiclesImplemented
  • DriversImplemented
  • ExpensesPlanned
  • Operational trackingPlanned

Business management

  • Users & rolesImplemented
  • BranchesImplemented
  • SettingsImplemented
  • Audit historyImplemented

Future direction

  • Richer reportingFuture
  • NotificationsFuture
  • IntegrationsFuture
  • Mobile workflowFuture
  • Advanced analyticsFuture

Categories, not dates. “Future” means an idea worth exploring, not a commitment. Settings covers the organisation profile only, and audit history is stored but has no screen yet.

Explore

Explore the product

View the OpsFlow early build

The current software, as it stands. It is early, and it is real.

View OpsFlow early build ↗

Have a similar workflow?

If your business still relies on disconnected spreadsheets, manual records or repetitive operational workflows, I'd be interested in understanding the process and exploring what could be automated.

Discuss an operational problem