
Most transport and logistics companies do not lack software. They have too much of it: one tool for vehicle tracking, a spreadsheet for drivers, a job board for hiring, accounting software for payroll, and a folder of licence scans someone checks when they remember. Building fleet management software that pulls all of that into one place is a common request, and a multi-tenant SaaS is the natural way to serve many companies with it. This guide shows how we approached it with React, Node.js and Google Maps on FleetReact.
We will cover the multi-tenant architecture, live GPS tracking, the AI hiring pipeline, finance and billing integrations, and what to think about before building a fleet platform of your own.
The problem fleet management software has to solve
FleetReact's starting point was clear. Companies were managing fleets, drivers, routes, finances and hiring from separate, disconnected systems, which made daily operations complex and inefficient. The platform needed to unify all of it in one place, with each company's data fully isolated from every other company's.
That produced a long but coherent list of modules:
- A live analytics dashboard and a live fleet map with real-time GPS vehicle tracking
- Vehicle inventory, route management and preventive maintenance scheduling
- Driver and employee management with attendance, performance ratings and incident reports
- An AI-powered hiring pipeline with interview scheduling and transcription support
- Payroll, invoice generation and expense management
- Compliance and document tracking with licence and certification expiry alerts
- Subscription management across Basic, Professional and Enterprise plans
- A Super Admin panel for multi-company oversight and platform-wide revenue tracking
The lesson from a list like this is that fleet software is really several products sharing one data model: vehicles, people and money. Get that shared model right and the modules fit together. Get it wrong and you have rebuilt the disconnected tools inside one login.
How to design a multi-tenant SaaS architecture for fleets
FleetReact runs on React for the front end, Node.js with Express.js for the API, and MongoDB for data, with JWT authentication. Each company manages its own isolated fleet environment.
Tenant isolation
For most B2B SaaS products at this stage, the practical model is a shared database with a company identifier on every tenant-owned record, enforced centrally. In a Node.js API that means the authenticated company comes from the verified JWT, never from a request parameter, and a shared data-access layer or middleware applies the company filter to every query. Relying on developers to remember the filter in each route is how cross-tenant data leaks happen. We cover this pattern in more detail in our guide to building a SaaS MVP that scales.
Roles inside and above tenants
Two layers of access exist. Inside a company, managers and staff see their own fleet. Above everyone, a Super Admin manages companies, subscriptions and platform revenue. Keep those two permission systems clearly separated in code, because a bug that lets a tenant user reach super-admin endpoints is far more damaging than an ordinary permission mistake.
Why React and Node.js
A fleet dashboard is a dense, interactive interface: maps, tables, charts and forms that update constantly. React's component model suits it well, and sharing JavaScript across front end and back end keeps a small team productive. Node.js also handles the real-time traffic described below without strain.
Real-time GPS vehicle tracking with Google Maps and Socket.io
The live fleet map is usually the feature buyers ask to see first. FleetReact uses the Google Maps API for rendering vehicles and routes and Socket.io for pushing updates to the browser in real time.
The standard flow for this kind of tracking looks like this:
- Vehicles or driver devices report positions to the API at regular intervals.
- The server validates the update, attaches it to the right company and vehicle, and stores the latest position.
- Socket.io broadcasts the update only to users in that company's room, so tenants never receive each other's locations.
- The React map component moves the marker without reloading the page.
Two practical points save pain. First, separate “current position” from “position history”. The live map needs one fast lookup per vehicle; history and route analysis need a different storage pattern. Second, watch your Maps API usage. Map loads and geocoding calls are billed, so cache what you can and avoid re-rendering the whole map on every update.
Adding AI hiring with the Indeed API
Driver hiring is a constant pressure for fleet operators, which is why FleetReact includes an AI-powered hiring module that uses the Indeed API to source and rank job candidates automatically. Interview scheduling with transcription support covers the next step of the pipeline.
Architecturally, hiring is a good example of a module that should sit on the shared data model rather than beside it. When a candidate is hired, they become an employee record with attendance, ratings and compliance documents attached, not an entry in a separate system someone has to copy across. The AI ranking speeds up the first pass, and recruiters still make the decision. That split, where AI shortlists and humans decide, is the one we recommend for most hiring automation. If you are exploring this area more broadly, our AI integration and automation work covers similar pipelines.
Payroll, invoicing and subscription billing with Plaid and Stripe
Finance is where fleet operators lose the most time to spreadsheets. FleetReact integrates Plaid for payment processing of expenses and driver cards, alongside payroll and invoice generation, and uses Stripe for the platform's own subscription billing across three tiers: Basic, Professional and Enterprise.
Keeping those two concerns separate is important:
- Tenant finances (Plaid, payroll, invoices) are the customer's own money moving through the platform. They need careful permissions and clear records.
- Platform billing (Stripe subscriptions) is how you get paid. Plan limits and feature access should be driven by subscription status synced from Stripe webhooks.
Mixing the two in one module is a common early mistake and makes both harder to audit.
Compliance tracking and what to consider before you build
Compliance and document tracking with expiry alerts looks like a small feature, but for transport companies an expired licence or certification can take a vehicle or driver off the road. Store each document with its type, owner and expiry date, run a scheduled job to check upcoming expiries, and alert the right people early enough to act.
If you are scoping your own fleet management software, our advice is:
- Start with the modules that remove the most manual work for your target customers. Not every fleet needs hiring on day one; almost every fleet needs tracking and compliance.
- Decide where GPS data comes from early. Phone apps, dedicated trackers and existing telematics providers all have different integration costs.
- Build multi-tenancy in from the first migration, not after the second customer signs.
- Consider off-the-shelf first if your needs are standard. Plenty of fleet tools exist. Custom SaaS makes sense when you are selling the platform yourself or your workflows, such as integrated hiring and finance, are your differentiator.
FleetReact was built through our SaaS product development service. You can explore the live FleetReact site or read the FleetReact case study for the full feature breakdown.
Frequently Asked Questions
How do you build real-time vehicle tracking in a web app?
Devices send GPS positions to a back-end API, which stores the latest location and pushes updates to connected browsers over WebSockets, for example with Socket.io. The front end renders positions on a map such as Google Maps and moves markers as updates arrive.
What is a multi-tenant fleet management system?
It is a single platform serving many companies, where each company sees only its own vehicles, drivers and finances. Tenant isolation is usually enforced by tagging every record with a company ID and applying that filter centrally on every query.
Is Node.js good for fleet management software?
Yes. Fleet platforms handle many concurrent connections and frequent small updates, which suits Node.js's event-driven model, and Socket.io makes real-time updates straightforward.
Can fleet software include hiring and payroll?
It can, and combining them avoids copying data between systems. FleetReact integrates the Indeed API for AI-assisted candidate sourcing and Plaid for expenses and driver cards, alongside payroll and invoicing.
Building fleet or logistics software and weighing what to include first? Talk to us — we will help you scope the version that removes the most manual work soonest.
