{"id":35755,"date":"2025-12-23T12:26:47","date_gmt":"2025-12-23T15:26:47","guid":{"rendered":"https:\/\/building.nubank.com\/?p=35755"},"modified":"2025-12-23T13:01:08","modified_gmt":"2025-12-23T16:01:08","slug":"construyendo-interfaces-elegantes-con-clojurescript-react-y-uix","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/","title":{"rendered":"Construyendo interfaces elegantes con ClojureScript, React y UIx"},"content":{"rendered":"\n<p>Durante el evento Clojure South, Jo\u00e3o Lanjoni, Ingeniero de Software en Nubank, abord\u00f3 un desaf\u00edo central del desarrollo web moderno: c\u00f3mo combinar la ergonom\u00eda de ClojureScript con la madurez de React para construir interfaces escalables y de alto rendimiento.<\/p>\n\n\n\n<p>Seg\u00fan Jo\u00e3o, la soluci\u00f3n es UIx, una herramienta que representa la nueva generaci\u00f3n de puentes que alinean a\u00fan m\u00e1s el universo de Clojure con el ecosistema de React. En su sesi\u00f3n, detall\u00f3 el contexto, las limitaciones de los enfoques anteriores y el valor de UIx como un nuevo y eficiente punto de entrada para desarrolladores de React hacia ClojureScript.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">De 2013 a hoy: React y ClojureScript en perspectiva<\/h2>\n\n\n\n<p>Desde su lanzamiento en 2013, React ha redefinido la estructura de las aplicaciones frontend al introducir conceptos como la reactividad consistente. La comunidad de ClojureScript respondi\u00f3 r\u00e1pidamente con interfaces idiom\u00e1ticas como Reagent, que se convirti\u00f3 en el est\u00e1ndar de facto gracias a su solidez, proporcionando una interfaz minimalista entre ClojureScript y React mediante una sintaxis tipo <span class=\"quotes\">\u2033<\/span>Hiccup<span class=\"quotes\">\u2033<\/span> para definir componentes. Con la llegada de los componentes funcionales y los hooks alrededor de 2019, surgieron nuevas interfaces para permitir el uso directo de estos componentes (en lugar de los antiguos basados en clases).<\/p>\n\n\n\n<p>Sin embargo, a medida que React evolucion\u00f3 hacia patrones modernos \u2014incluyendo el renderizado concurrente, componentes funcionales y nuevas formas de gestionar el estado\u2014, Reagent se mantuvo ligado a los componentes de clase, principalmente por compatibilidad hacia atr\u00e1s. Este desajuste result\u00f3 en limitaciones de rendimiento en bases de c\u00f3digo grandes (debido al procesamiento de Hiccup en tiempo de ejecuci\u00f3n), problemas con los componentes funcionales y dificultades en la interoperabilidad con librer\u00edas modernas de React como Material UI, Mantine y Ant Design, ampliando la brecha entre ambos ecosistemas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lo que UIx cambia en tu c\u00f3digo<\/h2>\n\n\n\n<p>UIx surge para resolver esta divergencia. Al actuar como una interfaz delgada entre ClojureScript y el React moderno, su enfoque es t\u00e9cnico y pragm\u00e1tico: ofrece una capa de abstracci\u00f3n m\u00ednima, un rendimiento m\u00e1s predecible y el uso directo de componentes funcionales y hooks. Adem\u00e1s, garantiza una interoperabilidad nativa con el ecosistema de React, permitiendo que el ciclo de vida y la gesti\u00f3n del estado sean manejados directamente por React.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><span class=\"quotes\">\u2033<\/span>Si React ya maneja bien la gesti\u00f3n de estado y el ciclo de vida, \u00bfpor qu\u00e9 no dejar que lo haga?<span class=\"quotes\">\u2033<\/span> <\/p>\n\n\n\n<p>Jo\u00e3o Lanjoni, Ingeniero de Software en Nubank.<\/p>\n<\/blockquote>\n\n\n\n<p>En lugar de crear un framework completo o a\u00f1adir abstracciones innecesarias, UIx es un puente ligero que aprovecha lo mejor de React moderno, resultando en una base de c\u00f3digo en ClojureScript con sintaxis idiom\u00e1tica pero comportamiento id\u00e9ntico al de React.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estructura de componentes en UIx<\/h2>\n\n\n\n<p>En t\u00e9rminos pr\u00e1cticos, UIx centraliza la construcci\u00f3n de componentes en dos elementos: <em>defui<\/em> para declarar componentes de React y <em>$<\/em> para renderizar elementos de forma expl\u00edcita y ligera. Los cuerpos de los componentes procesan las props de manera id\u00e9ntica a React. Los hooks, como <em>useState<\/em>, se exponen usando las convenciones idiom\u00e1ticas de ClojureScript, como <em>use-state<\/em>, mientras UIx se encarga de la traducci\u00f3n a las APIs nativas de React. Esta ergonom\u00eda combina lo mejor de la sintaxis de ClojureScript con la arquitectura de React, lo que, seg\u00fan Jo\u00e3o, elimina la necesidad de capacitar a desarrolladores de React en los detalles internos de capas como Reagent o Re-frame, manteniendo el modelo mental alineado con el est\u00e1ndar de React.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rendimiento en cifras<\/h2>\n\n\n\n<p>Un punto destacado de la presentaci\u00f3n fue el gr\u00e1fico creado por Roman Liutikov (mantenedor de UIx), que compara la profundidad de la pila de llamadas (call stack) al renderizar un componente simple en React puro, UIx y Reagent. React muestra el camino m\u00e1s corto; UIx, al a\u00f1adir solo una capa delgada, le sigue de cerca. En contraste, Reagent muestra una pila significativamente m\u00e1s profunda debido a que Hiccup se interpreta en tiempo de ejecuci\u00f3n. Aunque la diferencia es m\u00ednima en aplicaciones peque\u00f1as, el impacto en la predictibilidad y el rendimiento se vuelve notable en productos con cientos o miles de componentes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qui\u00e9nes ya est\u00e1n usando UIx en producci\u00f3n<\/h2>\n\n\n\n<p>Jo\u00e3o present\u00f3 tres ejemplos del mundo real, destacados en la p\u00e1gina oficial del proyecto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Metosin<\/strong>, Una de las consultoras de Clojure m\u00e1s grandes de Europa.<\/li>\n\n\n\n<li><strong>Pitch<\/strong>, Una plataforma de presentaciones con IA y dise\u00f1os incre\u00edbles.<\/li>\n\n\n\n<li><strong>Cognition<\/strong>, Una plataforma de e-learning para desarrollo personal.<\/li>\n<\/ul>\n\n\n\n<p>El caso de Pitch es particularmente impresionante: el equipo migr\u00f3 2,500 componentes de Reagent a UIx, mantuvo la compatibilidad con Re-frame y observ\u00f3 mejoras en la predictibilidad y el rendimiento.<\/p>\n\n\n\n<p>Por su parte, Metosin cuenta con Juho Teperi, uno de los principales contribuyentes de Reagent, quien cre\u00f3 un proyecto de ejemplo para una app full-stack usando Clojure y ClojureScript y eligi\u00f3 UIx para la interfaz web, utilizando Material UI sin necesidad de wrappers especiales. Cuando alguien que ayud\u00f3 a construir la herramienta anterior comienza a abogar por el nuevo enfoque, dice mucho sobre el momento actual de la tecnolog\u00eda.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reduciendo la curva de aprendizaje<\/h2>\n\n\n\n<p>El valor de UIx se extiende a la contrataci\u00f3n y desarrollo de ingenieros, abriendo paso a que m\u00e1s profesionales entren al ecosistema de ClojureScript sin el requisito de dominar las complejidades de Reagent, Re-frame o el modelo de estado basado en \u00e1tomos desde el primer d\u00eda.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u201cEl mayor valor de UIx es permitir que los desarrolladores de React escriban ClojureScript con una curva de aprendizaje m\u00ednima.\u201d<\/em> <\/p>\n\n\n\n<p>Jo\u00e3o Lanjoni, Ingeniero de Software en Nubank.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Cu\u00e1ndo UIx es la mejor opci\u00f3n<\/h2>\n\n\n\n<p>UIx se recomienda especialmente para aplicaciones frontend modernas y complejas, y para equipos que ya est\u00e1n familiarizados con React. Es ideal para bases de c\u00f3digo que dependen fuertemente de hooks y para proyectos que requieren interoperabilidad con las \u00faltimas librer\u00edas de React. La librer\u00eda, intencionalmente simple, no intenta reinventar la gesti\u00f3n de estado global, manteniendo la compatibilidad con librer\u00edas maduras como Zustand y Jotai, o incluso permitiendo el uso de hooks personalizados que se suscriben a un \u00e1tomo de Clojure.<\/p>\n\n\n\n<p>En esencia, UIx no busca reemplazar a React, sino actuar como un puente delgado, moderno y pragm\u00e1tico. Su objetivo es permitir que los equipos construyan frontends escalables con el poder de React, preservando la expresividad y elegancia de la filosof\u00eda de Clojure. Para proyectos complejos y modernos en ClojureScript, UIx podr\u00eda ser el eslab\u00f3n perdido.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/KUGStGc4E-E?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es-ES&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo un nuevo enfoque est\u00e1 acercando Clojure al ecosistema moderno de front-end y abriendo puertas para que m\u00e1s desarrolladores de React se unan a la comunidad<\/p>\n","protected":false},"author":178110103,"featured_media":35783,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2499,2589],"tags":[],"ppma_author":[2321],"class_list":["post-35755","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-es","category-software-engineering-es"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Construyendo interfaces elegantes con ClojureScript, React y UIx - Building Nubank<\/title>\n<meta name=\"description\" content=\"C\u00f3mo un nuevo enfoque est\u00e1 acercando Clojure al ecosistema moderno de front-end y abriendo puertas para que m\u00e1s desarrolladores de React se unan a la comunidad.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construyendo interfaces elegantes con ClojureScript, React y UIx - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"C\u00f3mo un nuevo enfoque est\u00e1 acercando Clojure al ecosistema moderno de front-end y abriendo puertas para que m\u00e1s desarrolladores de React se unan a la comunidad.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-23T15:26:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-23T16:01:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/building.nubank.com\/wp-content\/uploads\/2025\/12\/Nubank-1331-1024x683.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nubank Editorial\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nubank Editorial\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/\"},\"author\":{\"name\":\"Nubank Editorial\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"headline\":\"Construyendo interfaces elegantes con ClojureScript, React y UIx\",\"datePublished\":\"2025-12-23T15:26:47+00:00\",\"dateModified\":\"2025-12-23T16:01:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/\"},\"wordCount\":1111,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1\",\"articleSection\":[\"Engineering\",\"Software Engineering\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/\",\"name\":\"Construyendo interfaces elegantes con ClojureScript, React y UIx - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1\",\"datePublished\":\"2025-12-23T15:26:47+00:00\",\"dateModified\":\"2025-12-23T16:01:08+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"description\":\"C\u00f3mo un nuevo enfoque est\u00e1 acercando Clojure al ecosistema moderno de front-end y abriendo puertas para que m\u00e1s desarrolladores de React se unan a la comunidad.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1\",\"width\":3120,\"height\":2080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Construyendo interfaces elegantes con ClojureScript, React y UIx\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\",\"name\":\"Nubank Editorial\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g0a78bc815f2126d9ba65b2af185671f1\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"caption\":\"Nubank Editorial\"},\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/author\\\/editorial\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Construyendo interfaces elegantes con ClojureScript, React y UIx - Building Nubank","description":"C\u00f3mo un nuevo enfoque est\u00e1 acercando Clojure al ecosistema moderno de front-end y abriendo puertas para que m\u00e1s desarrolladores de React se unan a la comunidad.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/","og_locale":"es_ES","og_type":"article","og_title":"Construyendo interfaces elegantes con ClojureScript, React y UIx - Building Nubank","og_description":"C\u00f3mo un nuevo enfoque est\u00e1 acercando Clojure al ecosistema moderno de front-end y abriendo puertas para que m\u00e1s desarrolladores de React se unan a la comunidad.","og_url":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/","og_site_name":"Building Nubank","article_published_time":"2025-12-23T15:26:47+00:00","article_modified_time":"2025-12-23T16:01:08+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/building.nubank.com\/wp-content\/uploads\/2025\/12\/Nubank-1331-1024x683.jpg","type":"image\/jpeg"}],"author":"Nubank Editorial","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Nubank Editorial","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/"},"author":{"name":"Nubank Editorial","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"headline":"Construyendo interfaces elegantes con ClojureScript, React y UIx","datePublished":"2025-12-23T15:26:47+00:00","dateModified":"2025-12-23T16:01:08+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/"},"wordCount":1111,"commentCount":0,"image":{"@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","articleSection":["Engineering","Software Engineering"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/","url":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/","name":"Construyendo interfaces elegantes con ClojureScript, React y UIx - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","datePublished":"2025-12-23T15:26:47+00:00","dateModified":"2025-12-23T16:01:08+00:00","author":{"@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"description":"C\u00f3mo un nuevo enfoque est\u00e1 acercando Clojure al ecosistema moderno de front-end y abriendo puertas para que m\u00e1s desarrolladores de React se unan a la comunidad.","breadcrumb":{"@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","width":3120,"height":2080},{"@type":"BreadcrumbList","@id":"https:\/\/building.nubank.com\/es\/construyendo-interfaces-elegantes-con-clojurescript-react-y-uix\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/es\/"},{"@type":"ListItem","position":2,"name":"Construyendo interfaces elegantes con ClojureScript, React y UIx"}]},{"@type":"WebSite","@id":"https:\/\/building.nubank.com\/es\/#website","url":"https:\/\/building.nubank.com\/es\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nubank.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4","name":"Nubank Editorial","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g0a78bc815f2126d9ba65b2af185671f1","url":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","caption":"Nubank Editorial"},"url":"https:\/\/building.nubank.com\/es\/author\/editorial\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-9iH","jetpack_sharing_enabled":true,"authors":[{"term_id":2321,"user_id":178110103,"is_guest":0,"slug":"editorial","display_name":"Nubank Editorial","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/35755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/users\/178110103"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/comments?post=35755"}],"version-history":[{"count":4,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/35755\/revisions"}],"predecessor-version":[{"id":35780,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/35755\/revisions\/35780"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media\/35783"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media?parent=35755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/categories?post=35755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/tags?post=35755"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/ppma_author?post=35755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}