Skip to main content
Glama

Logoforge

Brand logos for developers, as shadcn components.

909 clean SVG logos of the tools developers use — as files, as typed React components, through a shadcn registry, a JSON API and an MCP server for AI editors.

Website · Logo cloud builder · Docs · Request a logo

License: MIT Logos: 909 Sources: CC0


Why Logoforge

  • One component per logo, typed. <StripeLogo />, <GithubLogo variant="mono" />, <VercelLogo type="wordmark" /> — TypeScript only offers the variants a logo really has.

  • Dark mode that works. Near-black marks (GitHub, Vercel, Notion…) ship a dark file; the component switches with your .dark class, no JavaScript.

  • Mono that keeps its detail. Badge-style marks (Adobe apps, AWS services) get a knockout one-color version — the symbol cut out of its shape — not a solid blob.

  • Logo clouds in one command. Pick 3–12 logos on /cloud; one shadcn add installs the section and every logo it imports.

  • African brands. MTN, Orange Money, M-Pesa, Flutterwave, Paystack, Moniepoint, OPay, Kuda, Chipper Cash, Yoco, Interswitch, Airtel, Orange, Andela — and more coming.

  • Every file is traceable. Each variant records its source, its exact upstream file and its licence.

Related MCP server: Svg/icons MCP

Use it

shadcn CLI

Add the registry to your components.json once:

{
  "registries": {
    "@logoforge": "https://logoforge.terravidhal.me/r/{name}.json"
  }
}

Then install any logo (slug = the logo page URL):

npx shadcn@latest add @logoforge/stripe @logoforge/supabase
import { StripeLogo } from "@/components/logos/stripe";

<StripeLogo className="size-8" />                 // brand colors, auto dark mode
<StripeLogo variant="mono" className="size-6" />  // currentColor
<StripeLogo type="wordmark" className="h-6 w-auto" />
<StripeLogo mode="dark" />                        // force a theme (no Tailwind needed)
<StripeLogo title="" />                           // decorative: aria-hidden

SVG files

Every variant is a plain file: https://logoforge.terravidhal.me/logos/<slug>/<variant>.svg

Variant

What it is

When

icon

The mark, brand colors

always

icon-mono

One color, currentColor

most logos

icon-dark

For dark backgrounds

when the mark would vanish on dark

wordmark / wordmark-dark

The full lockup

when the brand has one

Or grab them straight from this repository: logos/.

MCP server (Claude, Cursor, Windsurf, VS Code)

claude mcp add --transport http logoforge https://logoforge.terravidhal.me/mcp

Tools: search_logos, list_categories, get_logo, get_logo_svg, get_logo_component, build_logo_cloud. Setup for every editor: docs/mcp.

JSON API

curl https://logoforge.terravidhal.me/api/logos.json          # every logo
curl https://logoforge.terravidhal.me/api/logos/stripe.json   # one logo, with sources

Static, no key, CORS open. Or read data/logos.json directly.

What's in this repository

logos/<slug>/*.svg         optimized SVG files, one folder per logo
components/<slug>.tsx      the generated React component (what the registry installs)
data/logos.json            GENERATED manifest: names, aliases, categories, colors, variants, sources
data/curation.json         which logos ship and where each comes from   ← edit this
data/overrides.json        reviewed fixes, each with its reason          ← and this
data/additions/<slug>/     hand-sourced artwork + source.json (official or public domain)
data/backgrounds.json      GENERATED badge detection for knockout monos
scripts/                   the pipeline: import · analyze · check
reports/                   import report + contact sheets for visual review

How the set is built

  1. Sources, pinned — sources.lock.json fixes the Simple Icons version and the gilbarbara/logos commit.

  2. Licence filter — CC0 only from the sets: Simple Icons icons published under another licence (CC BY, GPL, MIT…) are dropped. Brands no free set covers are added by hand in data/additions/, public-domain files first, the brand's own artwork otherwise — each with its source.json.

  3. Optimize & vet — SVGO (viewBox kept, no fixed size, ids prefixed by slug); any script, event handler, embedded image or external reference is rejected.

  4. Variants — dark files are derived automatically (black ↔ white swap for knockout marks, near-black text to white, dark brand colors lightened to a 3:1 contrast, masks left untouched); monos come from Simple Icons, or are derived — as knockouts for badge marks detected in headless Chrome.

  5. Components — SVGR turns each variant into JSX; ids are suffixed per variant so several can share a page.

  6. Human review — every run writes contact sheets (reports/review-NN.html); anything flagged must be looked at before it ships, and the decision is recorded in data/overrides.json.

npm install
npm run import     # build logos/, components/, data/logos.json, reports/
npm run analyze    # detect badge icons (needs Chrome; CHROME_PATH to override), then import again
npm run check      # validate everything — runs in CI on every pull request

Contributing

Request a logo — open an issue with the brand name and a link to its official brand assets.

Add a logo from a free set:

  1. Add an entry to data/curation.json: { "slug": "acme", "si": "<simple-icons slug>", "gb": "<gilbarbara shortname>", "categories": ["devtools"] }.

  2. npm run import && npm run analyze && npm run import, then open the contact sheet in reports/ and look at your logo on light and dark, in color and mono.

  3. Fix anything off in data/overrides.json with a reason, run npm run check, open a pull request.

Add a logo no free set has: create data/additions/<slug>/icon.svg from a public-domain file or the brand's own website, plus a source.json (origin, page, file, license: public-domain or trademark, retrieved), and add "addition": true to its curation entry. Never trace a PNG: if no vector exists, the logo waits.

Categories are listed in data/categories.json.

Everyone taking part follows the Code of Conduct.

Licences and trademarks

  • Tooling and data (scripts, components template, manifest): MIT.

  • Artwork: from Simple Icons (CC0 1.0), gilbarbara/logos (CC0 1.0), Wikimedia Commons public-domain files, and — for a few brands no free set covers — the brands' own artwork. See CREDITS.md; every file's source is in data/logos.json.

  • Trademarks: all product names, logos and brands are property of their respective owners. They are provided for identification only and their presence does not imply endorsement. A free licence on a file grants nothing on the brand: use a logo to refer to its product, and follow the brand's guidelines.

Brand owners: to remove or correct a logo, write from your company's domain to the address on logoforge.terravidhal.me/legal — handled within 72 hours.


Built by Vidhal Elame · sibling of Blockforge

Related MCP Connectors

Related MCP Servers