Galería pública y CLI para explorar, instalar y enviar mascotas animadas de pixel art que flotan en la pantalla y reaccionan a Codex y otros agentes de programación.
dif-sh/dif
Flags de funcionalidad y pruebas A/B guardadas como archivos Markdown en tu repo y compiladas por una CLI en un cliente tipado de TypeScript.
Alternativa open source a:LaunchDarkly
Optimizely
- Estrellas
- 129
- Forks
- 0
- Issues abiertos
- 1
- Último commit
- hace 5 días
¿Qué es?
dif guarda cada flag de funcionalidad y experimento en un único archivo Markdown con YAML frontmatter, versionado en git junto al código al que afecta. La CLI `dif` valida estos archivos (pesos, referencias a superficies, atributos de audiencia y conflictos entre experimentos) y compila los activos en un cliente tipado de TypeScript y un archivo context.json. El SDK de runtime no tiene dependencias y usa asignación determinista, de modo que cada usuario recibe la misma variante en distintas cargas de página y dispositivos, sin una base de datos de asignaciones ni llamadas de red.
El proyecto está dirigido a Next.js, React y SvelteKit, con paquetes npm separados para cada uno. Los flags y los experimentos comparten un formato de archivo: un flag es un experimento cuyo porcentaje de exposición se aumenta hasta el 100 %. La CLI incluye comandos para crear la estructura inicial de un proyecto, preparar experimentos, rastrear la asignación de un usuario con `dif qa` y registrar conclusiones que alimentan experimentos posteriores en la misma superficie.
La analítica es opcional. Sin una clave publicable, los flags se evalúan localmente y no se envía nada a ningún sitio. Al conectarse a dif.sh Cloud, se habilitan la recepción de eventos y el análisis estadístico; los controladores de eventos personalizados pueden enviar datos a cualquier pipeline. El repo también incluye skills de Claude Code y archivos de instrucciones para agentes, para crear y cerrar experimentos.
Funciones clave
- 01Los flags y los experimentos son archivos Markdown con frontmatter, que se revisan en pull requests.
- 02`dif validate` comprueba los pesos, las referencias a superficies, las audiencias y los conflictos entre experimentos.
- 03`dif build` genera un cliente tipado de TypeScript y context.json.
- 04La asignación determinista ejecuta la misma lógica en la CLI de Rust y en el SDK de TypeScript.
- 05`dif qa` muestra qué variante recibe un usuario determinado y por qué.
- 06Conexión opcional a dif.sh Cloud para la recepción y el análisis de eventos.
Casos de uso
- Ejecutar pruebas A/B en un sitio de Next.js o SvelteKit sin un panel alojado para gestionar flags.
- Mantener el historial de flags y las conclusiones de los experimentos en git, junto al código.
- Permitir que agentes de programación con IA creen y retiren flags editando archivos en el repo.
Inicio rápido
- 1
Instala la CLI de dif con npm (requiere Node 20 o posterior).
npm install -g @dif.sh/cli - 2
Genera el directorio dif/, la configuración y los archivos de agente en tu repositorio.
dif init - 3
Crea un nuevo archivo de experiment, ábrelo, establece status: active y ejecuta dif build.
dif new home-hero-cta --surface home - 4
Compila los experiment activos en el cliente de TypeScript tipado.
dif build
Antes de usarlo
- La instalación con npm requiere Node 20 o posterior; también se ofrece un binario independiente.
- El cliente generado está excluido por gitignore, así que CI y el despliegue deben ejecutar dif build antes de compilar la app.
- Los paquetes npm SDK son solo ESM y no tienen un punto de entrada require().
- Cloud analytics es opcional y requiere una publishable key de dif.sh Cloud.
Temas
Preguntas frecuentes
- ¿Qué es dif?
- Flags de funcionalidad y pruebas A/B guardadas como archivos Markdown en tu repo y compiladas por una CLI en un cliente tipado de TypeScript. dif guarda cada flag de funcionalidad y experimento en un único archivo Markdown con YAML frontmatter, versionado en git junto al código al que afecta. La CLI `dif` valida estos archivos (pesos, referencias a superficies, atributos de audiencia y conflictos entre experimentos) y compila los activos en un cliente tipado de TypeScript y un archivo context.json. El SDK de runtime no tiene dependencias y usa asignación determinista, de modo que cada usuario recibe la misma variante en distintas cargas de página y dispositivos, sin una base de datos de asignaciones ni llamadas de red.
- ¿dif es gratuito? ¿Qué licencia tiene?
- dif es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿dif sigue mantenido?
- Mantenimiento activo. El último commit de dif fue el 16 oct 2026.
- ¿Para qué puedo usar dif?
- Ejecutar pruebas A/B en un sitio de Next.js o SvelteKit sin un panel alojado para gestionar flags. Mantener el historial de flags y las conclusiones de los experimentos en git, junto al código. Permitir que agentes de programación con IA creen y retiren flags editando archivos en el repo.
- ¿Cómo se instala dif?
- Instala la CLI de dif con npm (requiere Node 20 o posterior).: npm install -g @dif.sh/cli Genera el directorio dif/, la configuración y los archivos de agente en tu repositorio.: dif init Crea un nuevo archivo de experiment, ábrelo, establece status: active y ejecuta dif build.: dif new home-hero-cta --surface home Compila los experiment activos en el cliente de TypeScript tipado.: dif build
- ¿Dónde consigo dif?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/dif-sh/dif
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una skill de agente para Claude con licencia MIT que le enseña a crear y editar videos de motion graphics con código y Remotion.
CMS headless nativo de Next.js y framework de aplicaciones de código abierto, con backend en TypeScript y panel de administración React personalizable.
Colección de paquetes de instrucciones instalables que aportan a los agentes de programación con IA conocimientos sobre Vercel y buenas prácticas de React/Next.js.
Dashboard de bolsa de código abierto y autoalojable, con gráficos en tiempo real, alertas de precios, listas de seguimiento e información de empresas, creado con Next.js y TradingView.
Un framework para crear sitios de documentación con React.js, compatible con Next.js, Astro y frameworks de React basados en Vite.