- Un material curado que reúne y selecciona textos críticos sobre React y herramientas de su ecosistema, organizados en formato de citas de distintos desarrolladores y blogueros
- Incluye muchos textos que señalan las limitaciones estructurales de React, como degradación del rendimiento, aumento de la complejidad y problemas de hidratación
- Se critica que la elección de tecnologías centradas en React se consolidó más por inercia y efectos de red que por adecuación técnica, y que la premisa de que “todo el mundo sabe React” se impone antes que las decisiones de arquitectura
- Crecieron las preocupaciones de seguridad y gobernanza alrededor de React Server Components y Next.js, y se divulgó CVE-2025-55182 como una vulnerabilidad de ejecución remota de código sin autenticación con calificación CVSS 10.0
- La confusión en el diseño de APIs del ecosistema React, su crisis de calidad y su complejidad dificultan el mantenimiento a largo plazo y el aprendizaje, y extienden el debate sobre el rumbo de React hasta Hooks, las funciones modernas de UI y el ritmo de lanzamientos
Resumen del sitio
- Un sitio de curaduría que plantea la pregunta provocadora: "Does anybody actually like React?"
- Una colección cherry-picked de textos críticos sobre React y herramientas influenciadas por React
- Ofrece suscripción por RSS
Críticas fundamentales al propio React
-
The End
- React casi siempre es la solución equivocada, y se ha convertido en un martillo que hace que todo parezca un clavo
- Es posible usar React bien, pero en la práctica casi nunca se usa bien
-
JS-heavy approaches are not compatible with long-term performance goals
- Los proyectos centrados en JS de cierta escala o más grandes son más lentos de lo que se anuncia, y se vuelven aún más lentos con el tiempo
- Requieren más esfuerzo para desarrollar y mantener, y tienen tantos bugs como otros enfoques
-
React Still Feels Insane And No One Is Talking About It
- Es fácil concluir que React “simplemente está loco”, pero hace falta intentar entenderlo racionalmente
-
Stop Using and Recommending React
- Basándose en una larga experiencia usando React, no hay razones para usarlo y sí muchas para estar en contra
-
Please don't use React
- Sostiene que hay que dejar de usar React y que nunca debió haberse usado desde el principio
-
Tech Founder? Entrepreneur? This is why you should avoid React.js in your app
- React no es solo lento, sino un ecosistema inflado con deuda técnica grabada en su ADN
- También plantea dudas sobre por qué se sigue eligiendo a pesar de eso
Problemas de seguridad y gobernanza
-
Critical Security Vulnerability in React Server Components
- El 29 de noviembre, Lachlan Davidson reportó una vulnerabilidad de ejecución remota de código (RCE) sin autenticación
- Se divulgó como CVE-2025-55182, con calificación CVSS 10.0
-
You should know this before choosing Next.js
- Vercel divulgó una vulnerabilidad de seguridad grave en Next.js
- El problema en sí era normal, pero la forma en que respondió Vercel fue deficiente e irresponsable
- Esto profundizó las preocupaciones sobre la gobernanza del proyecto
-
Next.js 15.1+ is unusable outside of Vercel
- Next.js se convirtió en una forma de vendor lock-in de Vercel disfrazada de framework open source
Problemas de diseño de API y curva de aprendizaje
-
Is it Time to Regulate React?
- El fracaso central de React se agrava por un diseño de API confuso
- La documentación es indecisa y el debate sobre la forma correcta de usarlo nunca termina
-
I don't have time to learn React
- A diferencia de la idea de que React enseña UI moderna, en realidad casi no aborda la UI moderna
- autofocus está roto, y los custom elements no funcionan fuera de versiones experimentales
- Para usar funciones modernas como dialog o popover hace falta useEffect
- Por el sistema de synthetic events, casi no se aprende cómo funciona realmente el DOM
- No es una UI moderna, sino una UI al nivel de 2013
-
The React Blog Post: Reflections and Reactions
- Resulta extraño tratar todos los problemas como un simple "skill issue" y decir que se resuelven con librerías externas
- Una tecnología debería permitir volver a trabajar con ella incluso tras 3 años, pero en frontend, especialmente en React, no es así
-
React, where are you going?
- Hoy hay dos problemas que hacen disfrutar menos React: ownership y complexity
- Existe preocupación de que los desarrolladores nuevos se sientan intimidados por React
Problemas de rendimiento y experiencia de usuario
-
Why use React?
- Básicamente te deja atrapado en el infame patrón de hidratación
- Una estructura donde todo el procesamiento se hace con JS en el servidor, se envía HTML de inmediato y luego se vuelve a enviar el mismo JS al cliente
-
How React 19 (Almost) Made the Internet Slower
- Tras una reacción pública negativa y un debate feroz, el equipo de React dejó en pausa el cambio
-
An even faster Microsoft Edge
- Se cambió de React a una arquitectura HTML-first con Web Components modernos
- El beneficio fue especialmente grande para usuarios con hardware de bajos recursos
-
Switching costs
- Expresa el deseo de que aumenten las quejas por la horrible experiencia de usuario que impone React del lado del cliente
- Pero en la práctica casi todas las quejas se concentran en la experiencia de desarrollador
-
Pivoting From React to Native DOM APIs: A Real World Example
- Un equipo de desarrollo cambió del “abrumador VDOM” de React a APIs modernas del DOM
- Sintieron una mejora inmediata en velocidad e interacción
Problemas móviles y de plataforma
-
I Built the Same App 10 Times: Evaluating Frameworks for Mobile Performance
- La estrategia móvil de React, en esencia, empuja a los equipos hacia la captura de plataforma (platform capture)
- La web ofrece una alternativa de distribución directa sin gatekeepers ni comisiones de plataforma
Problemas del ecosistema y la comunidad
-
React Won by Default – And It's Killing Frontend Innovation
- Cuando se necesita un nuevo frontend, no se empieza por "cuáles son las restricciones y qué herramienta encaja", sino por "usemos React, todos lo conocen"
- Un ciclo de autorrefuerzo en el que la fuerza de red decide la arquitectura, no la idoneidad técnica
-
Conferences, Clarity, and Smokescreens
- Según trabajo de consultoría y datos de la industria, la comunidad de React atraviesa una crisis de calidad profunda y medible
- Los asistentes a React Summit no se enteran de esto
-
Why Silicon Valley CTOs Are Secretly Moving Away from React
- Hay muchos desarrolladores de React, pero los verdaderos expertos que entienden patrones profundos son cada vez más escasos y caros
- Los ingenieros con más experiencia se están cambiando a otros stacks por agotamiento ante la complejidad
-
Increasingly miffed about the state of React releases
- Han pasado un año y medio desde el último release de React, más que en cualquier ciclo de releases anterior
Críticas a React Server Components
-
React Server Components: the Good, the Bad, and the Ugly
- React prácticamente había dejado de trabajar en mejoras del lado del cliente (desde que se abandonaron los experimentos de 2019)
- Un framework legado creado para resolver problemas a escala de Facebook con recursos a escala de Facebook, inadecuado para la mayoría de los casos de uso
-
React Server Components are a bad choice (for shipping)
- Si quieres lanzar rápido, no deberías usar React Server Components
- Sí puede usarse con fines de aprendizaje, experimentación o creación de contenido
Vuelta a los fundamentos y énfasis en alternativas
-
HTML is better than React!?
- Ventajas de la mejora progresiva (progressive enhancement) basada en HTML
- Ofrece a los usuarios una experiencia utilizable más rápido
- El sitio no se ve terrible incluso con conexiones lentas
- Aunque haya problemas, los usuarios pueden seguir usando el sitio
- Ventajas de la mejora progresiva (progressive enhancement) basada en HTML
-
How to build a counter component using the HTML Framework in just 1 line of code
- Recomendación satírica: "busca la carpeta
node_modulesy arrástrala a la papelera"
- Recomendación satírica: "busca la carpeta
-
Liskov's Gun: The parallel evolution of React and Web Components
- React se ha convertido en un montón inflado de promesas falsas, afirmaciones engañosas y capas interminables de retrocompatibilidad
- Incluso al actualizar, con frecuencia termina rompiendo el código
-
Removing React is just weakness leaving your codebase
- Alejarse de frameworks pesados como React y enfocarse en los fundamentos de la web protege el futuro de tu carrera y tu base de código
-
Concatenating text
- Cuando hace falta actualizar la pantalla, ¿por qué todos piensan primero en React?
- Se cuestiona la tendencia a mezclar en un solo lugar las responsabilidades del frontend y el backend
Casos de migración y transición
-
We Rewrote our React App in Svelte in Three Weeks
- Había ignorado los titulares de que Svelte era el framework "más querido", pero ahora se suma al lado de Svelte
-
Moving on from React
- Tras un mal comienzo con React en 2023, se movieron a un stack que encaja mejor con el dominio del cliente
-
Moving on from React, a Year Later
- El frontend pesado en JS de la era del "fat client" está desapareciendo
- El hype de las edge applications es innecesario para construir muchos tipos de negocios
-
Replacing React: How Liveview solved our performance problems
- Exploraron LiveView por problemas de rendimiento en una SPA de React
- Tras 2 días de exploración quedaron convencidos y reemplazaron la SPA de React por LiveView en pocas semanas
Tendencia general y perspectivas a futuro
-
The Neverending Story
- Una línea que va de Applets, ActiveX, Flash, Flex y Silverlight a Angular y React
- Fracasos repetidos de empresas que no lograron ver el panorama completo
-
If Not React, Then What?
- El Frameworkism predica adoptar más herramientas de frameworks (o distintas) como solución para mejorar la experiencia de usuario
- Lleva a obsesionarse con actividades que parecen ingeniería, pero en realidad no lo son
-
Reckoning: Part 4 — The Way Out
- No hay que alinearse con planes para construir otro YAJSD (Yet Another JavaScript Disaster)
- Cuando aparezca una propuesta de reescritura en React, los ingenieros senior no deben quedarse callados
-
After a Decade of React, Is Frontend a Post-React World Now?
- Los nuevos desarrolladores web pueden considerar seriamente la opción de evitar React por completo
- Puede reducirse la empleabilidad a corto plazo, pero existe la posibilidad de hacer match con empleadores pioneros
-
React, Electron, and LLMs have a common purpose: the labour arbitrage theory of dev tool popularity
- En la mayoría de las organizaciones que crean software para la web, React es objetivamente inferior a muchas alternativas
-
It feels like React is getting a bit of a kicking recently
- Recomendaciones sobre el cambio de actitud de la comunidad hacia React y la toma de decisiones en los proyectos
-
Kind of annoyed at React
- Aunque sigue eligiendo React para crear cosas complejas, lamenta que ojalá esa elección le diera más gusto
-
Am I the only one that thinks that the direction of React is wrong?
- La impresión de que React parece jugar su propio juego con sus propias reglas
-
Client-side JavaScript and React criticism: What comes next?
- Debate sobre cómo mejorar el uso de JavaScript, enseñar mejora progresiva y reconciliar a la comunidad
-
A Historical Reference of React Criticism
- Recopilación histórica de las críticas planteadas durante años al proyecto React
- Algunas se han resuelto y otras siguen pendientes
Hooks y paradigmas alternativos
-
Why Signals Are Better Than React Hooks
- Los Hooks de React son difíciles de usar correctamente, y usarlos con buen rendimiento es aún más difícil
- Causa de la caída en la calidad del código y el rendimiento en muchas aplicaciones
Críticas metafóricas
-
What Is React.js?
- Video que lo compara con el cristianismo por la rareza de sus defensores, su exceso de solemnidad y su documentación interminable
3 comentarios
React es pura fe (sectaria)
Es como Ant Mill //
Opiniones de Hacker News
Hay varias cosas de React que no me gustan. React es un framework para renderizar HTML interactivo en pantalla, no para hacer programación absurdamente compleja
Primero, depende demasiado de conceptos y terminología complicados. Comparado con Vue,
useEffectcorresponde awatchyuseMemoacomputedSegundo, esa forma innecesariamente “inteligente” se filtró más allá de la terminología y llegó también al ecosistema. Antes, con Redux, para incrementar un solo número había que escribir mucho código en varios archivos, y daba la impresión de que era porque a su autor le gustaban los conceptos ingeniosos de ciencias de la computación. En la misma época, en VueX bastaba con incrementar ese número. Por suerte, hoy en el ecosistema de React hay muchos manejadores de estado más sensatos
Tercero, React no incluye por defecto una herramienta para trabajar con CSS
Cuarto, React no optimiza por ti. Hay que saber cuándo y cómo usar o no usar
useEffectyuseMemo, y además existe mucho conocimiento informal sobre optimización en React. El problema es que esto pasa aunque el rerenderizado sea justamente su propósito central. En Vue, el framework te empuja a usar sus propias herramientas y dentro de ese marco optimiza casi todo, así que nunca he sentido que deba optimizar manualmente una app de VueQuinto, ese mismo conocimiento informal ya es un problema. La API de React y la idea de “la forma correcta de escribir React” han cambiado demasiado y de forma demasiado grande demasiadas veces, así que todavía es muy difícil distinguir qué consejo sigue siendo válido y cuál no
En resumen, React se enfoca demasiado en ideas, ciencias de la computación y abstracciones de alto nivel, y menos en facilitar de verdad el renderizado sencillo de HTML interactivo en pantalla
He usado mucho React, Vue y Svelte, pero cuando uso React tengo que seguir preocupándome por cosas que Vue o Svelte ya habrían resuelto. En rendimiento, los tres son parecidos
También escribí antes sobre esto: https://www.brachkow.com/notes/what-i-like-in-vue/
Como alguien que ha vivido todas las corrientes principales de JavaScript durante unos 16 años, en cierto sentido sí me gusta React
React es el peor framework de JavaScript, excepto por todos los demás que hemos probado
Elegiría React cualquier día antes que Angular 1. Antes que armar todo desde cero cada vez al estilo Backbone, elegiría el pesado MVC de Angular 1, y antes que la clásica sopa de JQuery, la estructura mínima de MVC de Backbone era mejor. En esa época, habría escogido de inmediato la manipulación del DOM de JQuery y sus mejoras a la librería estándar antes que las APIs nativas de entonces
React también tiene sus trade-offs, pero llegamos hasta aquí después de pasar mucho tiempo con una gran cantidad de alternativas que no funcionaban
Claro que hay gente a la que le gusta React. No es como JavaScript, que prácticamente uno está obligado a usar, y tampoco es que te fuercen a usar React u otro framework web, pero React ganó. Eso puede verse al menos como evidencia de que a la mayoría le gusta lo suficiente más que la mayoría de los otros frameworks
Hasta fines de la década de 2010, una queja común sobre el desarrollo web era que todo cambiaba demasiado rápido y siempre había algo nuevo que aprender, y esa queja era válida. Pero ahora que la monocultura de React llegó a la cima, todos se quejan de eso también. De verdad no se puede ganar
React ganó porque se volvió la opción por defecto y porque a la gente le gusta lo que ya conoce y con lo que se siente cómoda
Si quieres usar otra cosa, tienes que implementar tú mismo la integración, encontrar un proyecto open source que ya lo haya hecho, o preguntarle a una IA
En proyectos personales quizá sea posible, pero en un entorno laboral es difícil imaginarlo
Me gusta React. También probé en serio el ecosistema de HTMX/Hotwire.
Quería crear un botón de volver que, si venías desde la bandeja de entrada, usara la API del navegador para regresar, y si no, te mandara al enlace de la bandeja de entrada para preservar el scroll. Tenía que conectar el comportamiento en el HTML para llamar a la función de volver, y en el controlador determinar cuál era la página anterior para luego entregar un botón de volver en JavaScript o un enlace fijo. La lógica quedó repartida en 3 archivos.
En React, el JavaScript dentro del componente puede determinar si la página anterior era la bandeja de entrada y, según ese valor, mostrar el JSX del botón de volver o un enlace. Todo se resuelve en un solo archivo. Para mí solo hay que modelar una entidad conceptual, pero en el otro enfoque hay que forzar la funcionalidad dentro de 3 entidades.
Si preguntas si es más lento, definitivamente lo es. Aun así, me hace feliz. Si sufres con el desordenado codebase de React de tu empresa, deberías culpar a tus compañeros. Sin React, seguro habría sido peor.
Salvo quizá por mejorar formularios de vez en cuando, siempre preferiría htmx/renderizado del servidor y el comportamiento nativo.
En el estilo recomendado de htmx, bastaría con conectar un botón
onclicka JavaScript inline o, si no te gusta eso, llamar a una función comogoBackOrInbox.function goBackOrInbox() { if (document.referrer) { const path = new URL(document.referrer).pathname; if (path.startsWith('/inbox')) { history.back(); return; } } window.location.href = '/inbox'; }Si usas mucho este patrón, puedes parametrizarlo recibiendo como argumento la ruta a la que debe ir.
Usé código React durante mucho tiempo y ahora en la empresa trabajo en un gran proyecto con Vue. Antes todo el mundo decía que Vue era la opción más fácil y accesible entre los dos, pero ahora empecé a verlo distinto.
React tiene algo elegante: los componentes son esencialmente solo funciones, y fuera de eso no hay mucho más. Dejando de lado por un momento el ecosistema de Next.js, es de lo más elegante que he visto en desarrollo frontend.
En cambio, Vue se siente mezclado. Se nota la huella de desarrolladores backend que no querían aprender bien JavaScript, lo adoptaron y lo elogiaron, y el resultado se siente como una mezcla incómoda que no termina de encajar limpiamente.
He usado todos los frameworks principales y ahora mismo estoy haciendo una gran app web en Angular. En Angular, los componentes se expresan como clase, plantilla y estilos. Los event listeners por lo general llaman métodos de la clase, y el estado puede ser tan simple como propiedades de esa clase. Se siente mucho más natural y con muchas menos trampas. Claro, no cero.
La experiencia de uso es un poco distinta. Hay cosas que son más fáciles en React y otras que son más fáciles en Vue, pero para mí una gran ventaja de Vue es que usa signals.
Más que React en sí, me interesa más la pregunta de cuál es la mejor forma de escribir UI con código en general
Soy fan de React y lo uso en casi todas las aplicaciones web que construyo, pero el problema más grande y evidente es que escribir UI con React no se siente tan natural como usar Go para herramientas de línea de comandos o Elixir para apps en tiempo real
Algunos lenguajes son sorprendentemente naturales y sin fricción para ciertas tareas. Pero nadie ha conquistado realmente la UI todavía. Swift, JSX/HTML, Svelte, o cualquier framework popular de ese estilo, todos dan la sensación de estar esquivando el problema hasta cierto punto. Parece como si los diseñadores del lenguaje/framework en algún momento hubieran metido una sintaxis sucia, rara o dolorosa como compromiso para satisfacer los requisitos
La interfaz natural de la UI es visual, así que herramientas como Figma podrían ser una parte importante de la solución. Aun así, se siente que falta algo. Debe haber una forma más intuitiva de expresar en código algo visual. Las soluciones actuales son difíciles de describir con precisión, pero siempre se sienten apenas insuficientes en algún punto
Incluso ahora prefiero React sobre casi todo lo demás, incluyendo Svelte, Vue y Solid. Pero últimamente empecé a usar Crank(https://crank.js.org/) y parece estar un paso más cerca de la dirección a la que quiero ir. Aun así, hasta ahora solo lo he usado en proyectos de juguete, así que es difícil decir qué tan bien escala tanto en rendimiento como en experiencia de desarrollo
El mejor análisis que he visto hasta ahora está en “Programs = Data + Algorithms + Architecture: consequences for interactive software engineering”[2] de Chatty. Es un poco difícil de leer, pero vale mucho la pena
En resumen, el problema es la arquitectura, más específicamente el desajuste entre lenguaje y arquitectura. El estilo de arquitectura de llamada/retorno que inducen los lenguajes de programación de “propósito general” no encaja con la arquitectura que requieren las interfaces de usuario, y de hecho choca con ella
También escribí sobre esto en “Can Programmers Escape the Gentle Tyranny of call/return?”
El enfoque actual es crear primero un lenguaje de programación que pueda expresar fácilmente estilos de arquitectura alternativos, Objective-Smalltalk[4]
Con eso ahora estoy construyendo un framework de UI llamado interscript, que también incluye HTMXNative y varios elementos adicionales
Parece que está funcionando bastante bien
[1] Por ejemplo: “Languages for developing user interfaces” de Myers y otros https://api.taylorfrancis.com/content/books/mono/download?id...
[2] https://opendl.ifip-tc6.org/db/conf/ehci/ehci2007/Chatty07.p...
[3] https://2020.programming-conference.org/details/salon-2020-p...
[4] https://objective.st
Pero con el tiempo uno termina aceptando respuestas menos idealistas. Tal vez esa solución ni siquiera exista. Puede que el espacio del problema sea demasiado complejo y que no exista una solución general humanamente viable que abarque todas las formas posibles. Si hay un campo donde eso probablemente sea cierto, sería la UI
Sí. React es, por mucho, la interfaz más intuitiva que combina con éxito estilos declarativos e imperativos. No creo que haya nada en frameworks de UI de ningún lenguaje que se acerque a JSX
Me gusta muchísimo Svelte, y para apps más complejas uso SvelteKit
Se sintió como una mejora mucho mejor en muchos casos donde antes habría usado React
Svelte parece mucho más fácil de aprender para alguien que conoce los fundamentos del desarrollo web, HTML, CSS y JavaScript. Pero hoy en día veo seguido gente que empieza desarrollo web con React, y el orden se siente un poco al revés
Personalmente estoy haciendo apps móviles con SvelteKit + Capacitor, y escribí la configuración aquí: https://bryanhogan.com/blog/web-to-app-sveltekit-capacitor
Para landing pages simples prefiero Astro
Estoy de acuerdo en que hoy mucha gente empieza desarrollo web con React y eso se siente al revés. Svelte evita muy bien este problema porque trata HTML como lengua materna. Si empiezas desarrollo web con Svelte(Kit), es mucho más probable que aprendas más fundamentos que si empiezas con React
Fui una de las personas que ayudó a hacer posible React, así que tengo sesgo, pero realmente me encanta React. Antes de eso probé de todo para arreglar los problemas que tenía en frontend. Pero después de que apareció React, esa necesidad desapareció y pude simplemente concentrarme en construir
Una de las charlas que más me gustó fue https://www.youtube.com/watch?v=h9SDuTSy7ps. En mi experiencia, la arquitectura de React es realmente buena y encaja bastante bien para crear aplicaciones grandes
Lamentablemente, el mayor problema de React es que te obliga a entrar al ecosistema de JS/TS. Para mí, JavaScript/TypeScript es, sin lugar a dudas, más un objetivo de compilación que un sistema con el que quiera trabajar directamente
Estoy satisfecho con Elm. La comunidad es realmente pequeña y a veces hay que crear tus propias librerías. TEA a veces se siente poco natural viniendo de React, pero siempre me emociona trabajar con Elm porque no tengo que preocuparme por estados implícitos e inesperados como
useEffectAdemás, Claude parece aguantar mejor en Elm que en React, al menos dentro de codebases grandes y aterradores
Como el estado parece ser un gran tabú, también da la impresión de que choca un poco. También me pregunto si eso significa que, al final, toda app en Elm se convierte en una app global de Redux + React sin efectos. Me gustaría saber más sobre qué hace agradable a Elm y cómo se suele trabajar con él. También sirven links