Full-StackNext.jsSaaSProduct Design

LocalTowing.us

A nationwide towing-dispatch platform built end-to-end on Next.js — real-time request matching, provider onboarding, and a fast, SEO-ready public site, all fully owned by the client.

LocalTowing dispatch dashboard with live map and request queue on laptop
0.9sAverage time-to-match for a dispatch request
98Lighthouse performance on the public site
Faster provider onboarding vs. the old flow
100%Client-owned codebase — no platform lock-in

The brief

One platform to run a national dispatch network.

LocalTowing came to us with spreadsheets, a phone line, and a waitlist of tow operators who wanted in. They had proven demand across dozens of US metros but no software to back it — every match was made by hand, every new provider onboarded over email.

The goal was a single product that could do three jobs at once: capture stranded drivers from organic search, route each request to the nearest available operator in real time, and let new providers sign up, verify, and start taking jobs without a human in the loop. It had to be fast, it had to rank, and it had to be something the client could own and grow — not a tool they rented from a vendor.

"We didn't want a website with a contact form. We wanted the actual business, running in a browser."

We scoped the whole thing — design, frontend, backend, and the SEO foundation — as one continuous build on Next.js, so the marketing site and the application shared one codebase, one design system, and one deployment.

The challenge

Speed is the product.

A driver requesting a tow is, by definition, having a bad day on the side of a road. Every extra second between request and confirmation is a second they're weighing whether to call a competitor. The matching had to feel instant — and the public pages had to load on a weak mobile signal.

Three constraints shaped every decision:

  • Real-time, not refresh. Operators needed live job alerts and drivers needed live status — without reloading the page.
  • SEO and app, one site. The pages that rank and the app that converts couldn't live on separate stacks.
  • Self-serve onboarding. Provider sign-up, document verification, and payouts had to run without manual review for the common case.

And it all had to be maintainable by a small team after handoff — clean, documented code with no proprietary black boxes.

Our approach

From dispatch logic to live product.

We mapped the dispatch rules before we drew a single screen — then built design, frontend, and backend in tight loops so the model and the interface evolved together.

  1. 01

    Discovery & dispatch logic

    Mapped the full request lifecycle, matching rules, and provider states with the client before any UI work began.

  2. 02

    UX architecture & flows

    Designed three distinct journeys — stranded driver, operator, and admin — and the handoffs between them.

  3. 03

    Design system & hi-fi UI

    Built one component library in Figma covering both the marketing site and the application shell.

  4. 04

    Full-stack build

    Next.js App Router, a PostgreSQL data model via Prisma, and server actions for the dispatch engine.

  5. 05

    Real-time & integrations

    Live job alerts, Mapbox routing, Stripe Connect payouts, and Twilio SMS for off-app notifications.

  6. 06

    Launch, SEO & handoff

    Technical SEO, schema, performance pass to green Core Web Vitals, plus docs and a training session.

Selected screens

Inside the platform.

Dispatcher CRM dashboard with live request queue and outreach metrics
Driver request flow on mobile — location entry and vehicle details
Provider onboarding — document upload and verification status steps
Public marketing site — city landing page with coverage map

A shared design system keeps the public marketing pages and the in-app dispatch screens visually consistent end to end.

The results

What shipped, and what it moved.

0.9s
Average time-to-match

Requests are routed to the nearest available operator in under a second — no manual dispatch.

98/100
Lighthouse performance

The public site scores green across Core Web Vitals on mobile, where most requests originate.

3×
Faster provider onboarding

Self-serve sign-up and verification replaced an email-and-phone process that took days.

100%
Owned by the client

A documented Next.js codebase the in-house team can extend — no vendor lock-in, no per-seat fees.

Tech stack

Modern tools.
Clean output.

Next.js 14 (App Router)ReactTypeScriptNode.jsPostgreSQLPrismaMapbox GLStripe ConnectTwilio SMSTailwind CSSVercelCloudflare

One codebase powers both the marketing site and the application. We write clean, typed code that the client's team — or any developer — can maintain after handoff.

★★★★★
"They didn't build us a website — they built the business that runs in the browser. Dispatch that used to take phone calls now happens before I can refresh the page."
OL
Operations LeadLocalTowing.us · USA

More work

Related projects.

Full portfolio
OFEP Cybersecurity dashboard
Cybersecurity · UK
UI/UXFrontend

OFEP Cybersecurity

Full app overhaul delivered
View portfolio
Leeuwin Estate website
Winery · Australia
WordPressSEO

Leeuwin Estate

2.1s load · 35% bounce drop
View portfolio

Ready to start?

Have a platform in mind? Let us build it.

Tell us what you are building and we will reply within 24 hours with honest, practical next steps.

Chat with us