Acerca de
Lo que dice el catálogo, y cómo lo sabe.
2754 herramientas de desarrollo, cada una con lo que sustituye. El resto de lo que ves en una herramienta viene de GitHub, no de quien la añadió.
Qué declara una entrada
Cada herramienta es un pequeño archivo YAML en data/tools/. Indica el nombre de la herramienta, su repositorio de GitHub, su categoría, las herramientas a las que sustituye con un nivel de sustitución para cada una, y una afiliación cuando la hay. Eso es todo lo que puede escribir quien contribuye.
Una entrada nunca declara estrellas, licencia, versión ni descripción. El esquema las rechaza, así que un pull request no puede inflar un recuento de estrellas ni afirmar una versión que no existe.
La actualización nocturna
Cada noche, y cada vez que los datos del catálogo cambian en la rama principal, la actualización lee cada repositorio listado desde la API de GitHub:
- descripción, página principal, lenguaje, licencia, estrellas, forks y temas
- si el repositorio está archivado, y la fecha de su último push
- la última versión, o el último tag cuando no hay versión, y si está firmada
- las cinco últimas versiones publicadas, que se muestran en la página de la herramienta
- los autores de los commits en la rama por defecto en los últimos 90 días, de los que solo se guarda el número
- los nombres de los archivos adjuntos a la última versión, leídos para los sistemas operativos y arquitecturas que nombran
- el archivo de mantenedores descrito en verificada
La página de la herramienta convierte esto en lo vivo que está un proyecto, nunca en una puntuación. Su edad se cuenta desde la creación del repositorio. El ritmo de versiones es la separación mediana entre sus últimas versiones estables, y aparece a partir de tres. Los colaboradores activos son los autores de commits distintos en la rama por defecto en los últimos 90 días: las cuentas cuyo nombre termina en [bot] quedan fuera, y un commit sin cuenta de GitHub vinculada cuenta por su email, que nunca se publica. Solo se leen los 500 últimos commits, así que un proyecto más activo muestra un mínimo como 40+. Un flujo con squash merge atribuye cada pull request a un solo autor, aunque la escribieran varios, y para una herramienta que vive en un monorepo el número cubre todo el repositorio, y la página lo indica. Las plataformas solo aparecen cuando los nombres de archivo de la última versión las nombran, y no se adivina nada cuando no lo hacen, ni para una herramienta en un monorepo, cuya última versión puede ser la de otro paquete.
Cuando algo ha cambiado, la actualización confirma el nuevo catálogo y sale una nueva compilación de este sitio. Si GitHub deja de devolver el repositorio de una herramienta listada, porque se ha borrado o se ha hecho privado, la herramienta conserva sus últimos datos publicados y se abre un pull request que retira su entrada, para que una persona decida: una herramienta solo sale del catálogo mediante un pull request así.
Cada refresh compara además el nuevo catálogo con el anterior y anota lo que cambió: una licencia, el nombre de un repositorio, un archivado, una nueva release, una herramienta que entra o sale. La página qué ha cambiado lo muestra por día, con un feed RSS para todo el catálogo, uno por herramienta y uno por categoría. Un cambio de estrellas nunca cuenta.
Entre dos pasadas nocturnas, una release publicada actualiza su herramienta en pocos minutos si el repositorio tiene instalada la app de GitHub awesome-alternatives o ejecuta refresh-action en su workflow de release.
Marcas
- ✓ firmada
- Junto a la última versión. El tag lleva una firma que GitHub ha verificado o, en el caso de un tag ligero, la lleva el commit al que apunta. Solo se comprueba la última versión.
- Verificada por sus mantenedores
- El propio repositorio de la herramienta tiene un archivo
.awesome-alternativesen la raíz de su rama por defecto, conslug:apuntando a esta entrada. Solo alguien con acceso de escritura al repositorio puede añadirlo, así que la marca indica que sus mantenedores respaldan la entrada. La actualización lee el archivo cada noche.La marca también se pone cuando la app de GitHub awesome-alternatives está instalada en el repositorio, porque instalarla exige ser administrador del mismo.El archivo fecha la verificación con su último commit, y una ficha editada después de esa fecha muestra «editada desde la verificación» hasta que los mantenedores hagan un nuevo commit en el archivo, para lo que basta un comentario # con fecha.En cada lista, una herramienta verificada va antes que las no verificadas con el mismo grado de sustitución, y las estrellas ordenan el resto. Nunca pasa por delante de una sustitución mejor. - archivado
- El repositorio está archivado y ya no recibe cambios. Una herramienta archivada es justo aquello de lo que la gente busca salir, así que solo se acepta como algo que otras entradas sustituyen, nunca como alternativa, y la advertencia sin push no se le aplica.
- Other
- Se muestra como licencia cuando GitHub detecta una pero no puede asociarla a un identificador SPDX. Cuando GitHub no detecta ninguna, la herramienta muestra Ninguna detectada y la advertencia sin licencia se le aplica.
Niveles de sustitución
Cada sustitución lleva uno, fijado por quien añade la entrada.
- Sustitución directa
- Acepta sin cambios la configuración o la interfaz del original: lo cambias sin tocar tu instalación. Pedir una sustitución directa en la búsqueda deja solo estas.
- Sustitución completa
- Cubre el mismo trabajo, a su manera. Cuenta con migrar tu configuración.
- Parcial
- Cubre parte del trabajo. La nota bajo la herramienta indica qué parte.
Advertencias
Una advertencia nunca elimina una herramienta. Es algo que un mantenedor mira antes de fusionar un pull request, y algo que quizá quieras saber antes de depender de la herramienta.
- Repositorio movido
- El repositorio está ahora bajo otro nombre u otro propietario. GitHub redirige la dirección antigua, pero la entrada debería actualizarse.
- Sin licencia detectada
- GitHub no detecta ninguna licencia, así que no están claras las condiciones bajo las que puedes usar el código.
- Sin versión ni tag
- El repositorio no tiene ni versión ni tag, así que no hay ninguna versión que fijar.
- Sin push en un año
- No se ha hecho ningún push durante más de 365 días. Los repositorios archivados quedan fuera de esta advertencia.
- Ráfaga de estrellas inusual
- Un día que sumó 50 estrellas o más, y al menos 5 veces el ritmo diario habitual de la herramienta en el último mes, y al menos el 3 % de las estrellas que tenía el día anterior, para que un buen día normal de un proyecto grande no cuente. Las estrellas compradas llegan en ráfagas, y un lanzamiento en Hacker News también, y por eso decide una persona. GitHub ya no muestra quién marcó un repositorio con una estrella, así que la actualización nocturna guarda el número de estrellas de cada día y compara los días. Necesita una semana de ese historial para juzgar, de modo que una herramienta solo se comprueba una vez listada.
- Repositorio reciente
- El repositorio tiene menos de 30 días; la marca indica el día en que se creó. Con tan poco historial, sus estrellas, releases y actividad dicen todavía poco. La marca desaparece sola cuando el repositorio es lo bastante antiguo.
Otros problemas bloquean directamente un pull request: un repositorio privado, un fork, archivado pero ofrecido como alternativa, o ya listado bajo otro slug. La guía de contribución enumera todas las comprobaciones.
Afiliación
El campo de afiliación sirve para declarar un vínculo entre una herramienta y este directorio o las personas que lo llevan, por ejemplo una herramienta creada por quienes mantienen awesome-alternatives. Cuando una entrada tiene una, la página de la herramienta la muestra tal como está escrita. Mantener una herramienta que se lista no es una afiliación: basta con verificar la entrada, y su página indica que sus mantenedores la avalan.
Cómo funciona la búsqueda
Tu consulta se lee primero como palabras clave: los nombres de las herramientas que otras sustituyen, los lenguajes y las licencias del catálogo, y «drop in». Cuando no se nombra ninguna herramienta a la que sustituir, un pequeño modelo de embeddings multilingüe que se ejecuta en el servidor de búsqueda compara la consulta con la descripción de cada herramienta, de modo que una consulta escrita en cualquier idioma del sitio encuentra las mismas herramientas que su versión en inglés, aunque las descripciones sigan en inglés, tal como las devuelve GitHub. Si destaca claramente una herramienta a la que sustituir, se elige; si no, los resultados se ordenan por su cercanía a la consulta. Solo cuando ninguno de los dos pasos encuentra una herramienta a la que sustituir, y el servidor tiene una clave para ello, se envía el texto de la consulta a Jev, un servicio externo, para que lo lea. Su lectura se guarda en caché en el servidor durante un día. La página de privacidad detalla qué se envía y qué se conserva.
Algunas palabras se convierten en filtros, en cada idioma del sitio. «Código abierto» deja las herramientas cuya licencia es abierta. «Mantenido» descarta las archivadas y las que no reciben un push desde hace 365 días. «Autoalojado» deja las herramientas de categorías de servicios que ejecutas tú. Una forma de desplegar, como Docker, Docker Compose, Kubernetes, Helm o un binario único, deja las herramientas que la declaran. Una plataforma, como Linux o ARM, se reconoce pero aún no se comprueba, y los resultados lo dicen en lugar de fingir.
Desde un agente de IA
El catálogo también es un servidor Model Context Protocol (MCP) en https://awesome-alternatives.com/api/mcp, sobre Streamable HTTP, sin clave ni cuenta. Un agente puede buscar alternativas a una herramienta o a un producto, listar herramientas por categoría, lenguaje o licencia y leer los datos de una herramienta. Su herramienta de búsqueda lee las consultas solo con palabras clave y el modelo de este servidor, nunca con Jev, y tiene un límite por dirección; las demás herramientas no lo tienen.
Para añadirlo a Claude Code: claude mcp add --transport http awesome-alternatives https://awesome-alternatives.com/api/mcp
Licencias
Los datos del catálogo están bajo CC BY-SA 4.0: puede reutilizarlos libremente, con un enlace a awesome-alternatives.com y bajo la misma licencia. El código del sitio, de la API y de los scripts está bajo la licencia GNU AGPL v3.