CLI de integraciones listas para produccion en un comando.
El problema
Leí y me encontre muchas veces con trabajo de integración de funcionalidades. donde los productos cambiaban pero las funcionalidades no. y tampoco la forma de integrar. Subscripciones de pagos, autenticación básica, roles y permisos, envio de emails, chats y generación de texto con IA, etc.
El copiar/pegar me llevaba mucho tiempo más los cambios del producto en sí (ir de archivo en archivo no era escalable), problemas de estructura de archivos, rutas y arquitectura. y ahora con el CLI, puedo hacerlo en minutos.
Decisiones de producto
Primera versión
Pense en que el CLI pueda integrar módulos completos. entonces elegirias el módulo (integración), proveedor (herramienta) y el cli instalaria las dependencias necesarias y copiaria todos los archivos necesarios (scaffolding).
Agregue aquellos módulos mas repetidos y que mas se buscaban. entonces elegi auth, pagos, email e IA. y lo mismo con los proveedores. por lo que si querias agregar auth esta vendria con todo ya listo: login/logout básico, roles/permisos, organizaciones, rutas protegidas, etc. Para pagos vendria con subscripciones, pagos de una sola vez, billing, webhooks, etc.
El problema
el problema fue que integrar múltiples funcionalidades de un solo módulo cuando solo se necesitaba una, era mucha lógica y código innecesario.
tambien era tener todo junto en un mismo archivo. un solo types.ts, actions.ts, service.ts, etc. para todas las funcionalidades se volvia dificil de leer, no era escalable ni mantenible.
Segunda versión: nuevo cli
Acá el cli mantendria los mismos módulos y proveedores. pero ahora el usuario podría elegir la funcionalidad/s que queria integrar.
tambien se cambio la estructura de carpetas a una mas fácil de entender y mantener. dividiendo el cambio de funcionalidad mas simple para trabajar.
¿Por qué dejarlo simple?
el cli en si es grande, cubre todas las funcionalidades básicas y mas pedidas por empresas o clientes. decidi separarlo para que se amolde a cada proyecto. priorizando la UX, escalabilidad y mantenibilidad.
Arquitectura técnica
cómo funciona el CLI por dentro (cómo detecta el proyecto, cómo inyecta archivos, cómo maneja conflictos con código existente).
DX
Resultado
descargas en npm: 386
