Sobre

O que o catálogo diz, e como ele sabe.

2600 ferramentas de desenvolvimento, cada uma listada com o que substitui. O resto do que você vê em uma ferramenta vem do GitHub, não de quem a adicionou.

O que uma entrada afirma

Cada ferramenta é um pequeno arquivo YAML em data/tools/. Ele indica a ferramenta, seu repositório no GitHub, sua categoria, as ferramentas que ela substitui com um tipo de substituição para cada uma, e uma afiliação, quando houver. É tudo o que um contribuidor pode escrever.

Uma entrada nunca informa estrelas, licença, versão ou descrição. O schema rejeita esses campos, então um pull request não consegue inflar uma contagem de estrelas nem alegar uma release que não existe.

A atualização noturna

Toda noite, e sempre que os dados do catálogo mudam na branch main, o refresh lê cada repositório listado pela API do GitHub:

A página da ferramenta transforma esses dados em quão vivo um projeto está, nunca em uma nota. A idade é contada a partir do dia em que o repositório foi criado. O ritmo de releases é o intervalo mediano entre as últimas releases estáveis, exibido a partir de três. Contribuidores ativos são os autores de commits distintos na branch padrão nos últimos 90 dias: contas cujo nome termina em [bot] ficam de fora, e um commit não vinculado a nenhuma conta do GitHub conta pelo email, que nunca é publicado. Só os 500 commits mais recentes são lidos, então um projeto mais movimentado mostra um limite inferior como 40+. Um fluxo com squash merge credita um autor por pull request, independentemente de quem mais tenha escrito junto, e para uma ferramenta que vive em um monorepo a contagem cobre o repositório inteiro, o que a página informa. As plataformas só aparecem quando os nomes dos arquivos da última release as citam, e nada é deduzido quando não citam, nem para uma ferramenta em um monorepo, cuja última release pode ser de outro pacote.

Quando algo muda, o refresh faz commit do novo catálogo e um novo build deste site é publicado. Se o GitHub deixa de retornar o repositório de uma ferramenta listada, porque ele foi excluído ou tornado privado, o refresh não publica nada e falha, para que uma pessoa verifique: uma ferramenta só sai do catálogo por um pull request que remove a entrada dela.

Cada refresh também compara o novo catálogo com o anterior e registra o que mudou: uma licença, o nome de um repositório, um arquivamento, uma nova release, uma ferramenta que entra ou sai. A página o que mudou lista essas mudanças por dia, com um feed RSS para o catálogo inteiro, um para cada ferramenta e um para cada categoria. Uma mudança nas estrelas nunca conta.

Entre duas execuções noturnas, uma release publicada atualiza sua ferramenta em poucos minutos quando o repositório tem o GitHub App do awesome-alternatives instalado, ou executa refresh-action no seu workflow de release.

Selos

✓ assinada
Ao lado da última versão. A tag tem uma assinatura que o GitHub verificou ou, no caso de uma tag leve, o commit para o qual ela aponta tem. Só a última release é verificada.
Verificado pelos mantenedores
O próprio repositório da ferramenta tem um arquivo .awesome-alternatives na raiz da branch padrão, comslug: definido para esta entrada. Só alguém com acesso de escrita ao repositório pode adicioná-lo, então o selo indica que os mantenedores respaldam a entrada. O refresh lê o arquivo toda noite.O selo também é aplicado quando o GitHub App do awesome-alternatives está instalado no repositório, já que instalar um app nele exige permissão de administrador.O arquivo data a verificação pelo seu último commit, e uma entrada editada depois dessa data mostra “editada desde a verificação” até que os mantenedores façam um novo commit no arquivo, para o que basta um comentário # com data.Em cada lista, uma ferramenta verificada vem antes das não verificadas com o mesmo grau de substituição, e as estrelas ordenam o resto. Ela nunca passa à frente de uma substituição melhor.
arquivado
O repositório está arquivado e não recebe mais alterações. Uma ferramenta arquivada é justamente o que as pessoas querem abandonar, então ela só é aceita como algo que outras entradas substituem, nunca como alternativa, e o aviso sem push não se aplica a ela.
Other
Exibido como licença quando o GitHub detecta uma, mas não consegue associá-la a um identificador SPDX. Quando o GitHub não detecta nenhuma, a ferramenta mostra Nenhuma detectada e o aviso sem licença se aplica a ela.

Tipos de substituição

Cada substituição tem um, definido por quem adiciona a entrada.

Drop-in
Aceita a configuração ou a interface do original sem mudanças: você troca uma pela outra sem mexer no seu setup. Pedir um drop-in na pesquisa mantém só estas.
Substituição completa
Faz o mesmo trabalho, do seu próprio jeito. Conte com migrar a sua configuração.
Parcial
Faz parte do trabalho. A nota abaixo da ferramenta diz qual parte.

Avisos

Um aviso nunca remove uma ferramenta. É algo que um mantenedor olha antes de fazer merge de um pull request, e algo que talvez você queira saber antes de depender da ferramenta.

Repositório movido
O repositório agora está sob outro nome ou outro dono. O GitHub redireciona o endereço antigo, mas a entrada deveria ser atualizada.
Nenhuma licença detectada
O GitHub não detecta nenhuma licença, então os termos sob os quais você pode usar o código não estão claros.
Sem release nem tag
O repositório não tem release nem tag, então não há versão para fixar.
Sem push há um ano
Nada foi enviado por push há mais de 365 dias. Repositórios arquivados ficam de fora deste aviso.
Pico incomum de estrelas
Um dia que ganhou 50 estrelas ou mais, e pelo menos 5 vezes o ritmo diário habitual da ferramenta no último mês, e pelo menos 3% das estrelas que ela tinha no dia anterior, para que um bom dia comum de um projeto grande não conte. Estrelas compradas chegam em rajadas, e um lançamento no Hacker News também, por isso quem decide é uma pessoa. O GitHub não lista mais quem deu estrela em um repositório, então a atualização noturna guarda a contagem de estrelas de cada dia e compara os dias. Ela precisa de uma semana desse histórico antes de julgar, ou seja, uma ferramenta só é verificada depois de listada.

Alguns problemas bloqueiam o pull request: um repositório privado, um fork, arquivado mas oferecido como alternativa, com menos de 30 dias, ou já listado sob outro slug. O guia de contribuição lista todas as verificações.

Afiliação

Quem mantém uma ferramenta, trabalha nela ou é pago por ela precisa declarar isso na entrada. Listar o seu próprio projeto é bem-vindo, não declarar é motivo para remoção. Quando uma entrada tem uma afiliação, a página da ferramenta a mostra como foi escrita.

A partir de um agente de IA

O catálogo também é um servidor Model Context Protocol (MCP) em https://awesome-alternatives.com/api/mcp, via Streamable HTTP, sem chave e sem conta. Um agente pode encontrar alternativas a uma ferramenta ou a um produto, listar ferramentas por categoria, linguagem ou licença, e ler os dados de uma ferramenta. A ferramenta de pesquisa dele lê as pesquisas só com palavras-chave e o modelo deste servidor, nunca com o Jev, e tem um limite por endereço; as outras ferramentas não têm.

Para adicioná-lo ao Claude Code: claude mcp add --transport http awesome-alternatives https://awesome-alternatives.com/api/mcp

Licenças

Os dados do catálogo estão sob CC BY-SA 4.0: pode reutilizá-los livremente, com um link para awesome-alternatives.com e sob a mesma licença. O código do site, da API e dos scripts está sob a licença GNU AGPL v3.