No sabes cómo hacer SSR

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Un recorrido por la evolución del SSR en los últimos doce años. Cubriremos cómo han cambiado las técnicas, los problemas típicos, las herramientas que puedes utilizar y diversas soluciones, todo desde el punto de vista de mi experiencia personal como consumidor y mantenedor.

This talk has been presented at DevOps.js Conf 2024, check out the latest edition of this JavaScript Conference.

FAQ

Emanuele Stoppo es un colaborador principal del proyecto Biome y miembro del equipo de plataforma del proyecto Aster. Su viaje personal en SSR comenzó con su primera experiencia en programación usando PHP y el marco de trabajo MVC Codingigniter.

SSR, o renderizado en el lado del servidor, es un método donde un servidor genera el HTML completo de una página y lo envía al cliente. Originalmente, todos los sitios web se creaban mediante SSR, pero con el tiempo y la llegada de nuevas tecnologías, como Node.js, los patrones y herramientas han evolucionado.

Emanuele utilizó SSR durante su primera experiencia profesional con PHP y Codingigniter, y más adelante en su carrera, implementó animaciones en el cliente usando jQuery con SSR. Además, creó su propio marco de SSR para integrar React con un CMS basado en .NET debido a restricciones en un proyecto empresarial.

Next.js es un marco de trabajo moderno que facilita el desarrollo de aplicaciones web con React. Emanuele trabajó con Next.js en un contexto donde el backend utilizaba lambdas, y tuvo que construir su propia capa de implementación para adaptar Next.js a este entorno serverless.

Astro es una plataforma en la que Emanuele Stoppo ha trabajado, que utiliza SSR de manera intensiva. En Astro, SSR se ejecuta generando páginas como archivos de artefacto que luego son gestionados de manera flexible por adaptadores específicos para diferentes plataformas.

En su proyecto empresarial, Emanuele quería utilizar React pero se enfrentó a restricciones debido al uso de un CMS basado en .NET, similar a WordPress. Esto lo llevó a desarrollar su propio marco de SSR para integrar React de manera efectiva dentro de las limitaciones del proyecto.

Emanuele Stoppa
Emanuele Stoppa
23 min
15 Feb, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla cubre el viaje personal del orador hacia el renderizado del lado del servidor (SSR) y la evolución de los frameworks de desarrollo web. Explora el uso de jQuery para animaciones en SSR, los desafíos enfrentados al integrar React con Umbraco y la creación de un framework SSR personalizado. La charla también discute los beneficios de Next.js y el uso de artefactos sin servidor para la implementación. Por último, destaca las características de Astro, incluida su capacidad de función por ruta.
Available in English: You Don’t Know How to SSR

1. Introducción a SSR y Mi Viaje Personal

Short description:

Hoy les hablaré sobre SSR y mi viaje personal en SSR. Primero, vamos a sumergirnos en ello. Mi nombre es Emanuele Stoppo, soy italiano y vivo en Irlanda. Soy un colaborador principal del proyecto Biome y pertenezco al equipo de plataforma del proyecto Aster. Comenzaremos nuestro viaje hablando sobre este marco de codificación, que es básicamente mi primera experiencia con SSR. Y terminaremos nuestro viaje con Astro. Ahora, ¿qué es el renderizado en el lado del servidor? Es cuando un servidor te proporciona HTML y renderizas una página en tu servidor. Comencemos con mi primera experiencia en 2010 como desarrollador de PHP trabajando con Codingigniter, un marco basado en MVC.

¡Hola a todos! Hoy les hablaré sobre SSR y mi viaje personal en SSR. Vamos a sumergirnos en ello. Primero, las presentaciones en orden. Mi nombre es Emanuele Stoppo, soy italiano, como podrán entender por mi acento, y vivo en Irlanda. Soy un colaborador principal del proyecto Biome y pertenezco al equipo de plataforma del proyecto Aster. También soy un ávido jugador de consola.

Para cuando este video se publique, probablemente estaré jugando Final Fantasy 7. Ahora, comenzaremos nuestro viaje hablando sobre este marco de codificación, que es básicamente mi primera experiencia con SSR. Y terminaremos nuestro viaje con Astro. Ahí es donde las cosas se pondrán interesantes. Ya verán por qué.

Primero que nada, ¿qué es el renderizado en el lado del servidor? La cosa es que ha cambiado a lo largo de los años. Cuando comencé, el renderizado en el lado del servidor era la forma en que se creaban los sitios web. Así es como se hacían. Pero luego llegó Node.js, nuevos patrones, nuevas posibilidades, nuevas herramientas, y así sucesivamente. Las cosas cambiaron, nuevos patrones, y demás. Básicamente, es cuando un servidor te proporciona HTML y tú se lo das a tu cliente. Así que renderizas una página en tu servidor y eso es todo. Muy básico, ¿verdad? Ahora entendemos qué es SSR.

Comencemos con mi primera experiencia. Fue en 2010, justo después de salir de la universidad. PHP fue mi primera experiencia. Era un desarrollador de PHP. Tuve la oportunidad de trabajar con Codingigniter, que es un marco basado en MVC, que significa Modelo-Vista-Controlador. Solo para darles una idea de qué es este patrón. Básicamente, tienes tu propia clase, que es el controlador que tiene toda la lógica de negocio de tu página. Luego tienes el modelo. El modelo es generalmente esa entidad que se encarga de todo lo relacionado con tus datos.

2. Operaciones CRUD, Lenguajes de Plantillas y jQuery

Short description:

Entonces, las operaciones CRUD. Validaciones y demás. Se conecta con la base de datos y se comunica con la base de datos. Luego, tienes la vista. Puedes tener múltiples vistas o reutilizar todas las vistas. La vista suele ser un lenguaje de plantillas. jQuery llegó como una revolución. Es cómo aprendí JavaScript. Aquí tienes un ejemplo de cómo lo usé con SSR. Teníamos requisitos para animaciones sin salir de la página del usuario. Así que creamos un nuevo punto final con un modelo de controlador vista y mostramos solo el HTML deseado.

Entonces, las operaciones CRUD. Validaciones y demás. Se conecta con la base de datos y se comunica con la base de datos. Y luego tienes la vista. Entonces, la vista generalmente, la llamas dentro de tu controlador. También puedes tener múltiples vistas o reutilizar todas las vistas. Y la vista, generalmente es un lenguaje de plantillas. Este es un ejemplo de un lenguaje de plantillas. Si usas, por ejemplo, Vue y Svelte, ya sabes qué es un lenguaje de plantillas. Y así es como solía hacerlo en aquel entonces. No ha cambiado mucho. Como con Vue y Svelte, tienen una sintaxis diferente. Pero, quiero decir, el concepto. Es el mismo. Interpolamos el lenguaje de plantillas con las variables. Generamos HTML y se lo damos al navegador. Eso es lo que hice al principio. Así es como empecé.

Y luego llegó jQuery. jQuery fue una revolución en ese momento. Es cómo aprendí JavaScript. Y aquí tienes un ejemplo de cómo lo usé con SSR. Así que tenía mi jQuery. Y había otro marco de MVC que se llama Grails. Grails se basa en este lenguaje llamado Groovy. Se compila en JVM. Como dije, sigue siendo un MVC. Y lo que hice fue básicamente que teníamos algunos requisitos donde queríamos tener algunas animaciones sin salir de la página del usuario. Entonces, lo que solías hacer en ese momento era crear un nuevo punto final con un modelo de controlador vista. Específicamente, para estas necesidades, generabas solo el HTML que deseabas tener.

3. jQuery, Central Touch y React

Short description:

Con jQuery, podías reemplazar un HTML por otro utilizando animaciones. La representación del lado del cliente era realmente interesante. Yo estaba a cargo de los controladores y las vistas. Luego tenemos Central Touch, un marco móvil todo en uno para aplicaciones web. No generó mucho interés. Luego llegó React con características refrescantes. Quería usarlo, pero había un pero. Mi gerente dijo, vamos a usarlo.

Y luego con jQuery, simplemente haces un get. Obtienes tu HTML y luego haces animaciones y así sucesivamente. Entonces, con jQuery, podías reemplazar un HTML por otro utilizando animaciones. Y así es como era la representación del lado del cliente en aquel entonces. Fue realmente... Sí, quiero decir, al final, podías hacer todas tus estrategias y cosas así. Pero así fue como pude jugar con este tipo de cosas. Fue realmente, realmente interesante. Y también estaba a cargo de los controladores y las vistas. Así que simplemente podía ir allí en el marco, crear un nuevo controlador, hacer parámetros, y fue realmente divertido en ese momento.

Luego tenemos Central Touch. No voy a molestarte con Central Touch. Esencialmente, es un marco móvil todo en uno para construir aplicaciones web. Tienes tus tiendas, tienes tus componentes, vistas, modelos y todo. Pero no despertó mucho interés. Fue unos años antes de que llegara React. Fue realmente aburrido. No es que... Quiero decir, aprendí muchas cosas, pero básicamente estabas encerrado en el marco. Y ahora es donde empezamos a obtener cosas interesantes. Sí. Luego llegó React y tenía características realmente agradables. Y algunas de estas características eran realmente refrescantes. Y quería usarlas. ¿Verdad? Así que, sí. Pero, no. Siempre hay un pero. Así que tenía este proyecto. Quería usar mucho React. Y mi gerente dijo, vamos a usarlo.

4. Using React with Umbraco

Short description:

En un mundo empresarial con restricciones, el sitio web estaba impulsado por Umbraco, similar a WordPress. Pero yo quería usar React. Así que escribí mi propio marco de SSL y seguí tres principios. Se utilizaron Go Blast state manager y Redux. Node.js fue el tiempo de ejecución.

Pero aún así, estamos en un mundo empresarial, por lo que las cosas no son perfectas. En este proyecto, había algunas restricciones. Por lo tanto, el sitio web estaba impulsado por un marco de Microsoft.NET. Específicamente, un CMS llamado Umbraco. Y parecía ser como un WordPress. Tienes tu oficina de respaldo. Puedes personalizarlo. Pero también, el sitio web es proporcionado. El sitio web real es renderizado por WordPress. Lo mismo ocurre con Umbraco. Entonces... Pero yo quería usar React. Entonces... ¿Cómo lo hice? Bueno... Sí, escribí mi propio marco de SSL. Y, sí. Como tú... Sí, es un meme. Pero, quiero decir, eso es cierto. Pero lo que pasa es que en ese momento no había frameworks para hacer eso. Ni siquiera en .NET. Quiero decir, estaba escribiendo en terreno desconocido en ese momento. Así que tuve que idear algo. Bueno, lo que pasa es que escribir tu propio marco de SSL no es tan difícil. En realidad, es más fácil de lo que piensas. Solo hay, como, tres principios que debes seguir. Entonces, debes tener un Go Blast state manager. En ese momento, Redux era el lugar al que ir. Necesitas tener un tiempo de ejecución. Entonces, en ese momento, Node.js era la opción a seguir.

5. Creating an SSL Framework

Short description:

No podías extenderlo por todas partes. Una vez que tengas estas tres cosas, puedes tener tu propio marco de SSL. Tenía un marco .NET con un motor de plantillas. Una biblioteca permitía pasar un marco de React para obtener el HTML real en tiempo de ejecución. Los fundamentos para crear tu propio marco de SSL implican conectar estos fundamentos utilizando bibliotecas disponibles.

No podías extenderlo por todas partes. Simplemente lo ejecutas y te da lo que necesitas usando un script. Y luego, simplemente accedes a la página.

Entonces, una vez que tengas estas tres cosas, puedes tener tu propio marco de SSL. Veamos brevemente lo que hice en ese momento. Tenía un marco .NET. Había un motor de plantillas, como vimos antes. Por lo general, accedes a una página y tienes tu propio estado global de Redux. Ese es un objeto global. Y, básicamente, para cada página, inyectas el estado global inicial de tu página. ¿De acuerdo?

Luego, debes tener este runtime. Afortunadamente, en ese momento, existía esta biblioteca que te permitía pasar un marco de React. Y era capaz de darte el HTML real. Era, como, en tiempo de ejecución dentro del motor de plantillas. Era realmente rápido. No había ninguna sobrecarga, incluso porque, por lo general, las páginas que contienen componentes de React eran realmente pequeñas. Entonces, no necesitábamos renderizar toda la página. ¿De acuerdo? Teníamos páginas donde teníamos, como, un componente de React aquí o un componente de React allá. Entonces, era una mezcla de HTML estático y componentes de React. Una vez que tienes este HTML, lo tienes en tu motor de plantillas. Y al final, volvemos a nuestra página. Necesitamos obtener realmente el ID donde se renderizó el componente de React e iterarlo. Como puedes ver, no es tan difícil. Estos son los fundamentos para crear tu propio marco de SSL. Y luego solo necesitas conectar estos fundamentos utilizando las bibliotecas que tienes. Y el trabajo está hecho. No es ciencia espacial. De hecho, estaba realmente orgulloso de ese trabajo. Y fui a verificarlo. Este webpack todavía utiliza la misma lógica.

6. Introducción a Next.js y Restricciones Empresariales

Short description:

Esa fue una elección realmente buena. Next.js es un gran marco de trabajo que facilitó la vida con GetStaticProps. Sin embargo, las restricciones empresariales plantearon desafíos ya que nuestro backend solo utilizaba lambdas. La versión inicial del sitio web fue penalizada negativamente para SEO.

Entonces, quiero decir, esa fue una elección realmente buena. Claro, las cosas han cambiado. Pero aún funciona. De acuerdo.

Ahora vamos con un enfoque más moderno. Y ahí es donde entra en juego Next.js. Sí, también trabajé con Next.js. Es un marco de trabajo realmente genial. Y con GetStaticProps, la vida fue mucho, mucho más fácil. Como, GetStaticProps eliminó una gran parte de la red que expliqué, porque eso es lo que Next.js hacía en ese momento. Entonces, crea tu propio estado global y demás. Pero Next.js también tiene más, como enrutamiento progresivo del lado del cliente y otras cosas. Es un marco de trabajo realmente bueno. De hecho, lo es. Pero, ya sabes, la empresa es diferente, sí. Entonces, en ese momento, teníamos restricciones realmente extrañas.

Entonces, nuestro backend no tenía ningún servidor en absoluto. Pero solo podíamos usar lambdas. Como, el backend estaba utilizando lambdas. Y para ellos, era genial. Pero para nosotros, eso fue bastante desafiante. La versión inicial del sitio web fue SPAS. Entonces, teníamos una página HTML. Estudiamos JavaScript. Y así, no. No. CreateRectApp. Entonces, fue un fork de CreateRectApp. Pero el SEO del sitio web fue penalizado negativamente.

7. Exportando Páginas como Artefactos Serverless

Short description:

Next.js introdujo la opción de exportar cada página como un artefacto serverless. Construí mi propia capa de implementación, un metaframework, que se conectaba a la construcción serverless de Next.js. Esto nos permitió crear lambdas para cada página, implementarlos y tener navegación del lado del cliente. La capa compacta traducía el evento pasado desde la lambda a la página de artefacto.

Entonces, tuvimos que hacer algo. En ese momento, Next.js introdujo una nueva opción llamada salida serverless, o algo así. Y permitiría exportar cada página como un artefacto serverless. No una lambda, un artefacto serverless. Y fue genial para nosotros. Fue genial.

Entonces, ¿qué hicieron? Bueno. Adivina qué. Construí mi propia capa de implementación. Es como si hubiera construido mi propio metaframework. Exactamente eso. Y fue realmente, realmente divertido.

Ahora, veamos qué hice. Muy bien. Entonces, Next.js, como dije antes, crea este artefacto para cada página. Muy bien. Luego, mi metaframework se conecta esencialmente a la construcción serverless de Next.js. Entonces, programáticamente, ejecutamos la construcción. Esta construcción me proporciona toda la información necesaria para crear una lambda para cada página. Al final de la construcción, teníamos todas estas lambdas que podíamos implementar en los diferentes entornos, ejecutarlas en cada solicitud y obtener solo la página que solicitamos, y tener navegación del lado del cliente desde allí. Y así es como Next.js solía funcionar en ese momento.

Entonces, esta lambda, en realidad, no es solo una lambda. Así que fui más allá. De acuerdo. En realidad, hay una lambda real construida dinámicamente. Luego teníamos la capa compacta. Una capa compacta que toma el evento pasado desde la lambda y crea una solicitud de respuesta. Y estas solicitudes de respuesta se pasaban a la página de artefacto. Porque el artefacto no era, como dije antes, compatible con AWS lambda. Solo toma, como, una solicitud entrante similar a Node.js. Entonces, necesitábamos una capa compacta para traducir esta información.

8. La Capa Compacta, Terraform y Astro

Short description:

Necesitábamos una capa compacta para traducir la información. Todo lo que hice de código abierto ahora está archivado. Eventualmente, llegamos a Astro, donde SSG es SSR con un paso adicional. Astro tiene una forma genérica de exportar páginas y los adaptadores pueden manipular los artefactos según los requisitos. Además, creé características específicas en Astro, como función por ruta.

Entonces, necesitábamos una capa compacta para traducir esta información. Y luego teníamos las fuentes de Terraform. Entonces, el marco beta creaba dinámicamente todos los archivos de Terraform que luego se llamaban al final de la construcción.

Entonces, eventualmente, ¿qué hice? Todo lo que hice de código abierto. Tomé toda la lógica que construí para la empresa. Solo agregué una CLI al frente con algunas opciones. Y, sí, quiero decir, pensé que había hecho algo genial. Quiero decir, seguro, es un caso muy específico lo que tengo. Pero tal vez alguien más esté enfrentando el mismo problema. Así que lo hice de código abierto. Pero ahora está archivado porque Next.js eliminó la opción serverless. Entonces, quiero decir, ya no podemos usarlo. Y eventualmente, llegamos a Astro. Entonces, trabajo en Astro y en realidad construí algunas cosas interesantes que te voy a mostrar. Pero antes de eso, voy a revelar algunos secretos sobre Astro. Entonces, conoces sobre SSG, generación de sitios estáticos o sitios web estáticos. ¿Pero sabes que en realidad SSG en Astro es SSR con un paso adicional? Sí, porque cuando lo construimos, en realidad ejecutamos SSR.

Creamos todas estas páginas, como archivos de artefactos correctos. Los importamos, los ejecutamos y luego fueron como una respuesta solicitada cuando obtenemos su respuesta, el HTML, y lo renderizamos. Y los ponemos en un archivo HTML. Así que es SSR en todas partes, ¿sabes? Pero entonces, ¿qué es SSR en Astro? Bueno, en realidad es SSR con un paso de construcción diferente. Entonces, solo tenemos una configuración diferente y emitimos estos artefactos de una manera diferente, de manera genérica. Entonces, los adaptadores realmente pueden consumirlos y construirlos, en realidad, como prefieran. Entonces, tenemos una forma genérica de exportar y también una interfaz para exportar las páginas de las rutas, llamémoslas así.

Y luego los adaptadores, como Node.js, Deno, Vercel, Cloudflare, Netlify, y así sucesivamente, que tienen diferentes requisitos, pueden tomar estos artefactos, manipularlos si es necesario, y crear sus propias configuraciones basadas en sus necesidades. Es como lo que hice antes, como con el metaframework. Esencialmente, eso es lo que hace Astro. Pero hay más. Recientemente, creé un par de características específicas, realmente buenas, en Astro, utilizando SSR y varias otras herramientas.

9. Astro's Function per Route

Short description:

La función por ruta de Astro permite múltiples puntos de entrada y es útil para páginas pesadas con mucho código.

Una de ellas es la función por ruta. Entonces, ¿qué significa esto? Por defecto, así es como se ve SSR en Astro. Tenemos un solo archivo que maneja todas tus rutas. Entonces, cuando golpeamos y cuando el servidor, en realidad el cliente, solicita una ruta, lo que hacemos es importar dinámicamente el artefacto que pertenece a esa página y devolver su respuesta. En cambio, con la función por ruta, tenemos múltiples puntos de entrada. Entonces, es realmente un caso específico. Nadie necesita algo así. Pero si tienes páginas realmente pesadas con mucho código, mucho JavaScript, a veces este caso de uso puede ayudarte, porque esencialmente es como dividir el código en la plataforma serverless. De acuerdo. Otra cosa increíble es el Middleware de Edge. Hace unos meses, lancé y desarrollé, y lanzamos el Middleware de Astro, y unos meses después, agregamos el Middleware de Edge que se puede usar en plataformas como AWS, Vercel, y así sucesivamente. Así es como funciona el Middleware de Astro. Tienes tu solicitud, pasa a través del Middleware. Tenemos estos Locals de Astro que básicamente son información data que puedes pasar a tu componente de Astro. Puede ser cualquier cosa, es un objeto, y también puedes pasar funciones. Y los usas para renderizar tu componente, o tal vez no. Y finalmente, obtienes una respuesta. En Edge, esto es un poco diferente, pero logramos usar el mismo Middleware y hacer que funcione. Entonces, todo comienza desde la solicitud. Generamos esta función de Edge. Por lo general, el Middleware de Edge es una función de Edge, que está muy cerca del usuario, por eso se llama Edge. Y esta función de Edge llama al Middleware de Astro real. Pero luego, necesitamos renderizar el componente de Astro. Entonces, ¿cómo lo hacemos? Esto depende de la plataforma. En Vercel, en realidad tienes una función Next, pero también en Netify, por ejemplo, puedes llamar a Next. O en realidad, en Vercel, puedes hacer una llamada fetch al origen. Entonces, el origen es el archivo real que renderiza tu página, tu componente, cualquier cosa que devuelva algo de HTML. Y como dije antes, en Vercel, dentro de la función de Edge, creamos una función Next. ¿Qué hace esta función? En realidad, hace una llamada fetch al origen, y cuando hacemos la llamada fetch, pasamos estos locals. Entonces, estos locals, como dije antes, en este caso, se serializan y se pasan a través de encabezados al componente de Astro, y luego eventualmente se pueden usar. Y todo se hace usando Rollup y Vite. Hay un error tipográfico. Disculpa por eso. Muchas gracias. Espero que hayas disfrutado mi viaje. Y adiós. Adiós.

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

Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
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.
El Nuevo Router de Aplicaciones Next.js
React Summit 2023React Summit 2023
27 min
El Nuevo Router de Aplicaciones Next.js
Top Content
Today's Talk is about the Next.js App Router, which has evolved over the years and is now a core feature of Next.js. The Talk covers topics such as adding components, fetching remote data, and exploring layouts. It also discusses submitting form data, simplifying code, and reusing components. The App Router allows for coexistence with the existing pages router and enables data fetching at the layout level using React Server Components.
Diseño Opt-in – La Nueva Era de los Marcos de React
React Advanced 2023React Advanced 2023
23 min
Diseño Opt-in – La Nueva Era de los Marcos de React
This Talk discusses opt-in design in web development, focusing on API design and understanding good defaults. Opt-in design allows developers to start with minimal tools and gradually add complexity as needed. The principles of opt-in design include finding the lowest common denominator, making complexity easy to add, and prioritizing the user experience. The Talk also explores the concept of opt-in design in React and Astro, as well as the comparison between React and Solid frameworks. Server rendering and streaming in React are highlighted, along with the importance of suspense boundaries for a better user experience.
Todo Sobre Astro
React Day Berlin 2023React Day Berlin 2023
28 min
Todo Sobre Astro
Astro is a powerful framework for content-driven websites, with its own syntax and the ability to use favorite front-end libraries. It has seen significant improvements in Astro 2 and Astro 3, including view transitions and improved performance. Astro 4 introduces features like a powerful dev toolbar, content caching, and internationalization support. The Astro community is highly regarded, and Astro is being used for production websites. Astro also supports migrating legacy websites and integrating with headless CMSs.
AWS Lambda bajo el capó
Node Congress 2023Node Congress 2023
22 min
AWS Lambda bajo el capó
Top Content
In this Talk, key characteristics of AWS Lambda functions are covered, including service architecture, composition, and optimization of Node.js code. The two operational models of Lambda, asynchronous and synchronous invocation, are explained, highlighting the scalability and availability of the service. The features of Lambda functions, such as retries and event source mapping, are discussed, along with the micro VM lifecycle and the three stages of a Lambda function. Code optimization techniques, including reducing bundle size and using caching options, are explained, and tools like webpack and Lambda Power Tuning are recommended for optimization. Overall, Lambda is a powerful service for handling scalability and traffic spikes while enabling developers to focus on business logic.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
Top Content
Featured Workshop
Eve Porcello
Eve Porcello
El conocimiento de las herramientas de AI es fundamental para preparar el futuro de las carreras de los desarrolladores de React, y la suite de herramientas de AI de Vercel es una vía de acceso accesible. En este curso, examinaremos más de cerca el Vercel AI SDK y cómo esto puede ayudar a los desarrolladores de React a construir interfaces de transmisión con JavaScript y Next.js. También incorporaremos APIs de terceros adicionales para construir y desplegar una aplicación de visualización de música.
Temas:- Creación de un Proyecto de React con Next.js- Elección de un LLM- Personalización de Interfaces de Transmisión- Construcción de Rutas- Creación y Generación de Componentes - Uso de Hooks (useChat, useCompletion, useActions, etc)
Tracing: Frontend Issues With Backend Solutions
React Summit US 2024React Summit US 2024
112 min
Tracing: Frontend Issues With Backend Solutions
Top Content
Featured WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Los problemas de frontend que afectan a tus usuarios a menudo son provocados por problemas de backend. En esta masterclass, aprenderás cómo identificar problemas que causan páginas web lentas y malos Core Web Vitals usando tracing.
Luego, pruébalo tú mismo configurando Sentry en un proyecto Next.js ya preparado para descubrir problemas de rendimiento, incluyendo consultas lentas a la base de datos en una sesión interactiva de programación en pareja.
Saldrás de la masterclass siendo capaz de:- Encontrar problemas de backend que podrían estar ralentizando tus aplicaciones de frontend- Configurar tracing con Sentry en un proyecto Next.js- Depurar y solucionar problemas de rendimiento deficiente usando tracing
Este será un evento en vivo de 2 horas donde tendrás la oportunidad de codificar junto con nosotros y hacernos preguntas.
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
React Summit 2025React Summit 2025
91 min
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
Featured Workshop
Eric Burel
Eric Burel
Únete a nosotros en el viaje desde el desarrollo frontend con React hasta el desarrollo fullstack con Next.js. Durante esta masterclass, seguiremos el tutorial oficial de Next.js Learn con Eric Burel, entrenador profesional y autor de NextPatterns.dev. Juntos, configuraremos un sitio web con Next.js y exploraremos sus características del lado del servidor para construir aplicaciones de alto rendimiento.
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
Workshop
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.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
Workshop
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión