Artículos sobre desarrollo web, arquitectura de software y las herramientas que uso en mi día a día.
Cómo desarrollé una extensión Chrome que reduce de 46,000 a 3,000 nodos DOM en conversaciones de 600+ mensajes usando virtualización CSS y MutationObserver.
Transforma una aplicación Next.js en una app nativa para Android e iOS usando Capacitor, manteniendo una sola base de código.
Creé scripts Bash que generan proyectos completos de Client Extensions para React y Angular en segundos, eliminando el boilerplate y asegurando compatibilidad con Liferay DXP.
Configura pipelines de CI/CD para generar APKs de Android y IPAs de iOS automáticamente con cada push, usando GitHub Actions y Capacitor.
Una alternativa flexible al despliegue clásico: subir Client Extensions a la Document Library y cargarlas desde fragmentos personalizados, sin necesidad de Remote Applications.
Las Client Extensions revolucionan el desarrollo en Liferay DXP al permitir extender la plataforma sin desplegar módulos OSGi. Aprende a crearlas desde cero.
Liferay ofrece dos sistemas de APIs: la moderna Headless Delivery (/o/api) y la clásica JSONWS (/api/jsonws). Análisis práctico de cuándo usar cada una y cómo migrar.
Master Pages y StyleBooks son las herramientas de Liferay para mantener consistencia visual en portales enterprise. Análisis de sus capacidades y limitaciones actuales.
Una retrospectiva técnica de los cambios entre Liferay 7.1, 7.2, 7.3 y 7.4, con estrategias prácticas de migración basadas en experiencia real con proyectos enterprise.
Liferay Objects permite crear entidades de datos completas con API REST automática, validaciones y relaciones, sin necesidad de Service Builder ni una sola línea de Java.
Antes de las Client Extensions existían los portlets React con liferay-npm-bundler. Cómo funcionan, cuándo siguen siendo útiles y cómo estructurar un proyecto completo.
Service Builder sigue siendo relevante en Liferay 7.4 para lógica de dominio compleja. Guía práctica sobre cuándo elegirlo sobre Objects y cómo estructurar módulos api/service.