Web Speech API Insights

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Las interfaces de voz nos rodean a diario, ayudándonos con algunas tareas. Pero olvidemos la productividad por un segundo y experimentemos con nuestra voz en la Web.
Veremos el estado actual del Web Speech API, exploraremos su potencial en Karaoke, ¡y nos divertiremos un poco!

This talk has been presented at JSNation US 2024, check out the latest edition of this JavaScript Conference.

Ana Rodrigues
Ana Rodrigues
21 min
21 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
¡Hola, JS Nation! Hoy, les mostraré cómo creé un karaoke gamificado usando Web Speech API. El Web Speech API tiene dos partes: reconocimiento de voz y conversión de voz a texto. Originalmente fue construido para karaoke, pero también puede usarse para formularios y dictado. Hay algunas peculiaridades con el API de reconocimiento de voz, como la entrada limitada del micrófono y la variación en la implementación y preocupaciones de privacidad a través de los navegadores. El orador demuestra cómo implementar el reconocimiento de voz en una aplicación de karaoke y prueba sus capacidades de coincidencia de errores. Otros puntos interesantes incluyen consideraciones de diseño de interfaces de voz y el valor de participar en proyectos secundarios divertidos y poco productivos.

1. Parte 1 - Introducción

Short description:

¡Hola, JS Nation! Hoy, les mostraré cómo creé un karaoke gamificado usando Web Speech API. Soy Anna, una desarrolladora frontend en Hattar. Me apasiona la comunidad IndieWeb y he escrito sobre ello en Smash Magazine. ¡Vamos a sumergirnos! Tenía un problema con las canciones de karaoke, así que decidí gamificar la experiencia. Les explicaré cómo utilicé la función de reconocimiento de voz nativa del navegador, es decir, Web Speech API.

¡Hola, JS Nation! Estoy muy feliz de estar aquí con ustedes hoy. Les voy a mostrar cómo he creado mi propio karaoke gamificado en un navegador usando Web Speech API. Así que permítanme presentarme.

Hola, mi nombre es Anna y soy una desarrolladora frontend en la agencia Hattar. Paso la mayor parte de mi tiempo libre en mi blog, y estoy bastante interesada en la comunidad IndieWeb. De hecho, en el pasado, he escrito un caso para ello en Smash Magazine. Así que por favor échenle un vistazo y si están en el chat, por favor envíenme sus sitios web personales y blogs. Me encantaría leerlos.

Bien, antes de comenzar, debo mencionar una cosa en particular. No represento a ningún proveedor de navegadores. Y por eso, no he ido a karaoke en años ahora. Y en realidad pensé que recibiría más invitaciones después de dar esta charla varias veces, pero no ha sucedido. Y también, en realidad soy una gran fan de The Rasmus. No soy una fanática, solo una fan. Y la razón por la que menciono esto es que es la razón por la que esta charla incluso surgió en mi mente. Tenía un problema que necesitaba solucionar.

Así que cada vez que voy a karaoke, solo hay una canción de The Rasmus disponible. Siempre está en el chat en las sombras. Y simplemente no es mi favorita. Así que pop, seguro. Pero necesitaba más. Así que empecé a pensar, está bien, ¿y si tuviéramos más que solo letras en la pantalla? ¿Y si pudiéramos gamificar la experiencia? Porque sé que ganaría. Conozco todas las letras de memoria. Así que me propuse una aventura para crear mi experiencia de karaoke perfecta. Y spoiler, no salió tan bien como imaginé. Así que veamos por qué. Busqué reconocimiento de voz a texto, y todos los resultados que aparecieron eran de empresas privadas que ofrecen este tipo de API como un servicio por un costo. Pero sabemos que hay un reconocimiento de voz nativo del navegador, y es gratis. Así que pensé, no, no voy a gastar dinero en esto. Así que hablemos de Web Speech API, en particular, el reconocimiento de voz.

2. Parte 2 - Web Speech API

Short description:

La Web Speech API tiene dos partes: reconocimiento de voz y conversión de voz a texto. Originalmente fue creada para karaoke, pero también puede usarse para formularios y dictado. Aunque no es compatible con Firefox, Chrome proporciona un motor de reconocimiento basado en servidor. Chrome tiene acceso al servicio de transcripción de Google, mientras que Safari envía datos de voz a Apple. La implementación y las preocupaciones de privacidad varían entre navegadores.

Así que la Web Speech API se divide en dos, el reconocimiento de voz y la conversión de voz a texto, y empieza a ser obvio cómo voy a usar el reconocimiento de voz aquí. Pero en realidad, una de las ideas principales fue creada para karaoke, pero fue para permitir a los desarrolladores usar el reconocimiento de voz como una entrada para formularios, dictado continuo, y control. De hecho, hay un borrador bastante antiguo que detalla cómo debería funcionar esta API en un campo de entrada. Es realmente antiguo, no todo fue implementado, pero sigue siendo una lectura muy interesante.

De hecho, puedes ver esta visión en vivo en una herramienta con la que muchos de nosotros estamos familiarizados. En Chrome, al usar Google Translate, puedes usar la función de micrófono para hablar en un campo de entrada y verlo traducido en texto. Pensé, genial, el código funciona en mi cabeza, así que veamos cuál es el soporte del navegador. Estaba bastante optimista. Fui a MDN, y parece que actualmente no es compatible con Firefox, y cualquier otro navegador aún requiere un prefijo de proveedor o un nombre diferente. Y pensé, está bien, un navegador menos, no es lo peor, sigamos. Incorrecto.

En realidad, este es un resultado más realista, en mi experiencia. Y resulta que la explicación es bastante simple. Esta cita de la página de MDN dice, en algunos navegadores como Chrome, usar el reconocimiento de voz en una página web implica un motor de reconocimiento basado en servidor. Tu audio se envía a un servicio web para el procesamiento de reconocimiento, por lo que no funcionará sin conexión. Correcto. Pensándolo bien, tiene sentido. Necesita acceso a muchos datos para entrenar. Así que los proveedores de navegadores que pertenecen a grandes corporaciones tienen más facilidad con toda la infraestructura necesaria, así como con esos datos para entrenar.

Y esta es una nota importante, los navegadores que usan Chrome no necesariamente tienen acceso al servicio de transcripción de Google. Es un servicio de pago de Google, que Chrome puede usar de forma gratuita. Nuevamente, sí, tiene sentido. Y al probarlo en Safari, se me presentó un popover que decía que los datos de voz de esta aplicación se enviarán a Apple para procesar tus solicitudes. Esto también ayudará a Apple a mejorar su tecnología de reconocimiento de voz. Muy bien. En este punto, me quedan solo dos navegadores. Pero estaba demasiado involucrado, así que no voy a rendirme. Pero tenía curiosidad, ¿qué está pasando en Firefox? Desafortunadamente, no pude estar en contacto con alguien que esté trabajando actualmente en esto, pero me señalaron un hilo esclarecedor que habla sobre sus preocupaciones sobre la privacidad y la implementación. Así que es un hilo realmente interesante. Realmente recomiendo echarle un vistazo, especialmente si tienes curiosidad por ver por qué algunos navegadores toman las decisiones que toman.

3. Parte 3 - Peculiaridades del Reconocimiento de Voz

Short description:

Hay algunas peculiaridades con la API de reconocimiento de voz. Solo puedes usar el micrófono como entrada, y Safari en móviles no lo permite para PWAs. Los teléfonos móviles pueden emitir sonidos de notificación cuando el micrófono se enciende y apaga. Encontré un bookmarklet llamado Select and Listen que lee en voz alta el texto seleccionado. También construí una demo para probar el reconocimiento de voz para la navegación por voz.

Y estaba probando cosas. Resulta que había otras peculiaridades que son bastante importantes. No puedes alimentar flujos a esta API, solo micrófono. Safari en móviles no permitirá el reconocimiento de voz una vez que esté instalado como un PWA. Además, en los teléfonos móviles, pueden emitir un sonido como un sonido de notificación cuando el micrófono se enciende y apaga, y verás por qué esto es importante.

Oh, querido. Pero veámoslo en acción. Trabajemos con lo que tenemos. Y una de las formas más fáciles de ver algo como esto en acción es buscar un bookmarklet. Así que decidí encontrar cosas hechas por otras personas, y de hecho encontré uno realmente interesante llamado Select and Listen. Y la forma en que esto funciona es que visitas una página web, cualquiera que sea, seleccionas el texto que quieres que te lea. Por ejemplo, voy a la página web de JS Nation. Seleccionaré este texto aquí. Y haré clic en mi bookmarklet Select and Listen. Y debería hacer algo.

Ana trabaja como desarrolladora front-end para la agencia Hector. Comenzó a programar como adolescente construyendo sitios de fans y ha estado trabajando como desarrolladora front-end durante los últimos 11 años. Correcto. Así que esta es la prueba de voz. Solo lee cosas. Y esta persona, cuando lo creó, tiene diferentes voces e idiomas también. Así que es realmente, realmente genial. Realmente disfruto eso. Así que decidí construir una pequeña demo, solo usando un par de palabras para ver el reconocimiento de voz en acción. Estaba como, déjame ver si detecta solo algunas cosas. Así que construí una demo. OK, pretendamos que estás en la cocina. Quieres cocinar algo. Tus manos están sucias y quieres tocar tu cosa para verificar la receta o las instrucciones y yendo de un lado a otro. Así que construí una pequeña demo tonta donde activo mi navegación por voz y pido que la página se desplace según lo que digo.

4. Parte 4 - Construyendo Karaoke

Short description:

He creado una demo que puede captar instrucciones de voz para desplazarse en una página web. Ahora, pasemos a construir mi karaoke. Tendrá un botón de inicio y parada, visualización de transcripción, audio, letras y JavaScript. Con algo de estilo, se verá genial. No se requieren habilidades de diseño. Iniciemos el reconocimiento de voz.

Vamos a intentarlo. Sin manos, mira. OK. Desplázate a los ingredientes. Desplázate hacia arriba. Desplázate hacia arriba. Desplázate hacia abajo. De vuelta a las instrucciones, por favor. Tienes que decir por favor. Desplázate hacia arriba. Desplázate hacia arriba. Muy bien. Genial. Genial. Tengo una demo. Solo quiero mostrar mi gato. Tengo una demo. Funciona. Capta lo que estoy diciendo y hace esas pequeñas instrucciones como desplazarse a una parte específica de la página o desplazarse hacia arriba y hacia abajo.

Genial. Creo que estamos listos para construir mi karaoke entonces. Comencemos simple. La forma en que imagino esto es que tendrá un botón de inicio y un botón de parada. Mostraremos nuestra transcripción si quiero solo para verificar que las cosas están funcionando como se espera. Cargaremos nuestro audio, cargaremos nuestras letras y cargaremos nuestro JavaScript. Haremos algo de estilo básico con gradientes y se verá algo así. Correcto. Lo bueno aquí es que no necesitas tener grandes habilidades de diseño porque cualquier cosa que hagas se verá mejor que tu bar local. Confía en mí. Iniciaremos nuestro reconocimiento de voz.

5. Parte 5 - Implementación del Reconocimiento de Voz

Short description:

Pediremos mostrar los resultados intermedios. El reconocimiento de voz se detiene después de un tiempo, así que añadimos un event listener para que comience de nuevo. En los teléfonos móviles, puede haber sonidos molestos cuando el micrófono se apaga y enciende automáticamente. Usaremos una canción infantil, twinkle twinkle little star, como nuestra canción. Cuando comienza el reconocimiento de voz, la canción también comienza. Verificaremos el tiempo actual de la canción y añadiremos una clase CSS para mostrar la línea de la letra actual.

Pediremos mostrar los resultados intermedios. Nada demasiado sofisticado. Gran inglés, gran británico como idioma. Y lo añadiremos a nuestro documento. Captará lo que estamos diciendo, lo pondrá en un div oculto en este caso y lo almacenará y eso debería ser todo.

Correcto. Así que, esta es la parte divertida. El reconocimiento de voz realmente se detiene después de un tiempo. Y tiene sentido porque querrás que funcione constantemente y consuma recursos si no está sucediendo nada realmente. Bueno, ellos no lo saben, pero podría tener sentido. Así que, lo que la gente suele hacer es añadir un event listener que cuando el reconocimiento termina, podemos hacer que comience de nuevo. Y es un poco de trampa, pero ¿recuerdas cuando dije que la última peculiaridad era que en los móviles puede emitir sonidos cuando el micrófono se enciende y apaga? Esto es a lo que me refiero. Así que, en los teléfonos móviles, puede convertirse en una experiencia un poco molesta porque el micrófono se apaga automáticamente y estamos forzándolo a que se vuelva a encender. Así que, puedes escuchar sonidos de notificación del micrófono encendiéndose y apagándose. Es una peculiaridad a tener en cuenta, pero es lo que es.

Es gratis, estamos obteniendo lo que pagamos. Correcto. Sigamos adelante. Obviamente, idealmente, habría usado una canción de The Rasmus, pero el copyright no me lo permite. Así que, vamos por una canción infantil. Añadiremos nuestras letras de manera similar a cómo funcionan los subtítulos en las películas. Añades los segundos en que las líneas aparecen y desaparecen, y añades tu línea en particular. Así que, elegí twinkle twinkle little star porque es bastante corta. ¿Y cuál es la lógica? Correcto. Así que, cuando se inicia el reconocimiento de voz, la canción también comenzará. Verificaremos si el tiempo actual de la canción cae entre el inicio y el final de la línea de letra esperada. Si es así, añadamos una clase que muestre que es una línea de letra actual.

6. Parte 6 - Coincidencia de Errores y Demostración

Short description:

Esta es la lógica. Iniciar reconocimiento de voz, iniciar canción, verificar el tiempo actual, añadir la clase CSS para mostrar la letra actual. Si el tiempo actual es mayor que el tiempo final de una línea de letra, añadir una clase que la marque como pasada. Verificar si lo que dijiste coincide palabra por palabra. Leer las letras, leerlas con palabras ligeramente incorrectas y cantar. La demostración incluye botones de inicio y parada y un botón de cambio.

Esta es la lógica. Se traduce aproximadamente en esto. Iniciar reconocimiento de voz, iniciar canción, verificar el tiempo actual, añadir la clase CSS para mostrar que la letra está actualmente en progreso, y eso debería ser todo.

La misma lógica al revés. Si el tiempo actual es mayor que el tiempo final de una línea de letra, añadamos una clase que la marque como pasada. Una vez que esa línea está en el pasado, hagamos algunas verificaciones. No es muy sofisticado. De hecho, después de revisar nuestras transcripciones, principalmente necesitamos verificar si lo que dijiste, y en realidad lo que la computadora capturó coincide palabra por palabra. Y esto en realidad incluye hacer algunos if-elses conocidos. Todos dijeron un montón de cosas sofisticadas, pero dicho esto, todo lo demás es básicamente añadir y eliminar clases.

Correcto. Vamos a intentarlo. Primero, voy a leer las letras. Luego, voy a leer las letras con palabras ligeramente incorrectas para ver si mi coincidencia de errores funciona. Y luego, desafortunadamente, voy a cantar, y lo siento mucho de antemano. Lo siento mucho. Vamos a intentarlo. Veamos nuestra demostración. Me encanta. Bias. He añadido el botón de inicio y parada. También añadí el botón de cambio, que es algo que en realidad pensé que era bastante divertido de hacer.

Correcto. Vamos a intentarlo. Voy a leerlo primero. Twinkle, twinkle, little star.

7. Parte 7 - Prueba de Coincidencia de Errores

Short description:

How I wonder what you are. Cambié las letras para probar la coincidencia. Twinkle, twinkle, little coat. How I wonder if you will load. Up above the browser high. Like a bug in the sky. Detectó high correctamente pero no bug. Probé otra versión con diamond y coincidió. Hay potencial en la API para demostraciones y proyectos divertidos. Tony Edwards la usó para anotar rimas.

How I wonder what you are. ¡Yay! Bien. He cambiado un poco las letras. Así que, veamos si esto coincide. Twinkle, twinkle, little coat. How I wonder if you will load. Up above the browser high. Like a bug in the sky. Twinkle, twinkle, little star. How I wonder what you are. ¡Yay! Correcto. Así que, no está tan mal. Como, lo detectó. Marcó high como estando en el orden correcto, y no me dio ningún color positivo porque no dije diamond y obtuvo bug en su lugar.

Vamos a intentarlo. Twinkle, twinkle, little star. How I wonder what you are. Up above the world so high. Like a diamond in the sky. Twinkle, twinkle, little star. How I wonder what you are. Up above the world so high. Ahí vamos. Correcto. Modelando mortificante, pero olvidemos eso. La animación amarilla, el texto en ejecución te atrapó. Entonces, ¿cuál es el veredicto? Hay potencial, pero no creo que estemos allí todavía. Pero me divertí. Y mira, hay muchas demostraciones y proyectos divertidos construidos alrededor de esta API. Tony Edwards hizo una masterclass fantástica llamada Beat Rhymes and Edit Tests, y en su masterclass quería ver si el Web Speech API podría ayudarlo a anotar las rimas que se le ocurren.

8. Parte 8 - Diseño de Interfaces de Voz y Futuro

Short description:

Tony señaló que no era perfecto, pero un gran experimento. Echa un vistazo al chat de Stephanie Eccles para el 12 Days of Web Dev Challenge y al capítulo de Wes Bowles sobre la Web Speech API. El subtitulador web se convirtió en una herramienta útil durante la pandemia. Investiga proyectos como Common Voice de Mozilla. Considera enfocarte en el diseño de interfaces de voz y evitar contenido propuesto. Audita tu contenido para que suene conversacional y prueba el habla sintetizada en diferentes dispositivos. Considera la recuperación de errores y los tiempos de espera del habla.

Similar a mí, Tony señaló que no era perfecto, pero fue un gran experimento, y realmente recomiendo ver esta charla. Si quieres aprender más, Stephanie Eccles construyó un conjunto divertido de chat para el 12 Days of Web Dev Challenge, y Wes Bowles, quien también estaba hablando en JS Nation, tiene un capítulo sobre la Web Speech API en su curso gratuito de JavaScript. Y hay muchos otros proyectos que utilizan esta tecnología.

Entonces, durante la pandemia, el subtitulador web se convirtió en una herramienta para muchas, muchas personas para usar en reuniones y conferencias en línea. Ha sido descontinuado, por lo que el código fuente está disponible en GitHub, así que échale un vistazo. Y también hay bastantes polyfills disponibles, implementaciones con WebRTC, y como se mencionó antes, muchas empresas privadas que te ofrecen reconocimiento de voz como servicio.

Entonces, ¿qué sigue? No lo sé. Pero realmente creo que es en eventos como estos donde estas APIs de navegador pueden crecer, si estamos interesados en ellas. Al final del día, las interfaces de voz no van a desaparecer. Mientras tanto, compartiré y apoyaré la actual llamada a la acción al hermano del reconocimiento de voz. Deberías buscar la increíble charla de Leone Watson, Designing Voice Interfaces, donde se presenta una llamada a la acción para apoyar CSS speech. No te arruinaré esta charla, así que realmente deberías verla. Y también hay proyectos como el Common Voice de Mozilla, donde puedes donar tu voz, y lo más importante, al menos desde tu acento, y también ofrecerte como voluntario para hacer algo de control de calidad.

Seamos realistas. ¿Vas a usar la Web Speech API en el trabajo? Probablemente no. Así que tal vez pienses, está bien, genial, lo que sea. ¿Cómo es esto útil para mi trabajo diario? Incluso para accesibilidad, lo más probable es que te pidan que agregues una de esas malditas barras de herramientas inaccesibles en su lugar. Pero si lo haces, enfócate en el diseño de interfaces de voz. Y aquí hay algunas cosas a considerar. Evita el contenido propuesto. Considera la retención y la velocidad al destino. Audita tu contenido para ver qué tan conversacional y hablado suena. Por ejemplo, las FAQs son un ejemplo fantástico de buen contenido amigable con la voz que es directo a la pregunta y respuesta. Audita cómo suena tu contenido en aislamiento. Cosas como haz clic aquí y leer más no suelen significar nada cuando se escuchan en aislamiento. Prueba cómo suena el habla sintetizada en diferentes dispositivos. Así que estate en tu portátil y tu móvil, considera qué indicaciones dirigen la conversación, y otro buen ejemplo es cuando usas tu teléfono y llamas a un servicio y te dan múltiples opciones y es tan difícil memorizar solo escuchando las opciones. No cubrí esto en mi demostración, pero considera la recuperación de errores. Sin tiempos de espera del habla, sin entender, y sin errores de coincidencia. Porque como yo, no todos van a tener un inglés nativo perfecto, que probablemente es con lo que se entrena el dato.

9. Parte 9 - Diversión con Proyectos Paralelos No Productivos

Short description:

Hay libros fantásticos sobre este tema. Hicimos demostraciones funcionales, pasamos tiempo experimentando con APIs de navegador y nos divertimos construyendo cosas no productivas. Los proyectos paralelos no necesitan ser monetizados o convertirse en proyectos de código abierto. Aburrido está bien. Crea tu propio espacio seguro. Gracias.

Hay libros fantásticos sobre este tema. Realmente recomiendo echarles un vistazo. Y entonces, ¿por qué esto? Mira lo que hicimos. Hicimos algunas demostraciones funcionales. Terminé pasando mucho tiempo leyendo y experimentando con la API del navegador, en este caso, la API de live speech, elementos de medios HTML. No lo parece, pero hubo mucho JavaScript involucrado en esto.

Terminé teniendo contenido para una charla, animaciones CSS, y simplemente pasé un gran momento. Y mi objetivo con esta charla era que puedas aprender construyendo cosas inútiles. Y solo recientemente me di permiso para construir cosas no productivas que no son para mi trabajo. Y en el pasado, me sentiría culpable si no hacía cosas productivas después del trabajo. Los proyectos paralelos no necesitan ser monetizados para ser válidos. No necesitan convertirse en paquetes NPM o proyectos de código abierto. Y si alguna vez piensas que tu idea no es lo suficientemente buena, ignora ese pensamiento. Aburrido está bien. Crea tu propio espacio seguro. Y me divertí mucho construyendo esto, y me sentí tan satisfecho después de que funcionara.

Así que, gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top ContentPremium
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Construyendo un Asistente AI Activado por Voz con Javascript
JSNation 2023JSNation 2023
21 min
Construyendo un Asistente AI Activado por Voz con Javascript
Top Content
This Talk discusses building a voice-activated AI assistant using web APIs and JavaScript. It covers using the Web Speech API for speech recognition and the speech synthesis API for text to speech. The speaker demonstrates how to communicate with the Open AI API and handle the response. The Talk also explores enabling speech recognition and addressing the user. The speaker concludes by mentioning the possibility of creating a product out of the project and using Tauri for native desktop-like experiences.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced 2023React Advanced 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Top Content
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
Solucionando Problemas de Rendimiento en React
React Advanced 2023React Advanced 2023
22 min
Solucionando Problemas de Rendimiento en React
Top Content
This Talk discusses various strategies to improve React performance, including lazy loading iframes, analyzing and optimizing bundles, fixing barrel exports and tree shaking, removing dead code, and caching expensive computations. The speaker shares their experience in identifying and addressing performance issues in a real-world application. They also highlight the importance of regularly auditing webpack and bundle analyzers, using tools like Knip to find unused code, and contributing improvements to open source libraries.
De Monolito a Micro-Frontends
React Advanced 2022React Advanced 2022
22 min
De Monolito a Micro-Frontends
Top Content
Microfrontends are considered as a solution to the problems of exponential growth, code duplication, and unclear ownership in older applications. Transitioning from a monolith to microfrontends involves decoupling the system and exploring options like a modular monolith. Microfrontends enable independent deployments and runtime composition, but there is a discussion about the alternative of keeping an integrated application composed at runtime. Choosing a composition model and a router are crucial decisions in the technical plan. The Strangler pattern and the reverse Strangler pattern are used to gradually replace parts of the monolith with the new application.

Workshops on related topic

Construyendo una Aplicación de Shopify con React & Node
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Construyendo una Aplicación de Shopify con React & Node
Top Content
Workshop
Jennifer Gray
Hanna Chen
2 authors
Los comerciantes de Shopify tienen un conjunto diverso de necesidades, y los desarrolladores tienen una oportunidad única para satisfacer esas necesidades construyendo aplicaciones. Construir una aplicación puede ser un trabajo duro, pero Shopify ha creado un conjunto de herramientas y recursos para ayudarte a construir una experiencia de aplicación sin problemas lo más rápido posible. Obtén experiencia práctica construyendo una aplicación integrada de Shopify utilizando el CLI de la aplicación Shopify, Polaris y Shopify App Bridge.Te mostraremos cómo crear una aplicación que acceda a la información de una tienda de desarrollo y pueda ejecutarse en tu entorno local.
Construye una sala de chat con Appwrite y React
JSNation 2022JSNation 2022
41 min
Construye una sala de chat con Appwrite y React
Workshop
Wess Cope
Wess Cope
Las API/Backends son difíciles y necesitamos websockets. Utilizarás VS Code como tu editor, Parcel.js, Chakra-ui, React, React Icons y Appwrite. Al final de este masterclass, tendrás los conocimientos para construir una aplicación en tiempo real utilizando Appwrite y sin necesidad de desarrollar una API. ¡Sigue los pasos y tendrás una increíble aplicación de chat para presumir!
Problemas difíciles de GraphQL en Shopify
GraphQL Galaxy 2021GraphQL Galaxy 2021
164 min
Problemas difíciles de GraphQL en Shopify
Workshop
Rebecca Friedman
Jonathan Baker
Alex Ackerman
Théo Ben Hassen
 Greg MacWilliam
5 authors
En Shopify a gran escala, resolvemos algunos problemas bastante difíciles. En este masterclass, cinco oradores diferentes describirán algunos de los desafíos que hemos enfrentado y cómo los hemos superado.

Tabla de contenidos:
1 - El infame problema "N+1": Jonathan Baker - Vamos a hablar sobre qué es, por qué es un problema y cómo Shopify lo maneja a gran escala en varios APIs de GraphQL.
2 - Contextualizando APIs de GraphQL: Alex Ackerman - Cómo y por qué decidimos usar directivas. Compartiré qué son las directivas, qué directivas están disponibles de forma predeterminada y cómo crear directivas personalizadas.
3 - Consultas de GraphQL más rápidas para clientes móviles: Theo Ben Hassen - A medida que tu aplicación móvil crece, también lo harán tus consultas de GraphQL. En esta charla, repasaré diversas estrategias para hacer que tus consultas sean más rápidas y efectivas.
4 - Construyendo el producto del futuro hoy: Greg MacWilliam - Cómo Shopify adopta las características futuras en el código actual.
5 - Gestión efectiva de APIs grandes: Rebecca Friedman - Tenemos miles de desarrolladores en Shopify. Veamos cómo estamos asegurando la calidad y consistencia de nuestras APIs de GraphQL con tantos colaboradores.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
De 0 a Autenticación en una Hora para tu Aplicación JavaScript
JSNation 2023JSNation 2023
57 min
De 0 a Autenticación en una Hora para tu Aplicación JavaScript
WorkshopFree
Asaf Shen
Asaf Shen
La autenticación sin contraseña puede parecer compleja, pero es fácil de agregar a cualquier aplicación utilizando la herramienta adecuada.
Mejoraremos una aplicación JS de pila completa (backend Node.js + frontend Vanilla JS) para autenticar usuarios con contraseñas de un solo uso (correo electrónico) y OAuth, incluyendo:
- Autenticación de usuario: Gestión de interacciones de usuario, devolución de JWT de sesión / actualización- Gestión y validación de sesiones: Almacenamiento seguro de la sesión para solicitudes posteriores del cliente, validación / actualización de sesiones
Al final del masterclass, también abordaremos otro enfoque para la autenticación de código utilizando Flujos de Descope en el frontend (flujos de arrastrar y soltar), manteniendo solo la validación de sesión en el backend. Con esto, también mostraremos lo fácil que es habilitar la biometría y otros métodos de autenticación sin contraseña.