Haul First

Waste logistics marketplace · U.S. logistics startup

Turning phone-based waste hauling into a real-time digital marketplace.

Four connected products on one backend: web and mobile apps for waste centers, a mobile app for haulers, and an admin panel for platform operators.

The marketplace's admin dashboard on a laptop, showing open, expired, active and pending-verification load counts and recent loads, beside a hauler's phone listing matched loads with prices and a 'Slide to claim' control.
Industry
Logistics, waste transportation
Market
United States
Platforms
Web, iOS and Android, admin panel
Delivery
MVP from scratch, 7 specialists

01 Executive summary

A marketplace MVP that takes every waste load from posting to payment in one system.

Client and market

A U.S.-based logistics startup modernising how waste centers and haulers arrange the transport of waste loads.

Challenge

Loads were arranged through phone calls, scattered messages and existing relationships. The MVP had to turn posting, matching, claiming, pickup, proof, payment and oversight into reliable software rules.

Product

A two-sided marketplace: web and mobile apps for waste centers, a cross-platform mobile app for haulers, and an internal admin panel, all connected through one NestJS backend.

What Digital Growth Labs delivered

  • The full MVP built from scratch across web, mobile, backend and admin
  • Radius-based load matching and real-time claiming with push notifications
  • A Stripe-backed payment cycle with charges, payouts and configurable platform fees
  • An admin control centre for approvals, reassignment, status overrides and audit history

4

Connected products delivered

250mi

Load matching radius

1hr

Pickup buffer with auto-reposting

7

Specialists on the team

Attribution. Digital Growth Labs delivered this waste logistics marketplace as white-label delivery partner to SolveIt, where this project is also published.

02 The challenge

Waste loads moved on phone calls and relationships, not on shared, trackable data.

Waste transportation is still often arranged by phone, through fragmented communication and long-standing business relationships. Nobody had a single place to post a load, see who claimed it, confirm the pickup and settle the payment.

Waste centers

Need to post single, recurring or bulk loads with pickup details, then know who is coming and when.

Haulers

Need to find relevant loads inside their service area and claim them without double-booking.

Platform operators

Need to approve users, step in on exceptions, and see every load and payment across the marketplace.

Business goal

Turn manual coordination into a scalable digital marketplace, with a foundation that supports real users from day one and stays flexible for post-MVP features.

Product complexity

Three roles, each with a different device priority: web-first for waste centers, mobile-first for haulers, control tools for admins.

Two blue load cards for load 1-2344, one marked Open and one marked Failed, with pickup time, route, price and Chat and Duplicate buttons.
Load cards carry each job's status, from Open to Failed. Every state had to be defined, enforced and visible to the right role.

Technical complexity

  • Two-sided marketplace logic
  • Claim locking
  • Radius-based geo matching
  • Time-sensitive pickup rules
  • Auto-reposting
  • Proof of completion
  • Charges, payouts, platform fees
  • Role-based access
  • 2FA and verification
  • English and Spanish

Core problem

The hard part was not building apps. It was turning the real-world lifecycle of a waste load into rules that software could enforce for three different roles.

03 Our approach

Every step was anchored to the lifecycle of a single waste load.

Every step connects back to the same goal: a marketplace where a load can be posted, claimed, tracked, completed and paid for in one place.

  1. 01

    Map the load lifecycle

    Defined the operational logic behind every load: posting, matching, claiming, pickup confirmation, proof upload, payment and admin control, with statuses from Open to Paid or Failed.

    What it solvedReplaced informal phone agreements with explicit, trackable states.

  2. 02

    Scope by role

    Planned web-first flows for waste centers, mobile-first flows for haulers and control tools for admins, across four connected products.

    What it solvedEach role gets the device and depth of control its work actually needs.

  3. 03

    UX/UI from scratch

    With no existing UX foundation, designed for operational clarity: clean navigation, simple load cards, clear status labels, accessible forms and shared components.

    What it solvedUsers can complete key actions with minimal friction on any screen.

  4. 04

    Architecture

    Centralised NestJS backend and PostgreSQL database, split into modules for users, waste centers, orders, transactions, notifications, authentication and payments.

    What it solvedOne source of truth for four clients, ready for post-MVP growth.

  5. 05

    Development

    Built React apps for waste centers and admins, Flutter mobile apps, Firebase push notifications, Google Maps location services, Stripe payments and Twilio verification.

    What it solvedFewer manual follow-ups and faster coordination for both sides.

  6. 06

    QA and launch

    Quality assurance across web, mobile, backend and admin.

    What it solvedMarketplace rules behave reliably before real loads depend on them.

04 The product

Three roles, one connected flow for every load.

Waste center

Web and mobile

  1. Post a load

    Single, recurring or bulk, with pickup, destination, material, price and schedule

  2. Get notified

    Push alert when a hauler claims the load

  3. Confirm pickup

    Controls the Picked Up status

  4. Settle

    Charge and payment records

One NestJS backend and Firebase push notifications keep claims, statuses, reposts and payments in sync across all four products

Hauler

Mobile app

  1. Set service area

    Adjustable matching radius

  2. Claim a load

    Claim locking prevents double-booking

  3. Arrive and pick up

    1-hour pickup buffer

  4. Upload proof

    Photo or ticket; payout tracked

Admin

Admin panel

  1. Approve users

    Verify haulers and centers

  2. Resolve exceptions

    Reassign loads, override statuses

  3. Oversee money

    Monitor payments, adjust fees

  4. Audit

    Status and action history

The waste center web app listing loads by status with dates, times and routes, beside the hauler mobile app showing claimed loads, with Google Play and App Store badges.
The waste center web app with the hauler mobile app. Both read from the same backend, so a load claimed on a phone updates the center's load list and statuses.

04 Key screens

Built for the job each role does, on the device they use.

Two phones on a dark surface: the hauler app showing hauler info, completion proof and payment details, and the waste center app setting a service area on a map. Labels read 'Mobile app for haulers' and 'Mobile app for waste centers'.
Mobile apps for waste centers and haulers. Haulers set their service area on a map, see matched loads, update progress and upload completion proof; centers manage and track posted loads on the go.
Waste center loads view on a tablet, with Open, Claimed and In progress tabs and loads marked Expired and Open.
Waste center loads view, grouped by Open, Expired and In progress, with price, route and one-tap duplicate or cancel.
Admin dashboard showing 1,123 open loads, 12 expired and 233 active, with a list of recent loads marked Open, Claimed and Picked up.
Admin dashboard: open, expired, active and pending-verification counts, plus recent loads with the center and hauler attached.

05 Engineering

One modular backend serves four products, so every client sees the same truth about a load.

Experiences

Four client products

Web app

Waste centers

ReactTypeScript

Mobile app

Waste centers

Flutter

Mobile app

Haulers

Flutter

Admin panel

Platform operators

React

Backend API

Business logic and access

NestJS backend

Business rules, authentication, role-based access, data communication

UsersWaste centersOrdersTransactionsNotificationsAuthenticationPayments

Data and services

PostgreSQL

Users, centers, orders, transactions, operational records

Firebase Cloud Messaging

Push on web and mobile

Google Maps

Geocoding, Places

Stripe

Payments

Twilio Verify

Verification

Centralised by design

All client apps connect to the same backend services, so a claim, a status change or a payment is recorded once and reflected everywhere.

Modules for growth

Users, waste centers, orders, transactions, notifications, authentication and payments are separate modules, giving post-MVP features a clear place to land.

Real-time where timing matters

Firebase Cloud Messaging pushes matched loads, claims, reposts, pickup updates and completion changes to web and mobile users.

Notifications panel with an 'Enable push notifications' prompt and alerts such as 'Load #1000 is claimed' and 'Load #1000 is open again: hauler canceled claim'.

Push notification events

  • New matched loads for haulers
  • Load claimed by a hauler
  • Auto-reposted loads
  • Pickup-related updates
  • Completion status changes
  • Operational alerts

05 Stack and decisions

Proven, well-supported tools, chosen for an MVP that has to run real operations.

Web and admin
React, TypeScript
Mobile
Flutter (cross-platform)
Backend
NestJS, TypeORM
Database
PostgreSQL
Notifications
Firebase Cloud Messaging
Maps and location
Google Maps, Geocoding, Places API
Payments
Stripe
Auth and verification
JWT, Twilio Verify API, 2FA flows
Languages
English and Spanish
  1. 01

    One backend for four products

    Load, payment and user logic sit in one NestJS service, so every app works from the same records.

  2. 02

    Rules enforced on the server

    Claim locking, the 1-hour pickup buffer and auto-reposting are platform rules, not manual agreements, so they apply the same way for every user.

  3. 03

    Push for time-critical events

    Load availability and pickup timing are critical, so key events are pushed through Firebase rather than waiting for users to check.

  4. 04

    Cross-platform mobile with Flutter

    Both mobile apps target iOS and Android, matching the store availability shown in the published product.

  5. 05

    Payments modelled from the start

    Charges, payouts, Stripe references and configurable platform fees were part of the MVP, so completed loads flow straight into a payment cycle.

App language setting with English and Spanish options beside a phone showing the loads screen in Spanish.
Language support: English and Spanish, with the user's choice saved as a preference.
Phone showing a waste center profile with account verification in progress and a prompt to verify before connecting a payment method.
Secure authentication: JWT-based sessions, role-based access control and 2FA flows, with account verification.

06 Key capabilities

Six capabilities that run the marketplace.

Waste centers

Load posting

Waste centers create single, recurring or bulk loads with pickup details, destination, material type, price and schedule.

ValueThe information a hauler needs to accept a job is captured once, in a structured format.

Phone showing load details for load 1-239: status Completed, pickup date and time, truck, material, actual weight, note and route.
Haulers

Radius-based matching

Haulers set a service area and see loads inside it, with a 250-mile matching radius and adjustable radius settings.

ValueHaulers see relevant work instead of scrolling every open load.

Phone showing a map with a circular service area and a 'Set service area' panel with a base location and a 250-mile radius.
Haulers and centers

Real-time load claiming

Claiming a load locks it, so two haulers cannot book the same pickup. The waste center gets a push notification when it is claimed.

ValueRemoves double-booking, one of the core risks of informal coordination.

Hauler home screen with matched and active loads, a claimed $400 load with an arrival deadline and an 'I've arrived' button.
Operational rules

Pickup rules and auto-reposting

Loads carry a 1-hour pickup buffer. Missed pickups can be reposted automatically, the center is notified, and the waste center controls the Picked Up status.

ValueDelays are handled by the platform instead of a round of phone calls.

Web app 'Update Load #1004' form with a notice that reposting will make the load available to haulers again, plus pickup date and time, sites, truck type, material and rate.
Haulers

Proof of completion

After the job, haulers upload a photo or ticket so the completion can be verified before payment.

ValueGives both sides evidence before money moves.

'Verify completion of Load 1-238' dialog showing two uploaded completion tickets and an actual weight field.
Payments

Payments and platform fees

Completed loads run through a structured payment cycle: waste center charges, hauler payouts, Stripe references, configurable platform fees and a full transaction history.

ValueThe marketplace's revenue model works from the first completed load.

Tablet showing the payments screen with payment history and statuses, beside a list of payment integration features such as payment references, transaction history and admin payment oversight.

07 Results and impact

Manual coordination was replaced with digital workflows across four products.

Delivery outcomes below are as published by SolveIt. Business performance after launch has not been published.

4

Connected products from scratch

Two mobile apps, a waste center web platform and an admin panel on one backend.

250mi

Matching radius

Load discovery based on each hauler's service area, with adjustable radius.

1hr

Pickup buffer

With auto-reposting of missed loads and delay alerts to waste centers.

Manual coordination replaced

Phone-based scheduling and fragmented messages gave way to structured flows for posting, claiming, pickup confirmation and completion proof.

Full load lifecycle covered

Every load moves from Open to Paid or Failed, with payment records, admin oversight and status history.

New load form on a phone with a note that haulers can arrive within a 1-hour buffer time.
The 1-hour buffer surfaced in the load form.
Close-up map with a circular service area around a location pin.
Service area on the map drives matching.

07 Delivery

A seven-person team delivered the complete MVP ecosystem.

Services

  • MVP development
  • Web development
  • Mobile development
  • UX/UI design
  • API development
  • QA

Deliverables

  • Web app for waste centers
  • Mobile app for waste centers
  • Cross-platform mobile app for haulers
  • Admin panel for platform operations
  • NestJS backend API and PostgreSQL database

Team

7specialists

Admin panel on a laptop listing registered users with statuses, beside labels: Approve and manage users, Suspend or reactivate accounts, Search, filter, and reassign loads, Manage waste centers and haulers.
Admin panel: operators approve and manage users, suspend or reactivate accounts, reassign loads, override statuses, view audit history, monitor payments and adjust platform fees.

Agency partner perspective

“how software can bring structure to a highly manual logistics process”

Excerpt from Ilia Kiselevich, CEO at SolveIt, on SolveIt's published case study.

08 Why it worked

Five decisions turned a manual process into a structured marketplace.

  1. 01

    The load lifecycle was treated as the product

    Every state from Open to Paid or Failed is defined, with payment records and status history, so nothing depends on memory or a phone call.

  2. 02

    Each role got its own experience

    Web-first flows for waste centers, mobile-first flows for haulers and control tools for admins, instead of one interface for everyone.

  3. 03

    Operational rules live in the platform

    Claim locking, the 1-hour pickup buffer, auto-reposting and center-controlled pickup confirmation apply consistently to every load.

  4. 04

    Time-critical events are pushed

    Firebase notifications cover matched loads, claims, reposts, pickup updates and completion changes across web and mobile.

  5. 05

    One modular backend underpins everything

    Four products share a single NestJS API and PostgreSQL database, organised into modules that can grow after the MVP.

A marketplace only works when both sides trust it. By encoding the real operations of waste transport into clear states, rules and notifications, the MVP gives waste centers, haulers and operators one shared, reliable record of every load.

Have a product idea?

Digital Growth Labs is a product design and engineering partner. We take complex product ideas from concept to launch.

Book a call

The waste logistics marketplace was delivered by Digital Growth Labs as white-label delivery partner to SolveIt, where the project is also published. Project facts in this document come from SolveIt's published case study.