Car logos for fleet management and mobility platforms
A fleet is a mixed list of makes, cars and vans together, shown in tables, driver apps, client portals, and monthly reports. Put the right mark on every row from one URL pattern, in the variant each surface needs, and take the logo set out of every client onboarding.
Vehicles
Northbank Logistics · 12 vehicles · 12 makes · 6 sites
| Make | Registration | Model | Driver | Site | Mileage | Status | Contract end |
|---|---|---|---|---|---|---|---|
| LT24 KHV | ID. Buzz Cargo | R. Okafor | Leeds | 18,420 | On road | 2027-03 | |
| LT23 PRD | Transit Custom | A. Whitmore | Leeds | 41,880 | Service due | 2026-11 | |
| KX24 EFA | Model 3 | S. Bhatt | Manchester | 22,105 | On road | 2027-06 | |
| KX23 DRM | eVito | Pool | Manchester | 33,710 | In workshop | 2026-09 | |
| YN24 AZQ | Niro EV | J. Lindqvist | Sheffield | 9,640 | On road | 2027-08 | |
| YN23 TGB | Corolla Commercial | D. Adeyemi | Sheffield | 52,360 | On road | 2026-10 | |
| BV24 HLE | eDeliver 7 | Pool | Birmingham | 12,980 | On road | 2027-05 | |
| BV22 NRC | Vivaro-e | M. Petrova | Birmingham | 61,240 | Off hire | 2026-08 | |
| LD24 CUX | Q4 e-tron | H. Nakamura | London | 14,300 | On road | 2027-04 | |
| LD23 QWM | e-Expert | Pool | London | 37,890 | Service due | 2026-12 | |
| GL24 RTY | EX30 | C. Ferreira | Glasgow | 8,120 | On road | 2027-09 | |
| GL23 MBX | eDaily 35S | Pool | Glasgow | 27,650 | On road | 2027-01 |
What it changes for a fleet platform
- Client portals that launch without an asset step
- A fleet lessor or fleet management platform onboards a client with a mixed fleet of thirty makes. When each make is a slug and each mark is a URL, the client's portal shows the right logos on day one; nobody assembles a set for them.
- Replaces a logo set per client portal
- Tables a fleet manager can scan
- Five hundred vehicles, a dozen makes, sixteen pixels of row height. A wordmark with aspect=height sits on the same baseline in every row, which is the difference between a table that scans by make and one that does not.
- Replaces hand-trimmed marks that never lined up
- Reports and driver apps that agree with the portal
- The monthly utilisation PDF, the driver's mobile app, and the fleet manager's dashboard all reference the same slug. The mark is identical in all three, and a rebrand reaches all three through the cache without a release.
- Replaces an update pass across dashboard, app, and report
- Vans and trucks covered with the cars
- Fleets are not all cars. Light commercial marks such as Iveco, Maxus, and MAN sit in the same library and the same URL pattern as Ford and Mercedes-Benz, so a mixed fleet does not need a second image source.
- Replaces a separate LCV logo set
How Leaselab took 100 brands off the operations budget
- Company
- Leaselab
- Footprint
- Multiple platforms
- Library
- More than 100 automotive brands
- Before Motomarks
- An extensive operational cost
What the team stopped doing
- 01
Hours chasing updated brand assets
The asset behind the URL is updated; the URL does not change
- 02
Resizing logos by hand for each placement
size=andtype=are query parameters - 03
Applying one change across various systems
Every platform reads the same URL, so one update reaches all of them
“A fleet table is the hardest surface for logos: a hundred rows, a dozen makes, sixteen pixels high. Wordmarks with aspect=height line up in a table column in a way cropped PNGs never did. One URL parameter replaced a pile of hand-trimmed files.”
Where the mark goes on a fleet platform
- Fleet table
- A 16px wordmark per row with aspect=height, so a dense list scans by make.
- type=wordmark&size=xs&aspect=height
- Vehicle detail and driver card
- A 32px badge beside registration, model, and driver.
- type=badge&size=sm
- Driver mobile app
- The badge on My vehicle and in the mileage and damage reporting flows.
- type=badge&size=sm
- Client portal header
- The makes on a client's fleet as a strip, sized for a header.
- type=badge&size=xs
- Utilisation and cost reports
- PNG for the PDF renderer, same slug and size scale.
- type=wordmark&size=sm&aspect=height&format=png
- Remarketing and de-fleet listings
- The badge on end-of-contract vehicles offered to trade buyers.
- type=badge&size=sm
What a mixed-fleet logo set costs to keep by hand
Your numbers; change any input. First year = brands × minutes per brand + changes × codebases × hours per change. Each year after drops the one-time build. The model counts engineering time only; it leaves out CDN hosting, storage, and the cost of shipping an out-of-date mark.
Coverage for mixed fleets
Company car and pool fleet makes
Light commercial vehicles
Integration in four steps
“aspect=height is the whole trick for tables. Every wordmark sits on the same baseline at 16 pixels.”
- 01
Map fleet data to brand slugs once
Fleet records arrive from lessors, telematics, and DVLA-style lookups with make spelled several ways. Pull the published list from the JSON API daily, match on name, and store the slug beside each vehicle. Keep a small override map for the spellings that do not match.
jobs/sync-brand-slugs.ts const res = await fetch("https://api.motomarks.io/brands", { headers: { Authorization: `Bearer ${process.env.MOTOMARKS_SECRET_KEY}` }, }); const brands: { id: string; name: string }[] = await res.json(); const slugByName = new Map(brands.map((b) => [b.name.toLowerCase(), b.id])); const OVERRIDES: Record<string, string> = { "mercedes": "mercedes-benz", "vw": "volkswagen", "iveco s.p.a.": "iveco", }; export const toSlug = (make: string) => OVERRIDES[make.toLowerCase()] ?? slugByName.get(make.toLowerCase()) ?? null; - 02
Use the wordmark in tables and the badge everywhere else
aspect=heightreturns a wordmark whose height is the constraint, so every row in a table shares a baseline regardless of how wide the mark is. Cards and headers use the square badge.components/make-mark.tsx const KEY = process.env.NEXT_PUBLIC_MOTOMARKS_KEY!; export function MakeMark({ slug, name, variant }: { slug: string; name: string; variant: "table" | "card" }) { if (variant === "table") { return ( <img src={`https://motomarks.io/img/${slug}?type=wordmark&size=xs&aspect=height&token=${KEY}`} alt={name} height={16} style={{ height: 16, width: "auto" }} loading="lazy" /> ); } return <img src={`https://motomarks.io/img/${slug}?type=badge&size=sm&token=${KEY}`} alt={`${name} badge`} width={32} height={32} loading="lazy" />; } - 03
Render the same mark in the report
PDF renderers do not decode WebP. Request
format=pngin the report template with the same slug and aspect, and the mark in the PDF matches the one in the portal.reports/utilisation.html <td class="make"> <img src="https://motomarks.io/img/{{ vehicle.make_slug }}?type=wordmark&size=sm&aspect=height&format=png&token=pk_YOUR_PUBLISHABLE_KEY" alt="{{ vehicle.make }}" height="14" /> </td> - 04
Attribute usage per client and per app
Browser requests are attributed by
Referer, so client portals on separate hostnames show up separately in the usage dashboard. Server-side and mobile requests carry none, so name the product with the optional header.Optional request header GET https://api.motomarks.io/brands/iveco Authorization: Bearer sk_live_... X-Motomarks-Referer: driver-app.northbank.example
Questions before you integrate
Our fleet includes vans and trucks. Are those makes published?
Light commercial marks such as Ford, Mercedes-Benz, Volkswagen, Renault, Peugeot, Citroën, Vauxhall, Fiat, Toyota, Nissan, Maxus, Iveco, MAN, Isuzu, and LDV are published. Check the browse index for a specific brand and request any that are missing from the submit page.
Why a wordmark in the table rather than a badge?
A badge is square and reads well at 32px and above. At 16px in a dense row a wordmark is more legible, and aspect=height keeps every wordmark on the same baseline regardless of its width. Use the badge on cards, headers, and the driver app.
We white-label the platform for several lessors. Do we need a key per lessor?
One publishable key can serve every tenant, and the usage dashboard attributes browser traffic by hostname. Create a key per tenant if you want to roll one without touching the others; on Pro and Enterprise each key can carry its own hostname allowlist, including wildcards.
How does a manufacturer rebrand reach a dashboard, a mobile app, and a PDF report?
The asset behind the URL is updated and the URL stays the same. Browsers and intermediate caches hold the previous image for up to 24 hours. The mobile app and the report renderer fetch the same URL, so all three pick up the change without a release. The change is listed in the public changelog.
What does this save a fleet platform?
Pro is $588 a year billed monthly and covers 100,000 requests a day with per-key domain restrictions. A platform with forty client portals, a driver app, and a report template maintaining fifty makes has one image set feeding hundreds of placements; one rebrand applied by hand is a change, a test, and a release in each. Leaselab described maintaining more than 100 brands across multiple platforms as an extensive operational cost. The cost model on this page uses your numbers.
Every row,
the right mark.
Create a free key, map your fleet data to slugs once, and every table, app, and report renders the mark from one URL.
Free includes 1,000 requests per day with an attribution link. Startup and Pro remove attribution.
More ways teams use Motomarks
Brand assets across multiple sites
Engineering leads running several automotive products, brands, or white-label sites
Salary sacrifice and novated leasing
Novated lease providers, salary sacrifice schemes, and employee car benefit platforms
Leasing and finance applications
Teams building lease and loan origination, quoting, captive finance, and portfolio tools