Crear una base de conocimientos con Gatsby, Contentful y AWS

Rate this content
Bookmark

En este masterclass, veremos cómo crear una base de conocimientos utilizando Gatsby, un Framework generador de sitios estáticos que utiliza React y GraphQL, Contentful, un CMS sin cabeza para gestionar el contenido y desplegarlo en AWS S3.

This workshop has been presented at React Summit 2022, check out the latest edition of this React Conference.

FAQ

Gatsby es un generador de sitios moderno construido sobre React. Se utiliza para construir sitios web que son eficientes en términos de velocidad y optimizados para SEO, generando sitios estáticos que pre-renderizan todas las páginas en el momento de la compilación.

Contentful es un CMS Headless que proporciona una API para integrar contenidos en cualquier plataforma digital. Ofrece una gran flexibilidad y es ideal para proyectos que requieren manejar el contenido de manera independiente del diseño del frontend.

Se puede implementar un proceso de CI/CD utilizando AWS Amplify para conectar el repositorio de código que contiene el proyecto Gatsby. AWS Amplify detecta cambios en el repositorio y despliega automáticamente nuevas versiones del sitio cuando se realizan actualizaciones.

Un webhook es una forma de permitir que las aplicaciones envíen información automatizada a otras aplicaciones en tiempo real. Se utiliza en proyectos de desarrollo web para desencadenar eventos o acciones automáticamente, como la reconstrucción de un sitio cuando se actualiza el contenido en un CMS como Contentful.

AWS ofrece una infraestructura robusta y escalable para alojar aplicaciones web, proporcionando servicios como AWS Amplify que facilitan la implementación, gestión y escalado de aplicaciones, además de integrarse fácilmente con otros servicios AWS para funciones adicionales.

Un generador de sitios estáticos es una herramienta que genera páginas HTML en el momento de la compilación, optimizando tiempos de carga y SEO. Ejemplos de estos generadores incluyen Gatsby, Jekyll y Hugo.

Abdelrhman Adel
Abdelrhman Adel
152 min
04 Jul, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Este masterclass se centra en la creación de una base de conocimientos utilizando Gatsby, Contentful y AWS. Cubre los conceptos básicos de Gatsby, incluyendo la generación de sitios estáticos y el enrutamiento. El masterclass también introduce Gatsby Content Mesh, que proporciona una capa de GraphQL para agregar diversas fuentes de datos. Luego, se demuestra cómo integrar Contentful, un CMS sin cabeza, con Gatsby utilizando el complemento Gatsby-Source-Contentful. El masterclass concluye con el despliegue de la aplicación en AWS Amplify y la configuración de webhooks para la implementación automática.

1. Introducción al Masterclass

Short description:

Hola al Masterclass de construcción de una base de conocimientos utilizando Gatsby, Contentful y AWS. Mi nombre es Abderrahman Aedel. Soy un arquitecto de soluciones en Rangle. Hoy vamos a construir una base de conocimientos utilizando Gatsby, Contentful y AWS.

Así que, hola al Masterclass de construcción de una base de conocimientos utilizando Gatsby, Contentful y AWS. Mi nombre es Abderrahman Aedel. Soy un arquitecto de soluciones en Rangle. Y hoy seré tu guía en este masterclass.

En Rangle, creamos cosas que importan. Creemos en hacer lo correcto, de la manera correcta, y luego mejorarlo. Hemos estado en Toronto y Amsterdam. Desde hace más de nueve años, fundamos en 2013, y tenemos más de 150 miembros en nuestro equipo. Servimos a muchos clientes que están construyendo sus propias capacidades de creación de productos a través de inmersión y sistemas de habilitación.

Hoy vamos a construir una base de conocimientos utilizando Gatsby, Contentful y AWS. Esta es una tabla de contenido de lo que vamos a hacer. Dado que la mayoría de lo que vamos a hacer es codificación en vivo, voy a intentar ir sobre esto muy rápido al principio, y luego podemos pasar directamente al código.

2. Introducción a la Base de Conocimientos y Gatsby

Short description:

Una base de conocimientos es una biblioteca en línea de autoservicio donde se almacenan todos los datos y el conocimiento, todo lo que tienes, ya sea para ayudar a los miembros del equipo o a los clientes. Hoy vamos a construir una página de inicio, una página de categorías y una página para cada categoría, y para cada categoría tendremos una serie de artículos. Los sitios web pueden ser renderizados a través de renderización en el lado del servidor o renderización en el lado del cliente. Surgió un nuevo concepto llamado generadores de sitios estáticos, que toman todas las consultas y las obtienen de antemano, generando páginas HTML reales y construyéndolas en el servidor. Gatsby es un generador de sitios moderno que cumple con la mayoría de los requisitos modernos y está construido sobre React. Te mostraremos lo fácil que es construir algo con Gatsby y lo rápido que es migrar de algo estático a algo dinámico utilizando Contentful.

Primero, vamos a entender qué es una base de conocimientos y por qué elegimos una base de conocimientos en lugar de un blog normal o un sitio web de noticias o algo así. Una base de conocimientos es una biblioteca en línea de autoservicio. Es un lugar donde se almacenan todos los datos y el conocimiento, todo lo que tienes, ya sea para ayudar a los miembros del equipo o a los clientes.

Por ejemplo, si eres una empresa y quieres tener un lugar donde los nuevos empleados puedan ingresar cuando se unan y entender cómo funciona el proceso de incorporación, cómo funciona la comunicación, o algo así, puedes tener una base de conocimientos en su lugar. Si eres una empresa que brinda servicios a clientes y quieres documentar todo lo que deseas en un solo lugar, en lugar de que todos tengan preguntas y pidan servicio al cliente, simplemente puedes crear una base de conocimientos o un centro de ayuda o un lugar donde puedas hacer doble clic en una página y puedes poner todas las preguntas frecuentes y artículos y puedes ponerlos en categorías y cosas así o guías de solución de problemas. Y sí, el cliente o los miembros del equipo simplemente se unirían, ingresarían y encontrarían la respuesta correcta a la pregunta en lugar de molestarte con múltiples preguntas.

Hoy vamos a construir una página de inicio, una página de categorías y una página para cada categoría, y para cada categoría tendremos una serie de artículos que también tendrán una página de contenido enriquecido.

Primero, hablemos de cómo se renderizan los sitios web, porque el concepto de los generadores de sitios estáticos es muy nuevo, o no nuevo, pero mucha gente no sabe cómo funcionan los generadores de sitios estáticos. Así que vamos a empezar desde el principio. ¿Cómo se renderizan los sitios web? Al principio, cuando salió Internet, solo había una forma de renderizar los sitios web, así que se llamaba renderización en el lado del servidor. Bueno, no había un nombre porque era la única forma de hacerlo, donde tienes un servidor y el cliente o el usuario escribe la URL en el navegador y luego envía una solicitud HTTP a un servidor, que hace la magia, genera una página HTML completa con todo lo que necesitarías, y luego lo envía de vuelta al navegador donde el navegador pegaría el HTML y lo renderizaría en el navegador.

Y luego, cada vez que quieres cambiar a otra página, como si estás en la página de inicio y quieres ir a la ayuda o algo así, harías clic en un enlace, en una etiqueta a, que enviaría otra solicitud HTTP, obtendría todo el HTML del servidor y luego reemplazaría todo con este nuevo HTML. El servidor utiliza plantillas para generar dinámicamente páginas HTML completas. Por ejemplo, si tienes un sitio web PHP y envías una solicitud GET a esta página, se manejará y luego se colocarán todas las variables o los datos reales en una plantilla HTML y luego se enviará de vuelta al navegador.

Y después de un tiempo, surgió un nuevo concepto llamado renderización en el lado del cliente. Surgió generalmente con aplicaciones de una sola página o con la generación de envío de solicitudes de API. Aún tienes un cliente y un servidor y luego envías la primera llamada de API al servidor y luego obtienes una página HTML vacía con un montón de scripts de JavaScript adjuntos a ella y luego el cliente o el navegador lo tomaría y daría el control de JavaScript para obtener todo lo que necesitas del servidor con solicitudes de API y luego manipular directamente el DOM o el HTML en la página. Así que en lugar de tener todo enviado de vuelta como antes, ahora obtienes una página HTML de marcador de posición muy vacía que no tiene nada significativo, solo un montón de scripts y luego estos scripts se hacen cargo y generan el HTML real.

Como puedes ver aquí, el cliente renderiza la página vacía y JavaScript renderiza el contenido más tarde. Y si lo miras desde algunos aspectos como el tiempo de renderización, el tiempo de renderización aquí es inconsistente porque el cliente es en realidad el que hace el trabajo real, mientras que con múltiples clientes hay múltiples rendimientos, como si tienes una PC de alta gama es diferente a tener un teléfono móvil de gama muy baja. Y para el SEO, la optimización de motores de búsqueda, fue muy mala cuando salió porque los rastreadores antes de esto, como el rastreador de motores de búsqueda y los rastreadores son como un montón de scripts que los motores de búsqueda utilizan para rastrear la web y archivar sus datos para que cuando busques algo lo tengas todo allí. Entonces, el rastreador iría a un enlace y obtendría una página HTML vacía y no encontraría contenido significativo en ella y de esta manera obtendrías una página vacía que no se archivaría o sería muy mala para el ranking de SEO. Después de un tiempo, muchos rastreadores o muchos motores de búsqueda se adaptaron, pero no fue tan rápido y no funcionaba al 100% hasta hace poco, supongo. El tiempo de compilación fue muy rápido y el almacenamiento en caché solo ocurría en el lado del cliente porque sí, como solo obtienes la misma página cada vez, no hay almacenamiento en caché que pueda ocurrir, pero el cliente estaba almacenando en caché las solicitudes de API en el cliente, depende de cómo lo configures, por supuesto, pero normalmente lo almacenaría en caché pero no lo haría. Y para solucionar este problema, principalmente con el SEO, surgió un nuevo concepto que es una mezcla de la primera cosa, que es la renderización en el lado del servidor y la segunda cosa, la renderización en el lado del cliente. Entonces, para aplicaciones de una sola página, cada vez que envías la primera llamada de API, lo siento, la primera solicitud HTTP en lugar de tener una página HTML muy vacía enviada a ti, tendrías como que el servidor haría la primera renderización como si estuviera sucediendo en el cliente y luego te enviaría la página HTML completa donde el cliente la renderizaría y luego sucedería algo llamado rehidratación donde rehidratarías el estado y funcionarías como una aplicación de una sola página normal. Entonces, JavaScript aún se haría cargo, pero de esta manera, si un rastreador de motores de búsqueda entra en una página como esta, obtendrías todo lo que necesita desde el primer momento, algo diferente. Algunos aspectos de esto son que el tiempo de renderización era lento, por supuesto, más lento porque el servidor aún generaría el HTML o como renderizaría la primera renderización en el tiempo de ejecución, pero esto solucionó el problema porque el rastreador obtendría la página HTML completa. El tiempo de compilación fue rápido porque sí, sigue siendo igual que el de la renderización en el lado del cliente y el almacenamiento en caché se podía hacer en esta etapa utilizando un tercero como Cloudflare y algunos frameworks lo agregaron más tarde, pero no está ahí de serie. Y esto estuvo bien hasta que los sitios web impulsados por contenido se hicieron muy famosos.

Entonces, ¿qué es un sitio web impulsado por contenido? Un sitio web impulsado por contenido es cualquier sitio web en el que principalmente el objetivo principal sea proporcionar contenido en lugar de tener muchas tareas en él. No es un panel de control o una aplicación de redes sociales, no es una aplicación web, sino un sitio web que tiene mucho contenido que principalmente es texto enriquecido, como imágenes y cosas así, como un blog, un sitio web de noticias, un sitio web de una empresa, sitios web de marketing o una base de conocimientos.

Cuando los sitios web impulsados por contenido tuvieron los generadores de sitios estáticos, surgieron.

Entonces, ¿qué es un generador de sitios estáticos? Aún tenemos un cliente y un servidor. Pero algo sucede en el servidor, incluso antes de que solicites la llamada. Solicitas la solicitud HTTP. Entonces, lo que sucede es que haces todo como una aplicación de una sola página normal, pero en lugar de obtener los datos y renderizarlos en el tiempo de ejecución, lo haces en el tiempo de compilación. Entonces, el generador del lado del servidor, el generador de sitios estáticos, tomaría todas las consultas que tienes y las obtendría de antemano, generando páginas HTML reales y construyéndolas en el servidor. Entonces, cada vez que quieras hacer una llamada de API, lo siento, una solicitud HTTP, enviarías la solicitud HTTP al servidor y el servidor te daría esa página HTML prerrenderizada lista para usar. Y luego la operación continúa como de costumbre, la renderización en el lado del servidor. Entonces, la aplicación aún se rehidrataría y la aplicación de una sola página se haría cargo. No solo genera esto, sino que también se encarga del enrutamiento, por lo que generarías un montón de archivos JSON que tienen los datos para otras páginas. Entonces, en lugar de enviar múltiples llamadas de API para obtener también el contenido de las otras páginas, simplemente buscarías este JSON, lo colocarías en la plantilla y listo. Tienes la otra página lista, incluso después de que la aplicación de una sola página comienza a funcionar.

En cuanto a los aspectos aquí, el tiempo de renderización es más rápido porque hay más renderización. La mayor parte del trabajo ya se ha realizado en el tiempo de compilación. El SEO es muy bueno porque los rastreadores ahora pueden obtener los datos más rápido que nunca. El tiempo de compilación es menor, por supuesto, porque estás haciendo muchas cosas y también ocupas más espacio. Pero si hablamos de un montón de páginas HTML, realmente no parece mucho espacio. Y el almacenamiento en caché, por supuesto, es compatible porque las páginas HTML están ahí y la mayoría de los frameworks admiten el almacenamiento en caché de serie. Entonces, para resumir esto, la renderización en el lado del cliente, el tiempo de renderización es inconsistente, el SEO es malo, el tiempo de compilación es rápido y el almacenamiento en caché solo ocurre en el lado del cliente, la renderización en el lado del servidor, el tiempo de renderización es lento, el SEO es bueno, el tiempo de compilación es rápido y el almacenamiento en caché se puede hacer a través de un tercero, como parcialmente compatible. El generador de sitios estáticos tendría un tiempo de renderización más rápido, un buen SEO, un tiempo de compilación lento y el almacenamiento en caché compatible de serie.

Pero la limitación aquí para el generador de sitios estáticos sería que tienes que tener un sitio estático para usar un generador de sitios estáticos, ¿sabes? Está literalmente en el nombre. No puedes hacer esto para un panel de control, no puedes hacer esto para una aplicación que tiene muchas cosas que son muy diferentes, por ejemplo, un nombre de usuario o datos de usuario. No puedes usar esto para una página de perfil para todos los usuarios porque no puedes generar páginas para información confidencial, ¿sabes? Pero puedes hacerlo para un sitio de noticias, para un sitio de blogs o, sí, en nuestro caso aquí, una base de conocimientos.

Y eso nos lleva a Gatsby. Gatsby se autodenomina un generador de sitios moderno, no solo un generador de sitios estáticos porque se ha adaptado a la mayoría de los requisitos modernos y puede ofrecerte casi todo lo que necesitas cuando se trata de sitios web normales. Y lo bueno es que admite la mayoría de las cosas, bueno, sí, casi todo de serie. Está construido sobre React. Entonces, si tienes conocimientos de React, incluso si estás familiarizado con React, la curva de aprendizaje es muy baja para ti y puedes, fácilmente, en un par de días, tener algo funcionando con Gatsby. Es muy fácil. No me llevó mucho tiempo trabajar con ello. Así que debería ser súper fácil.

Y permíteme dejar algo claro aquí, lo que estoy tratando de lograr hoy no es solo mostrar Gatsby o este tipo de escalas, sino que quiero mostrarte lo fácil que es construir algo. Y más tarde, cuando usemos Contentful, también quiero mostrar lo fácil y rápido que es migrar de algo estático a algo súper dinámico. Y también con la implementación, debería ser fácil y directo para ti.

Entonces, eso nos lleva al final de la parte teórica. Y ahora deberíamos pasar al código. Antes de eso, tenemos un panel de preguntas y respuestas que puedes encontrar en Zoom, donde puedes hacer preguntas que solo los panelistas verán y luego podemos responderlas más tarde, o simplemente puedes dejar tu pregunta en el chat. También tenemos con nosotros a Matt Van Voorst, estamos muy contentos de tenerlo aquí, es un ingeniero de software de Contentful y estará encantado de compartir con nosotros o responder cualquier pregunta relacionada con Contentful. Así que, sí, eso es todo, vamos directo al grano.

QnA

Watch more workshops on topic

Construir con SvelteKit y GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Construir con SvelteKit y GraphQL
Top Content
Featured WorkshopFree
Scott Spence
Scott Spence
¿Alguna vez has pensado en construir algo que no requiera mucho código de plantilla con un tamaño de paquete pequeño? En esta masterclass, Scott Spence irá desde el hola mundo hasta cubrir el enrutamiento y el uso de endpoints en SvelteKit. Configurarás una API de GraphQL en el backend y luego usarás consultas de GraphQL con SvelteKit para mostrar los datos de la API de GraphQL. Construirás un proyecto rápido y seguro que utiliza las características de SvelteKit, y luego lo desplegarás como un sitio completamente estático. Este curso es para los curiosos de Svelte que no han tenido una experiencia extensa con SvelteKit y quieren una comprensión más profunda de cómo usarlo en aplicaciones prácticas.

Tabla de contenidos:
- Inicio e introducción a Svelte
- Inicializar el proyecto frontend
- Recorrido por el proyecto esqueleto de SvelteKit
- Configurar el proyecto backend
- Consultar datos con GraphQL
- Recuperación de datos en el frontend con GraphQL
- Estilización
- Directivas de Svelte
- Enrutamiento en SvelteKit
- Endpoints en SvelteKit
- Despliegue en Netlify
- Navegación
- Mutaciones en GraphCMS
- Envío de mutaciones GraphQL a través de SvelteKit
- Preguntas y respuestas
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured 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.
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
React Advanced Conference 2022React Advanced Conference 2022
95 min
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
Featured WorkshopFree
Sabin Adams
Sabin Adams
En este masterclass, obtendrás una visión de primera mano de lo que es la seguridad de tipo de extremo a extremo y por qué es importante. Para lograr esto, construirás una API de GraphQL utilizando herramientas modernas y relevantes que serán consumidas por un cliente de React.
Prerrequisitos: - Node.js instalado en tu máquina (12.2.X / 14.X)- Se recomienda (pero no es obligatorio) utilizar VS Code para las tareas prácticas- Un IDE instalado (se recomienda VSCode)- (Bueno tener) *Un conocimiento básico de Node.js, React y TypeScript
GraphQL para Desarrolladores de React
GraphQL Galaxy 2022GraphQL Galaxy 2022
112 min
GraphQL para Desarrolladores de React
Featured Workshop
Roy Derks
Roy Derks
Hay muchas ventajas en utilizar GraphQL como fuente de datos para el desarrollo frontend, en comparación con las API REST. Nosotros, los desarrolladores, por ejemplo, necesitamos escribir mucho código imperativo para recuperar datos y mostrarlos en nuestras aplicaciones y manejar el estado. Con GraphQL, no solo puedes reducir la cantidad de código necesario para la obtención de datos y la gestión del estado, sino que también obtendrás una mayor flexibilidad, mejor rendimiento y, sobre todo, una mejor experiencia de desarrollo. En este masterclass aprenderás cómo GraphQL puede mejorar tu trabajo como desarrollador frontend y cómo manejar GraphQL en tu aplicación frontend de React.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Modelado de Bases de Datos Relacionales para GraphQL
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Modelado de Bases de Datos Relacionales para GraphQL
Top Content
WorkshopFree
Adron Hall
Adron Hall
En esta masterclass profundizaremos en el modelado de datos. Comenzaremos con una discusión sobre varios tipos de bases de datos y cómo se mapean a GraphQL. Una vez que se haya establecido esa base, el enfoque se desplazará a tipos específicos de bases de datos y cómo construir modelos de datos que funcionen mejor para GraphQL en varios escenarios.
Índice de contenidosParte 1 - Hora 1      a. Modelado de Datos de Bases de Datos Relacionales      b. Comparando Bases de Datos Relacionales y NoSQL      c. GraphQL con la Base de Datos en menteParte 2 - Hora 2      a. Diseño de Modelos de Datos Relacionales      b. Relación, Construcción de Tablas Multijoin      c. Complejidades de Consulta de Modelado de Datos Relacionales y GraphQL
Prerrequisitos      a. Herramienta de modelado de datos. El formador utilizará dbdiagram      b. Postgres, aunque no es necesario instalar esto localmente, ya que estaré utilizando una imagen de Dicker de Postgres, de Docker Hub para todos los ejemplos      c. Hasura

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

De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Vue.js London Live 2021Vue.js London Live 2021
24 min
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Top Content
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
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.
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.
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.
Solucionando Problemas de Rendimiento en React
React Advanced Conference 2023React Advanced Conference 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.