Sobre

Um fork com instância própria

Este é um fork do skillicons.dev, o serviço que devolve vários ícones de tecnologia como um único SVG. O código de composição é o mesmo; o que muda é o conjunto de ícones, a hospedagem e o site em volta.

Por que um fork, e não o original

O domínio skillicons.dev serve apenas o repositório oficial. Os 270 IDs daqui incluem 16 que não existem lá — entre eles oracle refeito, sql, jwt, render e os três da marca. Pedir um deles ao domínio oficial devolve 400.

Manter um fork publicado é o que torna esses ícones utilizáveis. A API é idêntica à do original, então qualquer snippet existente continua funcionando trocando só o domínio.

O que mudou em relação ao original

O histórico completo, com data e tipo, está no changelog.

ÁreaO que mudou
Ícones 16 novos, o oracle redesenhado, e os fundos e o arredondamento normalizados em 76 arquivos
API perline passou a rejeitar 0 e negativos, que geravam um SVG de altura infinita; ID desconhecido devolve 400 nomeando quais, em vez de renderizar a string undefined
Hospedagem Vercel ao lado do Cloudflare Workers, com a lógica compartilhada em lib/icons.mjs para as duas não divergirem
Site Montador com busca e download, catálogo por categoria, design system, identidade de marca e changelog
Marca Os logotipos <gcruz.dev/> como SVG, e três deles disponíveis como ícone da API

Como a composição funciona

Cada ícone é um SVG de 256×256 guardado em icons/. O endpoint não devolve os arquivos: ele os concatena num único documento, cada um dentro de um <g transform="translate(…)"> numa grade de células de 300×300. É por isso que um badge com dez tecnologias custa uma requisição, e não dez.

Essa escolha tem uma consequência que vale saber: como tudo vira um documento só, id repetido entre dois ícones colidiria. Por isso as convenções de icons/ pedem que se evite id e <defs>, e que texto seja desenhado como <path> em vez de <text>.

Publicar a sua própria instância

Todo o passo a passo está em DEPLOY.md. O resumo:

Vercel

Importe o repositório, deixe o framework como Other e publique. O vercel.json já define build e output; não há variável de ambiente nem secret a configurar. Serve a API e o site.

Cloudflare Workers

npx wrangler login e yarn deploy. Serve só a API. O bundle precisa caber no limite de 1 MiB comprimido do plano gratuito — hoje está em cerca de 805 KiB.

Rodar localmente: npm run dev:web sobe o site e a API em localhost:4173, com a mesma ordem de roteamento da Vercel.

Créditos e licenças

O quêDe quemLicença
Projeto original tandpfun MIT
Logotipos de tecnologias Cada empresa ou projeto Marcas dos respectivos donos, aqui apenas para identificação
JetBrains Mono JetBrains OFL-1.1
IBM Plex Sans IBM OFL-1.1
Marca <gcruz.dev/> Guilherme Cruz Uso restrito ao titular

Se o projeto original foi útil para você, considere apoiar quem o criou: ko-fi.com/thijsdev.