<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adrian</title>
    <description>The latest articles on DEV Community by Adrian (@adrianc).</description>
    <link>https://dev.to/adrianc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3882489%2Fc2162770-2eeb-4d13-902b-7227fcfe8a4e.jpeg</url>
      <title>DEV Community: Adrian</title>
      <link>https://dev.to/adrianc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adrianc"/>
    <language>en</language>
    <item>
      <title>The Car Logo Problem Every Automotive Dev Team Has (And How to Fix It)</title>
      <dc:creator>Adrian</dc:creator>
      <pubDate>Thu, 16 Apr 2026 12:54:47 +0000</pubDate>
      <link>https://dev.to/adrianc/the-car-logo-problem-every-automotive-dev-team-has-and-how-to-fix-it-1nnk</link>
      <guid>https://dev.to/adrianc/the-car-logo-problem-every-automotive-dev-team-has-and-how-to-fix-it-1nnk</guid>
      <description>&lt;p&gt;You know the folder. Every automotive project has one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/public/logos/
  toyota.png
  honda.png
  ford.png
  kia.png          ← this one's wrong
  kia-new.png      ← is this the right one?
  kia_2021.png     ← wait, which one do we actually use?
  peugeot.png      ← spoiler: also wrong
  ...
  misc/
    bmw_old.png
    bmw_new.png
    bmw_USE_THIS_ONE.png
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you've built anything in the automotive space — a car marketplace, a dealer platform, a fleet tool, an insurance comparison app — you've been here. The logo folder starts small and reasonable. Then a brand refreshes their identity, a PM notices the wrong logo on production, and suddenly you're deep in a Wikipedia rabbit hole trying to find an SVG that doesn't look like it was exported from 2007.&lt;/p&gt;

&lt;p&gt;This is the car logo problem. It's mundane, it's unglamorous, and it quietly costs dev teams real hours. Let me walk through why it's worse than it sounds, and what actually fixes it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why "Just Grab the Logo" Is Never Simple
&lt;/h2&gt;

&lt;p&gt;On the surface it seems trivial. Download a PNG, drop it in &lt;code&gt;/public&lt;/code&gt;, done. But here's what actually happens in practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quality is all over the place.&lt;/strong&gt; Official brand websites don't always have clean, developer-ready assets. You end up on third-party logo sites with watermarks, inconsistent backgrounds, and resolutions that are either way too small or absurdly large.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You need multiple variants.&lt;/strong&gt; Most UIs need more than one form of a logo. A full horizontal lockup for a detail page, a badge/emblem for compact list views, a wordmark-only for a certain layout breakpoint. For 50 brands, that's potentially 150 files to source, name consistently, and maintain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brands rebrand. Constantly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This one is the real killer. In the last five years alone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kia&lt;/strong&gt; (2021): Complete identity overhaul. The old interlocking KIA is gone, replaced with a bold angular mark that looks nothing like the old one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peugeot&lt;/strong&gt; (2021): Went from a traditional lion badge to a flat, shield-based emblem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GM&lt;/strong&gt; (2021): Quietly updated their corporate logo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nissan&lt;/strong&gt; (2020): Moved from a 3D chrome badge to a flat, minimalist redesign.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BMW&lt;/strong&gt; (2020): Flattened their roundel for digital use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VW&lt;/strong&gt; (2019): Major simplification before the ID.4 launch era.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Toyota&lt;/strong&gt; (2023): Updated global brand guidelines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're serving 400+ brands and seven of them rebrand in five years, that's seven fires — minimum. Now multiply by the number of apps and teams affected.&lt;/p&gt;

&lt;p&gt;I've seen the Slack message: &lt;em&gt;"Hey, who has the new Kia logo? The one on the listing page still shows the old one."&lt;/em&gt; That message has been sent at hundreds of companies.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Stopgap Approaches (And Why They Fail)
&lt;/h2&gt;

&lt;p&gt;Before getting to the fix, let's acknowledge the workarounds, because you've probably tried them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wikipedia Commons / brand press kits&lt;/strong&gt;: Hit or miss on format, always manual, often legally ambiguous.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scraping brand websites&lt;/strong&gt;: Fragile. Breaks when they update their site. Also definitely against their ToS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A shared Dropbox/Drive folder&lt;/strong&gt;: Works until the person who maintained it leaves the company. Then it's archaeology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outsourcing it to the design team&lt;/strong&gt;: They have other things to do. This becomes a bottleneck or gets deprioritized until someone complains about a wrong logo on a listing that's been live for 18 months.&lt;/p&gt;

&lt;p&gt;The pattern is always the same: manual, brittle, and it falls on whoever cares most in the moment.&lt;/p&gt;




&lt;h2&gt;
  
  
  There's a Dedicated API for This
&lt;/h2&gt;

&lt;p&gt;I built &lt;a href="https://motomarks.io" rel="noopener noreferrer"&gt;Motomarks&lt;/a&gt; as a better solution for a vehicle comparison tool. The pitch is simple: it's a car logo API — a CDN-backed service that serves manufacturer logos for 420+ automotive brands, keeps them updated when brands rebrand, and lets you drop an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag in instead of managing a file system.&lt;/p&gt;

&lt;p&gt;Here's the simplest possible integration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt;
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://img.motomarks.io/toyota?token=YOUR_KEY"&lt;/span&gt;
  &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Toyota logo"&lt;/span&gt;
&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. You get back the logo, optimized for the browser. No folder. No filename convention debates. No "which version is current" ambiguity.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You're Actually Getting
&lt;/h3&gt;

&lt;p&gt;The API serves logos in three formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full logo&lt;/strong&gt; — the complete brand mark, however the manufacturer uses it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Badge / emblem&lt;/strong&gt; — the icon/symbol only (useful for compact UIs, table rows, map pins)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wordmark&lt;/strong&gt; — the text-only version&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Six size tiers (XS through XL), and automatic format selection between PNG, WebP, and AVIF based on what the browser supports. The CDN has 700+ edge locations globally, so you're looking at sub-millisecond response times in practice, with a 99.99% uptime SLA.&lt;/p&gt;

&lt;p&gt;The part that actually matters for the rebrand problem: &lt;strong&gt;they maintain the assets&lt;/strong&gt;. When Kia updates their logo, you don't touch your code. The slug stays &lt;code&gt;kia&lt;/code&gt;, the URL stays the same, the image updates. Your app gets the new logo without a deploy.&lt;/p&gt;




&lt;h2&gt;
  
  
  React / Next.js Integration
&lt;/h2&gt;

&lt;p&gt;For a Next.js app, you'd typically store the token in an environment variable and use it with the &lt;code&gt;Image&lt;/code&gt; component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// components/BrandLogo.jsx&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/image&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;MOTOMARKS_BASE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://img.motomarks.io&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;BrandLogo&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;md&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;MOTOMARKS_BASE&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;?token=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;NEXT_PUBLIC_MOTOMARKS_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;amp;size=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Image&lt;/span&gt;
      &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;alt&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; logo`&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;objectFit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;contain&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then wherever you're rendering vehicle listings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// In your vehicle listing component&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrandLogo&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@/components/BrandLogo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;VehicleCard&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;vehicle&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"vehicle-card"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;BrandLogo&lt;/span&gt;
        &lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;vehicle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;make&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;vehicle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;make&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; logo`&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"sm"&lt;/span&gt;
      &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;vehicle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;year&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;vehicle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;make&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;vehicle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;slug&lt;/code&gt; is just the brand name lowercased. The API returns JSON metadata if you need it — useful if you want to build a brand directory or display brand names consistently:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Fetch metadata for a brand&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s2"&gt;`https://api.motomarks.io/brands/bmw?token=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;MOTOMARKS_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;brand&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;// { id: "bmw", name: "BMW", country: "DE", founded: 1916, ... }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's also a TypeScript SDK if you want typed access instead of raw fetch calls.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Free Tier
&lt;/h2&gt;

&lt;p&gt;Worth mentioning: there's a free tier with 1,000 requests/day. For a lot of internal tools, dashboards, or low-traffic sites, that's enough to validate the integration before committing. It requires attribution (reasonable), and you get the same CDN and format optimization as paid tiers.&lt;/p&gt;

&lt;p&gt;For context on what 1,000 requests/day means in practice — if you're lazy-loading logos on page views and a user visits a 10-brand comparison page, that's 10 requests. So 100 visits/day before you hit the limit. Small apps and prototypes fit comfortably.&lt;/p&gt;




&lt;h2&gt;
  
  
  When This Actually Makes Sense to Use
&lt;/h2&gt;

&lt;p&gt;Motomarks is a good fit if you're building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Car marketplaces or classifieds&lt;/strong&gt; — you're rendering dozens of brand logos per page, across hundreds of makes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dealership websites&lt;/strong&gt; — need consistent, current logos for every brand in inventory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fleet management tools&lt;/strong&gt; — mixed fleet dashboards with 20+ manufacturers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insurance or finance apps&lt;/strong&gt; — comparisons and quotes that display vehicle brand identity&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vehicle databases or lookup tools&lt;/strong&gt; — anywhere brand identity is part of the data presentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's less useful if you're dealing with just 3-5 brands that never change — at that scale, a static folder is fine and the overhead isn't worth it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Value Proposition
&lt;/h2&gt;

&lt;p&gt;The time savings aren't in the initial setup — dropping an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag in takes about the same time as downloading a file. The savings come later, when Peugeot or Kia or whoever is next rolls out a new identity and your app just... handles it. No ticket, no Slack thread, no weekend deploy.&lt;/p&gt;

&lt;p&gt;If you're working on anything automotive, it's worth a look: &lt;a href="https://motomarks.io" rel="noopener noreferrer"&gt;motomarks.io&lt;/a&gt;. The free tier is enough to wire up a prototype and see if it fits your architecture.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have you dealt with the logo folder problem on a project? I'm curious how other teams have handled it — drop a comment below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
