DEV Community

Cover image for I built an open-source library of 3,847 brand SVG icons. Here's the full developer toolkit
GDS K S
GDS K S

Posted on

I built an open-source library of 3,847 brand SVG icons. Here's the full developer toolkit

Every time I start a new project, the same thing happens.

I need a GitHub logo. I Google it. I find a 64x64 PNG from 2019. I try the press kit - login wall. I check Simple Icons - they only have monochrome. I check svgl - close, but missing the variant I need.

30 minutes later I'm manually tracing an SVG in Figma.

Sound familiar?

So I built theSVG

thesvg.org is a free, open-source collection of 3,847 brand SVG icons you can search, copy, and drop into any project.

But it's not just a website with a search bar. It's a full developer toolkit.

theSVG homepage

The npm packages

npm install @thesvg/icons
Enter fullscreen mode Exit fullscreen mode
import github from "@thesvg/icons/github";

github.svg; // raw SVG string
github.title; // "GitHub"
github.hex; // "181717"
github.variants; // { default, mono, light, dark, wordmark }
Enter fullscreen mode Exit fullscreen mode

Only the icons you import end up in your bundle. The package generates individual entry points per icon, so your bundler drops everything else. One icon costs ~3KB, not 12MB.

React components

npm install @thesvg/react
Enter fullscreen mode Exit fullscreen mode
import { Github, Figma, Stripe } from '@thesvg/react';

<Github width={24} height={24} className="text-gray-900" />
<Figma width={32} height={32} aria-label="Figma" />
Enter fullscreen mode Exit fullscreen mode

Every component has:

  • Full SVGProps<SVGSVGElement> typing
  • forwardRef support
  • Zero runtime dependencies
  • Individual imports for bundlers without tree-shaking (@thesvg/react/github)

CLI

npx @thesvg/cli add github vercel nextjs --format jsx
Enter fullscreen mode Exit fullscreen mode

Drops SVG files (or JSX/Vue components) directly into your project. Auto-detects your directory structure - public/icons/ for Next.js, src/icons/ otherwise.

CDN - zero install

<img src="https://thesvg.org/icons/github/default.svg" width="32" />
Enter fullscreen mode Exit fullscreen mode

Every icon has a direct URL. Use it in README files, docs, emails, dashboards. No API key, no account.

Pro tip - use these as tech stack badges in your GitHub README:

![React](https://thesvg.org/icons/react/default.svg)
![TypeScript](https://thesvg.org/icons/typescript/default.svg)
![Next.js](https://thesvg.org/icons/nextjs/default.svg)
Enter fullscreen mode Exit fullscreen mode

MCP server for AI assistants

{
  "mcpServers": {
    "thesvg": {
      "command": "npx",
      "args": ["@thesvg/mcp-server"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Claude, Cursor, and Windsurf can search and embed brand icons natively. Ask your AI assistant "add a GitHub icon" and it pulls the real SVG.

5 variants per icon

Most icon libraries give you one version. We give you up to five:

Variant Use case
default Brand colors - the standard logo
mono Single color - works with any theme
light Optimized for light backgrounds
dark Optimized for dark backgrounds
wordmark Full text logo with brand name
import github from "@thesvg/icons/github";

const darkLogo = github.variants["dark"];
const wordmark = github.variants["wordmark"];
Enter fullscreen mode Exit fullscreen mode

Not every icon has all variants, but default is always present.

20+ categories

theSVG categories

AI, Software, Framework, Language, Design, Cloud, Browser, CMS, Analytics, Auth, Database, DevOps, E-commerce, Finance, Gaming, Music, Social, Streaming... and more.

Filter by category on the site or via the API:

GET https://thesvg.org/api/icons?category=AI&limit=50
Enter fullscreen mode Exit fullscreen mode

The engineering bits

A few problems I had to solve that might be interesting:

SVG security. SVGs from the wild can contain embedded <script> tags, onload event handlers, or javascript: URIs. The build pipeline scans every SVG and strips anything dangerous before it enters the repo.

Tree-shaking at scale. With 3,847 icons and 5 variants each, the naive approach (one barrel export) would ship ~12MB to every user. Instead, the build generates per-icon entry points. Your bundler only touches the icons you import.

OIDC publishing. No npm tokens stored as GitHub secrets. The release workflow authenticates directly with npm via OpenID Connect. Every published package gets a provenance signature.

Variant normalization. Different sources name variants differently - logo-dark, dark-mode, inverted, on-light. Everything gets normalized to a consistent {slug}/{variant}.svg structure.

The full package list

Package What
thesvg All icons, one import
@thesvg/icons Core data + TypeScript types
@thesvg/react 3,847 typed React components
@thesvg/cli CLI: search, add, export
@thesvg/mcp-server MCP server for AI assistants

Try it

theSVGIcon

The codebase is MIT licensed. Brand icons remain the property of their respective trademark holders.

Missing a brand? Submit it or open a PR. Every brand deserves a place.

If this saves you time, a star on GitHub helps more than you'd think.

theSVG.org

Top comments (0)