DEV Community

Cover image for The Price Tag Is Not the License
Svg/icons
Svg/icons

Posted on

The Price Tag Is Not the License

Downloading an icon is easy.

Understanding what you are allowed to do with it six months later is much harder.

A developer finds an SVG, downloads it, optimizes it, renames the file and adds it to a repository.

The icon now looks like every other asset in the project.

What may no longer be visible is where it came from, under which license it was obtained, whether attribution is required, or whether redistribution is allowed.

That is the real problem.

The price of an asset does not describe its usage rights.

A $0 download tells you how much you paid.

It does not tell you what you can do with the file.


An SVG can lose its context very quickly

Imagine a typical workflow.

You download:

dashboard.svg
search.svg
settings.svg
Enter fullscreen mode Exit fullscreen mode

Then you:

  • optimize the SVG
  • normalize its dimensions
  • change its color handling
  • rename it
  • move it into your application repository

A few weeks later, the files may look like this:

icons/
  analytics.svg
  search.svg
  preferences.svg
Enter fullscreen mode Exit fullscreen mode

The graphics survived perfectly.

But the original context may not have.

Where did analytics.svg come from?

Which collection?

Which version?

Which license applied at the time?

Was attribution required?

Could the file be modified?

Could it be redistributed inside another downloadable product?

If the answers live only in someone's browser history, the workflow is fragile.


Free is a price condition, not a usage model

Developers often use words such as:

free icon
Enter fullscreen mode Exit fullscreen mode

as if "free" described the asset itself.

It does not.

It describes one dimension of the transaction.

There are other questions that matter just as much:

Where did it come from?
What license applies?
Is attribution required?
Can it be modified?
Can it be redistributed?
Enter fullscreen mode Exit fullscreen mode

Those questions become especially important when assets move between projects, teams and products.

An icon can be perfectly appropriate for one use case and require additional attention for another.

That is why a useful asset pipeline should preserve more than pixels and paths.


The asset should carry its usage context

A more robust way to think about an icon is:

icon
+ origin
+ license
+ obligations
+ permitted use
Enter fullscreen mode Exit fullscreen mode

The SVG file is only one part of the asset.

The rest is metadata.

In practical terms, a project could retain information such as:

{
  "file": "analytics.svg",
  "collection": "example-icons",
  "source": "https://example.com/icons/analytics",
  "license": "Example License",
  "attribution": false,
  "modification": true,
  "redistribution": "check terms"
}
Enter fullscreen mode Exit fullscreen mode

The exact format is less important than the principle.

The information should stay close to the asset.

Not in an old bookmark.

Not in a Slack message.

Not in the memory of the developer who originally downloaded it.


Modification should not break traceability

Icon workflows rarely keep source files untouched.

Developers optimize SVGs.

Designers adjust paths.

Build systems convert them into components.

Applications may generate sprites, symbol sets or framework-specific assets.

For example:

original SVG
    ↓
optimized SVG
    ↓
React component
    ↓
application bundle
Enter fullscreen mode Exit fullscreen mode

The representation changes.

The provenance should not.

The same applies to usage information.

A transformed asset should still be traceable back to the conditions under which it entered the project.

Otherwise optimization becomes an accidental metadata deletion step.


Redistribution is where missing context becomes expensive

During development, an icon may simply appear inside an interface.

Later, the same project may become:

  • a reusable component library
  • a design system
  • a downloadable template
  • an SDK
  • a commercial application
  • an open-source repository

The asset has not necessarily changed.

The way it is distributed has.

At that point, knowing only that the icon was "free" is not very useful.

The team needs the original context.

This is why license information should be considered part of dependency management rather than something checked once during download.


Treat icons more like dependencies

Software teams already preserve metadata for code dependencies.

A package manager does not simply download files and forget where they came from.

Projects retain information such as:

package
version
source
license
dependency tree
Enter fullscreen mode Exit fullscreen mode

Icon assets deserve a similar level of discipline.

Not because every icon workflow needs a complex compliance system.

But because provenance becomes much easier to maintain when it is captured at the moment the asset enters the project.

The best time to record usage rights is not six months later.

It is during acquisition.


A simple rule for icon pipelines

Before an icon becomes part of a project, capture at least:

SOURCE
LICENSE
ATTRIBUTION
MODIFICATION
REDISTRIBUTION
Enter fullscreen mode Exit fullscreen mode

Then keep that information with the asset or with the project's asset manifest.

The workflow becomes:

discover
   ↓
verify
   ↓
record
   ↓
transform
   ↓
ship
Enter fullscreen mode Exit fullscreen mode

instead of:

download
   ↓
forget
   ↓
investigate later
Enter fullscreen mode Exit fullscreen mode

That small change makes future decisions much easier.


The useful question is not "Is this icon free?"

A better question is:

Do we still know what we are allowed to do with this asset?

That question remains useful long after the download button has disappeared.

Good asset pipelines preserve more than the file.

They preserve the information required to use the file responsibly.

Because the price tag is not the license.

And usage rights should travel with the asset.

Top comments (0)