{"id":35762,"date":"2025-12-23T12:26:47","date_gmt":"2025-12-23T15:26:47","guid":{"rendered":"https:\/\/building.nu.com\/?p=35762"},"modified":"2025-12-23T13:54:59","modified_gmt":"2025-12-23T16:54:59","slug":"construindo-interfaces-elegantes-com-clojurescript-react-e-uix","status":"publish","type":"post","link":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/","title":{"rendered":"Construindo interfaces elegantes com ClojureScript, React e UIx"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Durante a Clojure South, Jo\u00e3o Lanjoni, Engenheiro de Software no Nubank, abordou um desafio central do desenvolvimento web moderno: como combinar a ergonomia do ClojureScript com a maturidade do React para construir interfaces escal\u00e1veis e de alta performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Segundo Jo\u00e3o, a solu\u00e7\u00e3o \u00e9 o UIx, uma ferramenta que representa a nova gera\u00e7\u00e3o de pontes que alinham ainda mais o universo Clojure ao ecossistema React. Em sua sess\u00e3o, ele detalhou o contexto, as limita\u00e7\u00f5es das abordagens anteriores e o valor do UIx como um novo e eficiente ponto de entrada para desenvolvedores React no ClojureScript.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">De 2013 at\u00e9 aqui: uma hist\u00f3ria entre React e ClojureScript<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Desde o seu lan\u00e7amento em 2013, o React redefiniu a estrutura das aplica\u00e7\u00f5es frontend ao introduzir conceitos como reatividade consistente. A comunidade ClojureScript respondeu rapidamente com interfaces idiom\u00e1ticas como o Reagent, que se tornou o padr\u00e3o de fato devido \u00e0 sua solidez, oferecendo uma interface minimalista entre ClojureScript e React atrav\u00e9s da sintaxe baseada em Hiccup para definir componentes. Com a chegada dos componentes funcionais e hooks, por volta de 2019, novas interfaces surgiram para oferecer uma forma direta de usar componentes funcionais (em vez dos antigos componentes baseados em classe).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No entanto, \u00e0 medida que o React evoluiu continuamente para padr\u00f5es modernos \u2014 incluindo renderiza\u00e7\u00e3o concorrente, componentes funcionais e novas formas de gerenciar o estado \u2014 o Reagent permaneceu atado aos componentes de classe, principalmente por quest\u00f5es de retrocompatibilidade. Esse descompasso resultou em algumas limita\u00e7\u00f5es, como gargalos de performance em bases de c\u00f3digo grandes (devido ao processamento do Hiccup em tempo de execu\u00e7\u00e3o), dificuldades com componentes funcionais e uma interoperabilidade prejudicada com bibliotecas modernas do React (como Material UI, Mantine e Ant Design), aumentando a dist\u00e2ncia entre os dois ecossistemas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que muda com o UIx<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O UIx surge para resolver essa diverg\u00eancia. Atuando como uma interface fina entre o ClojureScript e o React moderno, seu foco \u00e9 t\u00e9cnico e pragm\u00e1tico: ele oferece uma camada de abstra\u00e7\u00e3o m\u00ednima, performance mais previs\u00edvel e o uso direto de componentes funcionais e hooks. Al\u00e9m disso, garante interoperabilidade nativa com o ecossistema React, permitindo que o ciclo de vida e o gerenciamento de estado sejam tratados diretamente pelo pr\u00f3prio React.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#8220;Se o React j\u00e1 gerencia bem o estado e o ciclo de vida, por que n\u00e3o deix\u00e1-lo fazer isso?&#8221; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jo\u00e3o Lanjoni, Engenheiro de Software no Nubank<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Em vez de criar um framework completo ou adicionar abstra\u00e7\u00f5es desnecess\u00e1rias, o UIx \u00e9 uma ponte leve que aproveita o que o React moderno tem de melhor, resultando em um c\u00f3digo ClojureScript com sintaxe idiom\u00e1tica, mas comportamento id\u00eantico ao React moderno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estrutura de componentes UIx<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Na pr\u00e1tica, o UIx centraliza a constru\u00e7\u00e3o de componentes em dois elementos: <em>defui<\/em> para declarar componentes React e <em>$<\/em> para renderizar elementos de forma expl\u00edcita e leve. O corpo dos componentes processa as props de maneira id\u00eantica ao React. Hooks como o <em>useState<\/em> s\u00e3o expostos usando as conven\u00e7\u00f5es idiom\u00e1ticas do ClojureScript (como use-state), com o UIx cuidando da tradu\u00e7\u00e3o para as APIs nativas do React.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa ergonomia combina o melhor da sintaxe do ClojureScript com a arquitetura do React, o que, segundo Jo\u00e3o, elimina a necessidade de treinar desenvolvedores React nos detalhes internos de camadas como Reagent ou Re-frame, mantendo o modelo mental alinhado ao padr\u00e3o de mercado do React.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Performance em n\u00fameros<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um ponto alto da apresenta\u00e7\u00e3o foi o gr\u00e1fico criado por Roman Liutikov, mantenedor do UIx, comparando a profundidade da pilha de chamadas (call stack depth) ao renderizar um componente simples em React puro, UIx e Reagent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O React exibe o caminho mais curto; o UIx, por adicionar apenas uma camada fina, o segue de perto. Em contraste, o Reagent apresenta uma pilha de chamadas significativamente mais profunda devido \u00e0 interpreta\u00e7\u00e3o do Hiccup em tempo de execu\u00e7\u00e3o. Embora a diferen\u00e7a seja m\u00ednima em aplica\u00e7\u00f5es pequenas, o impacto na previsibilidade e na performance torna-se not\u00e1vel e cresce em produtos com centenas ou milhares de componentes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quem j\u00e1 est\u00e1 usando UIx em produ\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jo\u00e3o apresentou tr\u00eas exemplos do mundo real, todos destacados na p\u00e1gina oficial do projeto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Metosin, uma das maiores consultorias de Clojure na Europa;<\/li>\n\n\n\n<li>Pitch, uma plataforma de apresenta\u00e7\u00f5es baseada em IA;<\/li>\n\n\n\n<li>Cognition, uma plataforma de e-learning para desenvolvimento pessoal.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">O caso da Pitch \u00e9 particularmente impressionante: a equipe migrou 2.500 componentes do Reagent para o UIx, manteve a compatibilidade com o Re-frame e observou melhorias na previsibilidade e na performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A Metosin, por sua vez, conta com Juho Teperi, um dos principais colaboradores do Reagent. Ele criou um projeto de exemplo para um app full-stack usando Clojure e ClojureScript e escolheu o UIx para construir a interface web, utilizando inclusive o Material UI como biblioteca de componentes sem qualquer adaptador especial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando algu\u00e9m que ajudou a construir a ferramenta anterior come\u00e7a a defender a nova abordagem, isso diz muito sobre o momento atual da tecnologia, especialmente com o lan\u00e7amento de uma nova vers\u00e3o do Reagent que introduz componentes funcionais por padr\u00e3o e uma camada de hooks mais fina (tamb\u00e9m inspirada pelo UIx).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reduzindo a curva de aprendizado do desenvolvedor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O valor do UIx se estende \u00e0 contrata\u00e7\u00e3o e ao desenvolvimento de engenheiros, abrindo caminho para que mais profissionais entrem no ecossistema ClojureScript sem a obrigatoriedade de dominar as complexidades do Reagent, Re-frame ou do modelo de estado baseado em atoms desde o primeiro dia. Ele representa uma abordagem pragm\u00e1tica para reduzir barreiras sem sacrificar os benef\u00edcios de uma linguagem funcional e declarativa.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>\u201cO maior valor do UIx \u00e9 permitir que desenvolvedores React escrevam ClojureScript com uma curva de aprendizado m\u00ednima.\u201d <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Jo\u00e3o Lanjoni, Engenheiro de Software no Nubank<\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Quando o UIx \u00e9 a melhor escolha<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O UIx \u00e9 especialmente recomendado para aplica\u00e7\u00f5es frontend modernas e complexas e equipes j\u00e1 familiarizadas com o React. \u00c9 ideal para bases de c\u00f3digo que dependem fortemente de hooks e para projetos que exigem interoperabilidade com as bibliotecas mais recentes do React, visando um forte potencial de crescimento a longo prazo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A biblioteca, intencionalmente simples, n\u00e3o tenta reinventar o gerenciamento de estado global, mantendo a compatibilidade com bibliotecas maduras do React, como Zustand e Jotai, em vez de adicionar camadas desnecess\u00e1rias \u2014 ou at\u00e9 mesmo permitindo o uso de um hook customizado que se inscreve em um atom do Clojure para gerenciar o estado global.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em ess\u00eancia, o UIx n\u00e3o busca substituir o React, mas sim atuar como uma ponte fina, moderna e pragm\u00e1tica. Seu objetivo \u00e9 permitir que equipes construam frontends escal\u00e1veis com o poder do React, preservando a expressividade e a eleg\u00e2ncia da filosofia e sintaxe do Clojure. Para projetos complexos e modernos em ClojureScript, o UIx pode ser o elo que faltava.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/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=pt-BR&#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>Como uma nova abordagem est\u00e1 aproximando o Clojure do ecossistema frontend moderno e abrindo portas para que mais desenvolvedores React entrem na comunidade<\/p>\n","protected":false},"author":178110103,"featured_media":35781,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2499,2497,2589,2586],"tags":[],"class_list":["post-35762","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-es","category-engineering-pt-br","category-software-engineering-es","category-software-engineering-pt-br"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Construindo interfaces elegantes com ClojureScript, React e UIx - Building Nubank<\/title>\n<meta name=\"description\" content=\"Como uma nova abordagem est\u00e1 aproximando o Clojure do ecossistema frontend moderno e abrindo portas para que mais desenvolvedores React entrem na comunidade.\" \/>\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.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construindo interfaces elegantes com ClojureScript, React e UIx - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"Como uma nova abordagem est\u00e1 aproximando o Clojure do ecossistema frontend moderno e abrindo portas para que mais desenvolvedores React entrem na comunidade.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-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:54:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/building.nu.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=\"Est. tempo de leitura\" \/>\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.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/\"},\"author\":{\"name\":\"Nubank Editorial\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"headline\":\"Construindo interfaces elegantes com ClojureScript, React e UIx\",\"datePublished\":\"2025-12-23T15:26:47+00:00\",\"dateModified\":\"2025-12-23T16:54:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/\"},\"wordCount\":1170,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1\",\"articleSection\":[\"Engineering\",\"Engineering\",\"Software Engineering\",\"Software Engineering\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/\",\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/\",\"name\":\"Construindo interfaces elegantes com ClojureScript, React e UIx - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.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:54:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"description\":\"Como uma nova abordagem est\u00e1 aproximando o Clojure do ecossistema frontend moderno e abrindo portas para que mais desenvolvedores React entrem na comunidade.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1\",\"width\":3120,\"height\":2080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Construindo interfaces elegantes com ClojureScript, React e UIx\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\",\"name\":\"Nubank Editorial\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"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.nu.com\\\/pt-br\\\/author\\\/editorial\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Construindo interfaces elegantes com ClojureScript, React e UIx - Building Nubank","description":"Como uma nova abordagem est\u00e1 aproximando o Clojure do ecossistema frontend moderno e abrindo portas para que mais desenvolvedores React entrem na comunidade.","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.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/","og_locale":"pt_BR","og_type":"article","og_title":"Construindo interfaces elegantes com ClojureScript, React e UIx - Building Nubank","og_description":"Como uma nova abordagem est\u00e1 aproximando o Clojure do ecossistema frontend moderno e abrindo portas para que mais desenvolvedores React entrem na comunidade.","og_url":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/","og_site_name":"Building Nubank","article_published_time":"2025-12-23T15:26:47+00:00","article_modified_time":"2025-12-23T16:54:59+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/building.nu.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","Est. tempo de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#article","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/"},"author":{"name":"Nubank Editorial","@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"headline":"Construindo interfaces elegantes com ClojureScript, React e UIx","datePublished":"2025-12-23T15:26:47+00:00","dateModified":"2025-12-23T16:54:59+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/"},"wordCount":1170,"commentCount":0,"image":{"@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","articleSection":["Engineering","Engineering","Software Engineering","Software Engineering"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/","url":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/","name":"Construindo interfaces elegantes com ClojureScript, React e UIx - Building Nubank","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#primaryimage"},"image":{"@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.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:54:59+00:00","author":{"@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"description":"Como uma nova abordagem est\u00e1 aproximando o Clojure do ecossistema frontend moderno e abrindo portas para que mais desenvolvedores React entrem na comunidade.","breadcrumb":{"@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","width":3120,"height":2080},{"@type":"BreadcrumbList","@id":"https:\/\/building.nu.com\/pt-br\/construindo-interfaces-elegantes-com-clojurescript-react-e-uix\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nu.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Construindo interfaces elegantes com ClojureScript, React e UIx"}]},{"@type":"WebSite","@id":"https:\/\/building.nu.com\/pt-br\/#website","url":"https:\/\/building.nu.com\/pt-br\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nu.com\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4","name":"Nubank Editorial","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","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.nu.com\/pt-br\/author\/editorial\/"}]}},"jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-9iO","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2025\/12\/Nubank-1331.jpg?fit=3120%2C2080&ssl=1","_links":{"self":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/35762","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/users\/178110103"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/comments?post=35762"}],"version-history":[{"count":8,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/35762\/revisions"}],"predecessor-version":[{"id":35778,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/35762\/revisions\/35778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media\/35781"}],"wp:attachment":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media?parent=35762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/categories?post=35762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/tags?post=35762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}