Modular Logistics OS
Plan, Optimize, Track, Scale

Fleetbase is an open-source, modular logistics OS designed to support any logistics operation. Create dynamic workflows, custom fields, and logic to match your operations. Manage planning and optimization to real-time tracking, all in one system.

Light Mode
Dark Mode

Partners

Own the Stack. Master Your Ops.

Open-source by design for maximum flexibility and control.

Fleetbase is fully open source, giving you complete control over your infrastructure and data. Unlike closed or cloud-only platforms, you can deploy Fleetbase anywhere—on-premise, in your own private cloud, or even offline. With transparent code, no black boxes, and a growing community of contributors and developers, you benefit from innovation without being locked into a vendor. Customize everything, integrate freely, and stay in control of your operational systems without compromise.

  • No Vendor Lock In
  • Flexible Licensing
  • Security Through Transparency
  • Faster Innovation & Customization
Real-Time APIs for Real-World Logistics.

Develop smarter with sockets, webhooks, and a powerful API

Fleetbase is built to support modern logistics development. Its API is designed to be intuitive, scalable, and fully event-driven—featuring WebSocket support for real-time data, webhook triggers for automation, and robust REST endpoints for everything else. With integrated developer tools like log viewers and API key management, Fleetbase gives you the backend visibility and control needed to build reliable, production-ready integrations.

Add new features and integrations with just a few clicks.

Extension Marketplace

Fleetbase is modular by design. Install extensions to instantly unlock new features and integrations, or build your own to solve unique operational challenges. With full access to the developer toolkit, you can publish extensions privately for internal use—or list them on the Fleetbase Marketplace for others to discover and buy. It’s open, flexible, and built to grow with your business

6,000+

Active Users

800+

Community

20+

Partners

10+

Enterprise Customers

Explore our extensions

All extensions ->

FleetOps
TMS

Plan, dispatch, and manage logistics operations end-to-end - from first mile to last mile - all within a customizable, real-time dashboard.

Learn More
Storefront
Headless Commerce

Launch a hyperlocal ecommerce front in minutes. Manage inventory, accept payments, and enable on-demand delivery across multiple vendors.

Learn More
Navigator
Driver App

Mobile app for drivers to receive orders, track routes, update statuses, capture POD, and report issues — all synced to FleetOps.

Learn More
Customer Portal
Client Access & Visibility

Give your customers live access to order tracking, delivery updates, and invoices. Securely share data and improve operational transparency.

Learn More
Pallet
Inventory & Warehouse Management

Track inventory across locations, manage SKUs, process inward/outward stock, and integrate with fulfillment workflows.

Learn More
Developer Console
SDKs, APIs & CLI

Build, integrate, and extend Fleetbase with our open-source SDKs, CLI tooling, webhooks, and RESTful APIs. Designed for rapid development.

Learn More
Fleetbase Developer Toolkit
Instantly create, dispatch, and track logistics operations via API. Use the SDK to connect to Fleetbase services, manage resources, subscribe to real-time events, and optimize your workflows with a few lines of code.
💲 Fetch Service Quotes
Get real-time quotes for pickup/dropoff.
📦 Create a Order
Easily create logistics orders via API.
🔄 Subscribe to Activity
Listen for order and driver events live.
📍 Locate Nearby Drivers
Search for drivers by proximity radius.
// Fetch service quotes based on pickup/dropoff and display best option import Fleetbase from '@fleetbase/sdk'; const fleetbase = new Fleetbase('< Fleetbase API Key >'); (async () => { try { const serviceQuotes = await fleetbase.serviceQuotes.query({ pickup: '10020 2nd Ave S, Seattle, WA', dropoff: '101 W Olympic Pl, Seattle, WA', currency: 'USD' }); if (serviceQuotes.length === 0) { console.log('No service quotes available for the selected route.'); return; } console.log('Available service quotes:'); serviceQuotes.forEach((serviceQuote) => { console.log(`- ${serviceQuote.getAttribute('service_name')}: ${serviceQuote.getAttribute('currency')} ${serviceQuote.getAttribute('amount')}`); }); // Example: Choose the cheapest quote const cheapest = serviceQuotes.reduce((prev, current) => ( prev.getAttribute('amount') < current.getAttribute('amount') ? prev : current )); console.log(`Cheapest option: ${cheapest.getAttribute('service_name')} at ${cheapest.getAttribute('currency')} ${cheapest.getAttribute('amount')}`); } catch (err) { console.error('Error fetching service quotes:', err); } })();
// Create an order with pickup/dropoff and entity items import Fleetbase from '@fleetbase/sdk'; const fleetbase = new Fleetbase('< Fleetbase API Key >'); (async () => { try { const order = await fleetbase.orders.create({ pickup: '10020 2nd Ave S, Seattle, WA', dropoff: '101 W Olympic Pl, Seattle, WA', scheduled_at: new Date(Date.now() + 60 * 60 * 1000), // scheduled 1 hour from now pod_method: 'signature', // Require a signature for proof of delivery entities: [ { name: 'Packaged Goods', weight: 3, weight_unit: 'kg', sku: 'PG1-S2300-44', quantity: 2 }, { name: 'Fragile Box', weight: 1.5, weight_unit: 'kg', sku: 'FBX-9332', quantity: 1 } ], notes: 'Handle with care. Fragile items included.' }); console.log(`New order created! ID: ${order.id}`); console.log(`Pickup at: ${order.getAttribute('payload.pickup.address')}`); console.log(`Dropoff at: ${order.getAttribute('payload.dropoff.address')}`); } catch (err) { console.error('Error creating new order:', err); } })(); console.log(order);
// Listen to real-time updates on an order import socket from 'socketcluster-client'; // You would normally have the order id from previous creation const orderId = ''; const socketInstance = socket.create({ hostname: 'socket.fleetbase.io' }); // Update to your socket host const channel = socketInstance.subscribe(`order.${orderId}`); (async () => { try { console.log(`Subscribed to live updates for Order ${orderId}`); for await (let socketEvent of channel) { const { event, data } = socketEvent; switch (event) { case 'order.updated': console.log(`Order updated! New status: ${data.status}`); break; case 'order.completed': console.log('Order completed successfully!'); break; case 'order.cancelled': console.log('Order was cancelled.'); break; default: console.log('Received event:', event, data); } } } catch (err) { console.error('Error in order event listener:', err); } })();
// Find and display nearby drivers import Fleetbase from '@fleetbase/sdk'; const fleetbase = new Fleetbase('< Fleetbase API Key >'); (async () => { try { const drivers = await fleetbase.drivers.query({ nearby: '10020 2nd Ave S, Seattle, WA', radius: 5000 // optional: within 5,000 meters or 5km }); if (drivers.length === 0) { console.log('No drivers found nearby.'); return; } console.log(`Found ${drivers.length} driver(s) nearby:`); drivers.forEach(driver => { console.log(`- ${driver.getAttribute('name')} (ID: ${driver.id}) at ${driver.getAttribute('location.coordinates').join(', ')}`); }); } catch (err) { console.error('Error finding nearby drivers:', err); } })(); console.log(drivers);

Create dynamic order workflows Effortlessly

Fleetbase Order Configs let you fully customize how orders are structured, processed, and fulfilled. Create custom fields, define entities, and build dynamic workflows with logic and triggers—so your order management fits your operations, not the other way around.

Take control of your logistics operations.

7 day trial, no credit card required.
Created by potrace 1.10, written by Peter Selinger 2001-2011