<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Manuel Morales</title>
    <description>The latest articles on DEV Community by Manuel Morales (@manuemorales).</description>
    <link>https://dev.to/manuemorales</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F815225%2F523f7da6-4ca0-4287-82df-f4e42b3ead0c.jpg</url>
      <title>DEV Community: Manuel Morales</title>
      <link>https://dev.to/manuemorales</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manuemorales"/>
    <language>en</language>
    <item>
      <title>Tired of Excel for managing your personal finances? Discover Monifi, the smart alternative.</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Thu, 24 Apr 2025 04:09:28 +0000</pubDate>
      <link>https://dev.to/manuemorales/tired-of-excel-for-managing-your-personal-finances-discover-monifi-the-smart-alternative-1bi4</link>
      <guid>https://dev.to/manuemorales/tired-of-excel-for-managing-your-personal-finances-discover-monifi-the-smart-alternative-1bi4</guid>
      <description>&lt;p&gt;If you’ve ever used Excel to manage your personal finances, you probably know that while it’s a powerful tool, it quickly falls apart when your financial life gets more complex. It becomes a messy, error-prone system that lacks the structure, clarity, and intelligence needed to support meaningful financial decision-making.&lt;/p&gt;

&lt;p&gt;That’s exactly why I built &lt;a href="https://www.monifi.app/" rel="noopener noreferrer"&gt;Monifi.app&lt;/a&gt; — a modern, intuitive platform designed to help you manage your personal finances with precision and efficiency. Unlike Excel, Monifi is built with purpose-driven tools that empower you to take full control of your money. Here's what we're building into the core product:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Budgeting&lt;/strong&gt;: Manage your budget intuitively and track your finances with ease.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Income Tracking&lt;/strong&gt;: Record and analyze your income streams for better financial awareness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expense Management&lt;/strong&gt;: Stay on top of your spending and optimize your cash flow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Categorization&lt;/strong&gt;: Organize transactions into custom categories for smarter financial analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Credit Card Tracking&lt;/strong&gt;: Monitor your credit cards and track payments with clarity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Statistics &amp;amp; Visualizations&lt;/strong&gt;: Get real-time charts, identify trends, and gain deep insights into your spending behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Savings Goals&lt;/strong&gt;: Set and track your savings objectives with structured planning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debt Management&lt;/strong&gt;: Tackle your debts using strategies like the snowball method and get closer to financial freedom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Assistance&lt;/strong&gt;: Receive real-time insights and tailored recommendations to make better financial decisions.&lt;/p&gt;

&lt;p&gt;We’re still in active development, but Monifi is already shaping up to be the all-in-one finance OS that power users and tech-savvy folks like you have always wanted.&lt;/p&gt;

&lt;p&gt;🚀 We’d love your input! Join our waitlist and let us know:&lt;br&gt;
What features would you expect from a next-gen personal finance tool?&lt;br&gt;
Your feedback means everything — especially coming from a community like dev.top.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>sideprojects</category>
      <category>webdev</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Patrón anclado o fijo</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Fri, 30 Dec 2022 17:01:23 +0000</pubDate>
      <link>https://dev.to/manuemorales/patron-anclado-o-fijo-1j0j</link>
      <guid>https://dev.to/manuemorales/patron-anclado-o-fijo-1j0j</guid>
      <description>&lt;p&gt;Utilizar un contenedor con un &lt;code&gt;max-width&lt;/code&gt; es un patrón de diseño comúnmente utilizado en el desarrollo de aplicaciones y sitios web. El patrón consiste en utilizar un elemento contenedor con un ancho máximo para encerrar el contenido de la aplicación o sitio web. Esto se hace con el fin de evitar que el contenido se extienda demasiado en pantallas más anchas, lo que puede mejorar la legibilidad y la usabilidad.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjhb1wjhrmqp9qgev50p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjhb1wjhrmqp9qgev50p.png" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Este patrón de diseño a menudo se conoce como "contenedor anclado" o "contenedor fijo". El término "contenedor anclado" se refiere a la idea de que el contenedor está anclado a un tamaño máximo y no se extenderá más allá de ese tamaño, independientemente del tamaño de la pantalla. El término "contenedor fijo" se refiere a la idea de que el contenedor tiene un tamaño fijo y no se redimensionará automáticamente en función del tamaño de la pantalla.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ventajas 😃
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;✅ Ayuda a mantener la apariencia de la aplicación o sitio web consistente en dispositivos de diferentes tamaños.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ Evita que el contenido se extienda demasiado en pantallas más anchas, lo que puede mejorar la legibilidad y la usabilidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ Facilita la creación de diseños responsivos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ Ayuda a evitar que la aplicación o sitio web se vea desproporcionado en dispositivos de pantalla muy grande.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Desventajas 🥹
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Puede limitar la capacidad de la aplicación o sitio web para adaptarse a pantallas muy anchas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Puede requerir el uso de media queries y otras técnicas de diseño responsivo para ajustar el tamaño del contenedor y otros elementos en función del tamaño de la pantalla.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Puede ser más difícil de implementar en algunos casos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Resumen 🤔
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;En resumen, utilizar un contenedor con un max-width puede ayudar a mantener la apariencia de tu aplicación consistente y mejorar la usabilidad en diferentes dispositivos.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>web3</category>
      <category>gamechallenge</category>
    </item>
    <item>
      <title>Tablas vs Cards</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Fri, 23 Dec 2022 17:51:38 +0000</pubDate>
      <link>https://dev.to/manuemorales/tablas-vs-cards-c53</link>
      <guid>https://dev.to/manuemorales/tablas-vs-cards-c53</guid>
      <description>&lt;p&gt;La experiencia de usuario es una consideración importante al elegir entre tablas o tarjetas. En general, ambas opciones pueden ofrecer una experiencia de usuario positiva si se utilizan adecuadamente.&lt;/p&gt;

&lt;p&gt;No hay una respuesta única a esta pregunta, ya que depende del contexto en el que se utilicen las tablas o las tarjetas. En general, ambas opciones pueden ser útiles en diferentes situaciones y pueden tener sus propias ventajas y desventajas.&lt;/p&gt;




&lt;h3&gt;
  
  
  Tablas
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3wyf7n3b5qdjr3yh53m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx3wyf7n3b5qdjr3yh53m.png" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Las tablas son una forma estructurada y bien organizada de presentar información, especialmente cuando se trata de datos numéricos o de un conjunto de elementos que deben &lt;strong&gt;compararse&lt;/strong&gt; entre sí. Las tablas son fáciles de leer y permiten a los usuarios comparar y analizar los datos de manera eficiente.&lt;/p&gt;

&lt;h4&gt;
  
  
  Ventajas de usar tablas:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;✅ Presentan información de manera clara y estructurada: Las tablas son excelentes para presentar datos numéricos o información que debe compararse entre sí de manera detallada.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ Facilitan la lectura y el análisis de los datos: Las tablas son fáciles de leer y permiten a los usuarios comparar y analizar los datos de manera eficiente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ Son versátiles: Las tablas se pueden utilizar para presentar una amplia variedad de tipos de información, desde estadísticas simples hasta datos más complejos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Desventajas de usar tablas:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pueden ser menos atractivas visualmente: Las tablas pueden ser menos atractivas visualmente que otras opciones, como las tarjetas o las gráficas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pueden ser difíciles de diseñar: Diseñar tablas de manera atractiva y fácil de leer puede ser un desafío.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pueden ser menos fáciles de leer en pantallas más pequeñas: Las tablas pueden ser difíciles de leer en pantallas más pequeñas debido a su formato lineal.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Cards
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrvwoofoyjj65wqscv2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqrvwoofoyjj65wqscv2q.png" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Las tarjetas son una opción visualmente atractiva para presentar información de manera amigable y accesible. Las tarjetas suelen contener imágenes y texto breve y se pueden usar para presentar información de manera más atractiva y accesible. Las tarjetas tienen un formato más visual y pueden ser más fáciles de leer en pantallas más pequeñas que otras opciones, como las tablas.&lt;/p&gt;

&lt;h4&gt;
  
  
  Ventajas de usar tarjetas:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;✅ Son visualmente atractivas: Las tarjetas suelen contener imágenes y texto breve y pueden ser más atractivas visualmente que otras opciones, como las tablas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ Son fáciles de leer en pantallas más pequeñas: Las tarjetas tienen un formato más visual y pueden ser más fáciles de leer en pantallas más pequeñas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;✅ Presentan información de manera amigable y accesible: Las tarjetas pueden hacer que la información sea más amigable y accesible para los usuarios.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Desventajas de usar tarjetas:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pueden no ser la mejor opción para presentar grandes cantidades de datos: Las tarjetas pueden no ser la mejor opción para presentar grandes cantidades de datos o para comparar elementos de manera detallada.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pueden ser menos versátiles: Las tarjetas pueden ser menos versátiles que otras opciones, como las tablas, para presentar diferentes tipos de información.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pueden ser menos eficientes para la comparación y el análisis de datos: Las tarjetas pueden no ser tan eficientes como las tablas para comparar y analizar datos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;blockquote&gt;
&lt;p&gt;🎉 Ambas opciones tienen sus propias ventajas y desventajas, y la mejor opción dependerá de tus necesidades y del contexto en el que se utilicen. Es importante considerar tus objetivos y a tu audiencia al elegir entre tablas o tarjetas para asegurarte de que estés ofreciendo la mejor experiencia de usuario posible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/manuelmorales" rel="noopener noreferrer"&gt;☕ Invitarme un café&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>react</category>
    </item>
    <item>
      <title>Herramientas para mejorar la experiencia de usuario (UX)</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Fri, 23 Dec 2022 03:59:15 +0000</pubDate>
      <link>https://dev.to/manuemorales/herramientas-para-mejorar-la-experiencia-de-usuario-ux-1j97</link>
      <guid>https://dev.to/manuemorales/herramientas-para-mejorar-la-experiencia-de-usuario-ux-1j97</guid>
      <description>&lt;p&gt;Existen varias herramientas que puedes utilizar para mejorar la experiencia de usuario (UX) de tu aplicación o sitio web. Algunas de las herramientas más comunes incluyen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhbc188sqwsgry4xx65p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhbc188sqwsgry4xx65p.png" alt=" " width="108" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Google Analytics: Es una herramienta de análisis de tráfico y comportamiento de los usuarios que te permite ver cómo los usuarios interactúan con tu sitio web y qué páginas son las más populares.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa5o66hbcuz3pe1j08vo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa5o66hbcuz3pe1j08vo.png" alt=" " width="108" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hotjar: Es una herramienta que te permite grabar sesiones de usuario y ver cómo los usuarios interactúan con tu sitio web. También incluye una herramienta de encuestas y una herramienta de calor que muestra dónde los usuarios hacen clic en tu sitio web.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65s66t9qvxk1nnrzu0m5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65s66t9qvxk1nnrzu0m5.png" alt=" " width="108" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;UserTesting: Es una herramienta que te permite contratar a usuarios reales para probar tu sitio web o aplicación y proporcionar comentarios y sugerencias.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbplxt0lxvi7rnw8otis6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbplxt0lxvi7rnw8otis6.png" alt=" " width="108" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;OptinMonster: Es una herramienta que te permite crear formularios de suscripción y pop-ups para aumentar el número de suscriptores y clientes potenciales.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8zgklfn8cdv4lqh0s5dd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8zgklfn8cdv4lqh0s5dd.png" alt=" " width="108" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Crazy Egg: Es una herramienta que te permite ver cómo los usuarios interactúan con tu sitio web mediante el uso de mapas de calor y grabaciones de sesiones de usuario.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8xyjvbg96y4m2dbwe8b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8xyjvbg96y4m2dbwe8b.png" alt=" " width="799" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/manuelmorales" rel="noopener noreferrer"&gt;☕ Invitarme un café&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Docz vs Storybook</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Fri, 23 Dec 2022 00:31:46 +0000</pubDate>
      <link>https://dev.to/manuemorales/docz-vs-storybook-411l</link>
      <guid>https://dev.to/manuemorales/docz-vs-storybook-411l</guid>
      <description>&lt;p&gt;&lt;strong&gt;Docz&lt;/strong&gt; es una herramienta para crear documentación de componentes de React, mientras que &lt;strong&gt;Storybook&lt;/strong&gt; es una herramienta para probar y documentar componentes de interfaz de usuario de manera aislada. Ambas herramientas son muy útiles y populares en el mundo de React, pero cual es mejor depende de tus necesidades y preferencias.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pcn6wb1rswxzj6oyuek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pcn6wb1rswxzj6oyuek.png" alt=" " width="108" height="108"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Docz&lt;/strong&gt; es una herramienta relativamente nueva y se ha diseñado específicamente para crear documentación de componentes de React. Ofrece una experiencia de usuario muy intuitiva y una interfaz de usuario sencilla, lo que hace que sea fácil de usar para los desarrolladores. Además, Docz te permite crear documentación de manera rápida y fácil, ya que utiliza Markdown para escribir la documentación y Gatsby para generar la página web.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2j3i53sj54gi9ednqa1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2j3i53sj54gi9ednqa1l.png" alt=" " width="108" height="108"&gt;&lt;/a&gt;&lt;br&gt;
Por otro lado, &lt;strong&gt;Storybook&lt;/strong&gt; es una herramienta más amplia y versátil para probar y documentar componentes de interfaz de usuario. Además de React, también es compatible con otras bibliotecas de componentes de interfaz de usuario, como Angular, Vue y Web Components. Storybook te permite crear historias (casos de uso) para cada componente, lo que te permite probar cada componente en diferentes estados y contextos. Además, Storybook tiene una amplia comunidad de usuarios y una amplia variedad de add-ons y personalizaciones disponibles.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;En resumen, si tu principal objetivo es crear documentación de componentes de React de manera rápida y sencilla, Docz puede ser la mejor opción para ti. Si, por otro lado, necesitas una herramienta más completa y versátil para probar y documentar componentes de interfaz de usuario, entonces Storybook puede ser la mejor opción. Al final del día, la mejor herramienta para ti dependerá de tus necesidades y preferencias específicas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/manuelmorales" rel="noopener noreferrer"&gt;☕ Invitarme un café&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>programming</category>
    </item>
    <item>
      <title>Es buena práctica utilizar formularios dentro de una modal?</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Thu, 22 Dec 2022 23:45:44 +0000</pubDate>
      <link>https://dev.to/manuemorales/es-buena-practica-utilizar-formularios-dentro-de-una-modal-342l</link>
      <guid>https://dev.to/manuemorales/es-buena-practica-utilizar-formularios-dentro-de-una-modal-342l</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypzc4ox2fbqekrp3wtu5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypzc4ox2fbqekrp3wtu5.png" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Es posible utilizar formularios dentro de un modal, pero es importante tener en cuenta algunos aspectos para asegurar una buena experiencia de usuario.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59r548vvg5tb6699r7lr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59r548vvg5tb6699r7lr.png" alt=" " width="799" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Algunas de las ventajas de utilizar formularios dentro de un modal son:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Permiten mostrar información relevante sin necesidad de cambiar de página, lo que puede ser más rápido y sencillo para el usuario.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ayudan a mantener el contexto y evitar distracciones, ya que el usuario sabe que se encuentra en el mismo lugar y sólo se centra en el formulario.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sin embargo, es importante tener en cuenta algunos puntos para asegurar una buena experiencia de usuario:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Asegúrate de que el tamaño del modal sea adecuado para el formulario y que no sea demasiado grande o pequeño.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Utiliza títulos y etiquetas claras para indicar el propósito del formulario y facilitar la comprensión del usuario.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proporciona instrucciones adecuadas y utiliza herramientas de validación para evitar errores y acelerar el proceso de rellenado del formulario.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ofrece la opción de cerrar o cancelar el modal si el usuario no desea completar el formulario.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;En general, utilizar formularios dentro de un modal puede ser una buena opción si se hace de manera adecuada y teniendo en cuenta la experiencia del usuario.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/manuelmorales" rel="noopener noreferrer"&gt;☕ Invitarme un café&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ux</category>
      <category>web</category>
      <category>forms</category>
      <category>modal</category>
    </item>
    <item>
      <title>React · Prop drilling es una mala práctica?</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Thu, 22 Dec 2022 19:59:55 +0000</pubDate>
      <link>https://dev.to/manuemorales/react-prop-drilling-es-una-mala-practica-32ma</link>
      <guid>https://dev.to/manuemorales/react-prop-drilling-es-una-mala-practica-32ma</guid>
      <description>&lt;p&gt;El "tunelamiento" de props en React es una técnica para pasar props a través de componentes que no necesariamente necesitan esas props o incluso son conscientes de ellas. Esto es útil cuando quieres reutilizar un componente en diferentes contextos y necesitas modificar su comportamiento o aspecto sin tener que crear componentes completamente nuevos.&lt;/p&gt;

&lt;p&gt;Para hacer el "tunelamiento" de props, puedes usar un componente intermediario que recibe las props que quieres "tunelar" y luego las pasa a su componente hijo. Por ejemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7iphiais87dvz2sudaz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7iphiais87dvz2sudaz.png" alt=" " width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En este ejemplo, &lt;code&gt;MyButton&lt;/code&gt; y &lt;code&gt;MyLink&lt;/code&gt; son componentes que no necesitan conocer la propiedad color o las propiedades relacionadas con enlaces (href, target, etc.). Sin embargo, al "tunelar" las props a través de ellos, se pueden usar de la misma manera que si fueran componentes que sí conocieran esas propiedades.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hay varias formas de evitar el "tunelamiento" de props en React:
&lt;/h3&gt;

&lt;p&gt;1.- Usa un componente especializado: en lugar de crear un componente genérico que se reutilice en diferentes contextos, crea componentes especializados que estén diseñados para manejar las props específicas que necesitan. Por ejemplo, en lugar de usar un componente genérico para crear botones y enlaces, crea componentes especializados como RedButton y ExternalLink que manejen sus propias propiedades.&lt;/p&gt;

&lt;p&gt;2.- Usa la destructuración de props: en lugar de pasar todas las props a un componente hijo, puedes destructurar las props que necesitas y pasarlas individualmente. Esto hace que sea más fácil ver qué props están siendo utilizadas y por qué.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc97lhsnn53ha7dmt1zag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc97lhsnn53ha7dmt1zag.png" alt=" " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.- Usa la composición en lugar del "tunelamiento" de props: en lugar de pasar props a través de componentes intermediarios, puedes usar la composición para combinar componentes de manera más controlada. Por ejemplo, en lugar de crear un componente genérico que se reutilice en diferentes contextos, puedes crear componentes especializados y combinarlos mediante la composición&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4hvw4rw1sd7xk2wj6xd1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4hvw4rw1sd7xk2wj6xd1.png" alt=" " width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Es importante tener en cuenta que no hay una solución única para evitar el "tunelamiento" de props y que la mejor opción dependerá de las necesidades de tu aplicación. Por lo tanto, deberías evaluar cuál de estas opciones es la más adecuada para ti en cada caso.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/manuelmorales" rel="noopener noreferrer"&gt;☕ Invitarme un café&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>frontend</category>
      <category>webdev</category>
      <category>bestpractices</category>
    </item>
    <item>
      <title>Es mala práctica renderizar JSX en React Hook?</title>
      <dc:creator>Manuel Morales</dc:creator>
      <pubDate>Thu, 22 Dec 2022 00:24:08 +0000</pubDate>
      <link>https://dev.to/manuemorales/es-mala-practica-renderizar-jsx-en-react-hook-15dp</link>
      <guid>https://dev.to/manuemorales/es-mala-practica-renderizar-jsx-en-react-hook-15dp</guid>
      <description>&lt;p&gt;Seguramente mas de uno hemos caído en anti-patrones utilizando React Hooks, y es que React Hooks viene a resolver un problema de reutilización, donde su principal tarea es extraer la lógica de estado de un componente de tal forma que este puede ser probado y re-utilizado independientemente.&lt;/p&gt;

&lt;p&gt;Sin embargo muchos desarrolladores lo utilizan para renderizar JSX, lo cual lo convierte en un anti-patrón. Veamos un ejemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft78wwkg96uk0mwv1j1y1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft78wwkg96uk0mwv1j1y1.png" alt=" " width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hay varias razones por las cuales no tenemos que hacer lo del ejemplo:&lt;/p&gt;

&lt;p&gt;Una función que devuelve JSX puede convertirse simplemente en un componente funcional con Hooks. Si lo escribimos como un componente nos ayudara de varias maneras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Brindar flexibilidad para transmitir propiedades y controlar el comportamiento fácilmente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;También es más fácil memorizar componentes funcionales y evitar renderizaciones adicionales si nada ha cambiado. &lt;em&gt;(También puede hacerlo con Hooks personalizados, pero luego tendrá que hacer uso de useMemo).&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Facilita la definición de una jerarquía clara de elementos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;Ahora ya saben, renderizar JSX dentro de un Hook puede funcionar pero estarás haciendo uso de un anti-patrón 😉&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/manuelmorales" rel="noopener noreferrer"&gt;☕ Invitarme un café&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
  </channel>
</rss>
