Back to writing
Original post by Gagan Deep Singh, canonical on thegdsks.comAlso on Dev.toDiscuss on Dev.to

I Got Tired of Hunting for SVG Logos. So I Open-Sourced 4,000 of Them

theSVG hit 4,007 icons with dedicated dark/light variants, React components, an MCP server, and a free API. Here's what changed since launch.

4 min read

title: "I Got Tired of Hunting for SVG Logos. So I Open-Sourced 4,000 of Them" published: true description: "theSVG hit 4,007 icons with dedicated dark/light variants, React components, an MCP server, and a free API. Here's what changed since launch." tags: opensource, webdev, javascript, react canonical_url: https://thesvg.org series: "theSVG Icons"#

A few days ago, we launched theSVG on DEV with ~3,847 brand SVG icons.

Since then:

  • 4,007 icons (160+ new brands added)
  • 56 categories (up from 20+)
  • Dedicated dark and light variants for hundreds of icons
  • Enhanced search with category, page, and extension results
  • MCP server so Claude, Cursor, and Windsurf can fetch icons natively

Here's what's new and what we learned building it.


The icon count problem nobody warns you about#

When we launched, people asked: "Why not just use Simple Icons?"

Fair question. Simple Icons is a great project. But here's what happens in practice:

You need the Stripe logo on a dark background. Simple Icons gives you a monochrome SVG. You need the colored version. You go to Stripe's press page. They give you a PNG. You convert it. The viewBox is wrong. You fix it. You repeat this for 15 more brands.

theSVG gives you up to 5 variants per icon:

  • 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 the brand name

No conversion. No hunting. Just pick the variant you need.


What's new since launch#

Dedicated dark and light variants#

Most icon libraries give you one file and wish you luck on dark backgrounds. We ship separate dark and light variants for hundreds of icons, so you always get a version that's designed to look right on your background - not a hacky CSS inversion.

text
https://thesvg.org/icons/github/default.svg   <- brand colors
https://thesvg.org/icons/github/dark.svg       <- built for dark bg
https://thesvg.org/icons/github/light.svg      <- built for light bg

The website automatically shows the right variant based on your theme. In code, just pick the variant you need.

Search got smarter#

The search bar (Cmd+K) now returns grouped results:

  • Icons - with variant badges showing what's available (mono, dark, wordmark...)
  • Categories - type "design" and the Design category appears with its icon count
  • Pages - Extensions, API Docs, Submit are all searchable
  • Extensions - find the React package, Figma plugin, CLI, or MCP server
  • Recent searches - your last 5 searches persist across sessions

MCP server for AI coding#

This is the one people didn't expect to care about, then couldn't stop using.

json
{
  "mcpServers": {
    "thesvg": {
      "command": "npx",
      "args": ["@thesvg/mcp-server"]
    }
  }
}

Tell Claude "add the GitHub logo to my navbar" and it pulls the actual SVG from theSVG. No copy-pasting URLs. No leaving your editor.

Works with Claude Code, Cursor, Windsurf, and any MCP-compatible tool.


The developer toolkit (quick refresher)#

If you missed the first post, here's the full stack:

npm packages#

bash
# Core library - all 4,007 icons, tree-shakeable
npm install thesvg

# React components with forwardRef + TypeScript
npm install @thesvg/react

# CLI - shadcn-style icon installer
npx @thesvg/cli add github stripe figma

React usage#

tsx
import { Github, Figma, Stripe } from "@thesvg/react";

function Footer() {
  return (
    <div className="flex gap-4">
      <Github className="h-5 w-5" />
      <Figma className="h-5 w-5" />
      <Stripe className="h-5 w-5" />
    </div>
  );
}

Every component is individually importable. Your bundler only ships what you use. One icon is ~3KB, not 12MB.

CDN - zero install#

html
<img src="https://thesvg.org/icons/github/default.svg" width="32" />
<img src="https://thesvg.org/icons/github/dark.svg" width="32" />

Use these in READMEs, docs, emails, dashboards, Notion pages. No API key, no account.

REST API#

bash
# Search
curl https://thesvg.org/api/icons?q=stripe&category=Finance

# Get one icon with all metadata
curl https://thesvg.org/api/icons/stripe

# List categories
curl https://thesvg.org/api/categories

Open, free, no auth required. Build custom icon pickers, internal tools, or CI pipelines that validate brand assets.


What we learned#

1. Variants matter more than quantity#

We could have shipped 10,000 monochrome icons. Instead we focused on quality variants. A single icon with default, dark, mono, and wordmark covers 95% of real use cases. Developers don't need 10 versions of a logo. They need the right 4.

2. Dark mode needs dedicated variants, not hacks#

CSS filter: invert() seems like a quick fix for dark backgrounds, but it breaks brand colors. A blue logo becomes orange. A red badge turns cyan. The only reliable solution is shipping actual dark-optimized SVGs. We now have dedicated dark and light variants for the most popular brands, and we're growing that coverage with every release.

3. AI integration drives adoption#

The MCP server was an experiment. It turned out to be one of the most-used features. Developers who use AI coding tools want their tools to have access to real assets, not hallucinated URLs. If you maintain an open-source library, consider building an MCP server. It's a distribution channel most people haven't discovered yet.

The npm packages get the attention, but the CDN links drive the most traffic. People drop thesvg.org/icons/react/default.svg into GitHub READMEs, Notion docs, and Slack messages. Every usage is a backlink. Build your assets to be directly linkable.


The full package list#


Try it#

Browse: thesvg.org Install: npm install @thesvg/react Star: github.com/GLINCKER/thesvg

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

Missing a brand? Submit it or open a PR.

If theSVG saved you time, a star on GitHub helps more than you'd think.


This is a follow-up to our launch post. theSVG is maintained by GLINCKER.

This article is published here first and cross-posted to Dev.to. This page is the canonical version.
Contact