Skip to content

feat(docs): badge "Built with NaN" para los READMEs de la comunidad - #188

Merged
borjaperfra merged 1 commit into
mainfrom
feat/built-with-nan-badge
Oct 15, 2026
Merged

borjaperfra merged 1 commit into
mainfrom
feat/built-with-nan-badge

Conversation

@borjaperfra

Copy link
Copy Markdown
Contributor

Lo pidió la comunidad en Discord: algo como el "Built with Gentle-AI" para que los proyectos hechos con NaN lo digan en su README y podamos encontrarlos. De las propuestas se eligieron la B (tarjeta oscura y clara) y la C (compacta), con NaN más grande.

Qué entra

  • public/badge/: built-with-nan-dark.svg, -light.svg y -compact.svg, unos 5 KB cada uno, servidos en https://nan.builders/badge/….
  • scripts/gen-badges.mjs: los genera. El texto va en trazos (fontkitten con JetBrains Mono) y "NaN" es el primer trazo del wordmark de public/brand, porque GitHub muestra los SVG dentro de un <img>, donde no cargan fuentes. fontkitten pasa a ser devDependency; ya estaba instalado a través de Astro.
  • /docs/built-with-nan (EN y ES), en Guides, después de Apps:
    • Snippet HTML con <picture>, para que cada README muestre la tarjeta de su tema.
    • Snippet Markdown para el compacto.
    • Por qué no hay que copiar la imagen a otro sitio y cómo se puede usar el badge.
  • Cómo se rastrea: buscando nan.builders/badge/ en el código de GitHub. Los clics llegan con ?ref=built-with-nan.

Ojo

  • Las URLs de /badge/ son contrato: habrá READMEs ajenos apuntando a ellas. Se puede cambiar el diseño, no el nombre de los ficheros.
  • Las vistas previas de la página van como imágenes markdown y no como HTML, porque mdxToText rechaza los bloques HTML crudos y /api/docs/manifest.json respondería 500 (lo pillaron los tests). Una regla CSS img[src^="/badge/"] evita que salgan estiradas como capturas.

Verificación

  • src/tests/layouts/builtWithNanDocs.test.ts comprueba:
    • Que los SVG commiteados coinciden con lo que genera el script.
    • Que son autocontenidos: sin <text>, sin fuentes y sin recursos externos.
    • Que cada URL de los snippets existe.
    • Que EN y ES tienen los mismos snippets.
    • Que los enlaces llevan el ref.
  • vitest run: 2559 pasan y fallan 2. Son los ejemplos de Python de notificationsDocs, que también fallan en main en Windows porque python3 es el atajo de la Microsoft Store.
  • astro dev:
    • /docs/built-with-nan y /es/docs/built-with-nan responden 200, sin scroll horizontal a 390 px.
    • Los tres SVG se sirven como image/svg+xml.
    • La página aparece en el manifest y /api/docs/built-with-nan.md sale limpio para el bot.

Siguiente PR (aparte, toca cloud-api): marcar en /projects los repos que lleven el badge.

🤖 Generated with Claude Code

Tres SVG en public/badge (tarjeta oscura, clara y compacta) servidos desde
nan.builders/badge/, y la guía /docs/built-with-nan (EN y ES) con los
snippets: HTML con <picture> para que cada README muestre la tarjeta de su
tema, y Markdown para el compacto. Los enlaces llevan ?ref=built-with-nan.

Los SVG salen de scripts/gen-badges.mjs: texto a trazos con fontkitten
(declarado como devDependency) y el trazo "NaN" del wordmark, para que se
vean igual dentro de un <img> de GitHub, donde no cargan fuentes.

Las vistas previas van como imágenes markdown y no como HTML, porque
mdxToText rechaza bloques HTML crudos y tumbaría /api/docs/manifest.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@borjaperfra
borjaperfra merged commit db4c7a6 into main Oct 15, 2026
2 checks passed
@borjaperfra
borjaperfra deleted the feat/built-with-nan-badge branch October 15, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants