Monorepos: Año de revisión

Monorepo con Nx y Nx Cloud: migración incremental para simplificar dependencias y acelerar el desarrollo de apps y librerías reutilizables. Lecciones.

7 sept 2025 • 5 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Un repositorio para gobernarlos a todos

Hace un año iniciamos la migración de nuestra suite de aplicaciones web a un monorepo y ha llegado el momento de compartir aprendizajes, aciertos y cómo lo hicimos posible. La meta era clara: simplificar la gestión de dependencias, reducir la duplicación de código y facilitar la expansión con nuevas apps y bibliotecas de funcionalidades reutilizables.

Éramos un equipo de desarrollo de dos personas, lo que nos obligó a que cada decisión contara: desde el alcance de la migración hasta el orden de traslado de las apps y el diseño de librerías compartidas. La ventaja de un equipo pequeño es evidente: decisiones rápidas, alta visibilidad de cambios y libertad para experimentar sin bloquear a demasiados implicados.

Nuestro enfoque

No podíamos pausar el desarrollo de nuevas funcionalidades ni la corrección de bugs en producción. Por eso optamos por una estrategia incremental: migrar una aplicación completa a la vez con todos sus módulos, empezando por una app pequeña para preparar el workspace, pipelines y tooling antes de escalar. Añadimos una regla práctica: la app en migración no recibiría nuevas features durante ese periodo; parches y fixes menores sí, evitando duplicar esfuerzos o generar confusión.

La tecnología: Nx y Nx Cloud

Elegimos Nx y Nx Cloud por su CLI bien documentada, ejemplos claros y plugins para nuestro stack. Esto nos dio confianza para aprender y validar sin frenar el avance ni sembrar dudas sobre el monorepo. Además, Nx Cloud nos permitió experimentar con caché y ejecución distribuida desde el inicio gracias a su plan gratuito.

Historias del camino

El formato de fechas nos jugó una pasada cuando dayjs y KendoReact no hablaban el mismo idioma. Dayjs usa formatos ISO como YYYY, mientras que KendoReact espera yyyy. La solución fue separar responsabilidades: usar dayjs para cálculos y comparaciones, y dejar todo el formateo visual a KendoReact, asegurando consistencia.

El wrapper de Keycloak para React que usábamos estaba desactualizado. Sin alternativas fiables, construimos el nuestro. Aprendimos a fondo los flujos de tokens, refresco y la integración con React. Resultado: un wrapper sólido y un equipo que comprende realmente la autenticación.

Una refactorización bienintencionada de componentes UI compartidos terminó tocando más de 150 archivos. Demasiado grande para revisar con seguridad. Lo revertimos y dividimos el trabajo en PRs pequeñas y enfocadas. Lección clave: los cambios masivos parecen eficientes, pero la iteración controlada gana en seguridad y previsibilidad.

La documentación que no sabíamos que necesitábamos llegó cuando invitamos a un equipo externo a revisar el workspace. Documentar decisiones, convenciones y estructuras nos obligó a pensar mejor, destapar huecos y hacer que la incorporación de nuevas personas fuera viable. Escribir no fue un trámite: se convirtió en una herramienta para razonar.

Qué código no migrar

No todo merece moverse al monorepo. Pregúntate si aporta valor, se usa a menudo y está bajo tu control. Si no cumple, quizá mejor dejarlo fuera. Sistemas de fin de vida, pruebas de concepto y prototipos rara vez compensan el esfuerzo. Herramientas de bajo impacto como dashboards internos pueden esperar. Módulos hiperestables o sensibles al rendimiento no se priorizan por uniformidad. Proyectos archivados o por cumplimiento legal no necesitan migrarse.

Efectos colaterales que nos encantaron

Actualizaciones sin drama de versiones: incluso antes de migrar todas las apps, ya ejecutábamos actualizaciones de todo el workspace entre migraciones. Con nx migrate, Nx actualizó dependencias de forma guiada y coherente.

Mejor experiencia de desarrollo: librerías compartidas, una única fuente de verdad y utilidades centralizadas simplificaron el trabajo local, el onboarding y la trazabilidad de componentes.

Reviews con foco: los módulos comunes están bien testeados, así que los PRs se concentran en la lógica de negocio y no en revisar patrones repetidos, un salto enorme frente al modelo de múltiples repos.

Confianza del equipo: al inicio no teníamos políticas estrictas de protección de la rama principal por limitaciones de configuración. Aun así, practicamos revisiones por responsabilidad compartida. No es lo ideal, pero funcionó para un equipo pequeño y alineado.

Lecciones aprendidas

Empezar con cabeza: montamos workspaces y pipelines de prueba para ganar confianza y reducir sorpresas. Definimos límites claros de qué migrar y qué quedaba fuera. Con generadores de Nx como workspace move pudimos ajustar la estructura más tarde sin bloquear el avance.

Avanzar por pasos: migrar app por app nos permitió validar, afinar tooling y aprender sin asumir riesgos excesivos. Aceptamos que las primeras soluciones no cubrirían todos los bordes y planificamos refactorizaciones incrementales.

Pragmatismo ante todo: evitar la sobreingeniería, apoyarnos en defaults y asumir duplicaciones temporales cuando aceleraban la entrega. Las abstracciones correctas llegan cuando conoces todos los casos de uso.

Documentar mientras trabajas: anotar decisiones, componentes y utilidades aclaró el pensamiento, aceleró el onboarding y convirtió la migración en un proceso más mantenible.

Limpiar de forma continua: dependencias obsoletas, scripts olvidados y rarezas afloran. Abordarlas pronto previene problemas mayores y mejora la calidad global.

Construir confianza con tests: pruebas rigurosas en módulos compartidos ahorran tiempo, reducen el riesgo al refactorizar y refuerzan la seguridad del equipo para evolucionar.

Conclusión

Tras un año, el monorepo no solo mejoró lo técnico: transformó la forma de trabajar. Cada migración exigió planificar, replantear abstracciones e iterar ante nuevos requisitos y casos límite. Hoy nuestras apps son más consistentes, las actualizaciones son más simples y crear nuevas aplicaciones es más rápido gracias a layouts, utilidades y flujos compartidos. Aún hay margen para pulir CI CD y onboarding, y nuestras librerías seguirán evolucionando, pero la base es sólida y el desarrollo diario es más predecible y menos propenso a errores.

En Q2BSTUDIO ayudamos a equipos y empresas a diseñar y escalar monorepos, creando aplicaciones a medida y software a medida con foco en calidad, seguridad y velocidad. Combinamos inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, además de agentes IA e ia para empresas, para impulsar la entrega continua y la automatización. Si quieres acelerar tu plataforma con un monorepo, consulta nuestras aplicaciones a medida o potencia tu cadena de valor con automatización de procesos.

Un repo, muchas lecciones y posibilidades sin límite.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat