Escalando WordPress con Next.js

Rate this content
Bookmark

Por más moderna que sea la web, WordPress sigue siendo el rey. No es el más escalable, pero sigue siendo convincente con su larga historia y UX. ¿Cómo podemos aprovechar Next.js para llevar WordPress a la web moderna? Recorreremos las herramientas que Next.js nos proporciona para escalar WordPress al mundo. Hablaremos sobre qué APIs podemos usar para manejar fácilmente el contenido de WordPress y cómo podemos convertir las partes dinámicas en estáticas.

This talk has been presented at React Summit Remote Edition 2021, check out the latest edition of this React Conference.

FAQ

WordPress es un sistema de gestión de contenido (CMS) que, según datos de Build with Trends, es utilizado por el 40% de los principales sitios web. A pesar de la evolución tecnológica, sigue siendo relevante debido a su gran base de usuarios y su amplia aceptación en la industria.

Un enfoque 'Headless' en WordPress significa utilizar WordPress como un sistema back-end para manejar datos y contenido, pero sin utilizar su parte front-end. En cambio, se utilizan tecnologías como APIs para entregar el contenido a cualquier cliente, permitiendo mayor flexibilidad y rendimiento mejorado.

Jamstack es una arquitectura de desarrollo que genera sitios web estáticos utilizando HTML, JavaScript y pre-renderización en tiempo de compilación. Se relaciona con WordPress al usarlo como cabeza para administrar contenido que luego se sirve como sitios estáticos a través de herramientas como Next.js.

Usar Jamstack con WordPress permite combinar la gestión de contenido fácil de WordPress con la velocidad, seguridad y costos reducidos de los sitios estáticos. Esto se logra mediante la pre-renderización de páginas y el servicio de contenido a través de CDN, mejorando el rendimiento y la escalabilidad.

WPGraphQL es un complemento para WordPress que permite a los usuarios consultar datos de WordPress usando GraphQL, una alternativa eficiente a la API REST estándar. Esto facilita la integración de WordPress con tecnologías modernas y frameworks como Next.js para desarrollos más rápidos y optimizados.

El Next.js WordPress Starter es un proyecto de código abierto que facilita la creación de nuevos sitios estáticos de WordPress utilizando el framework React Next.js. Permite obtener datos de WordPress durante el tiempo de compilación y usarlos para construir sitios optimizados y eficientes.

WordPress puede manejar tráfico alto de manera más eficiente mediante el uso de técnicas como el almacenamiento en caché y la generación de sitios estáticos. Estas técnicas reducen la carga en el servidor al servir contenido pregenerado desde CDN, lo que puede manejar mejor los picos de tráfico.

Colby Fayock
Colby Fayock
9 min
14 May, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
WordPress sigue siendo ampliamente utilizado, con más de 800 millones de instalaciones. Jamstack es un enfoque moderno para construir sitios web estáticos en HTML que utilizan JavaScript y APIs para contenido dinámico. Servir archivos HTML estáticos es más rápido que las soluciones basadas en servidores como WordPress. Servir archivos estáticos desde almacenamiento o un CDN permite una escalabilidad infinita. WordPress es una opción convincente para usuarios no técnicos debido a su familiaridad y ecosistema próspero.

1. Introducción a WordPress y el Jamstack

Short description:

Vamos a hablar sobre WordPress y cómo podemos escalarlo con Next.js. WordPress todavía se utiliza ampliamente, con más de 800 millones de instalaciones. Discutamos cómo podemos aprovechar WordPress para alimentar sitios estáticos de Jamstack. La arquitectura sin cabeza permite solicitudes asíncronas del lado del cliente y el uso de generadores de sitios estáticos. El Jamstack es un enfoque moderno para construir sitios web estáticos en HTML que utilizan JavaScript y APIs para contenido dinámico.

¡Hola a todos! Vamos a hablar sobre WordPress y cómo podemos escalarlo con Next.js. Entonces, ¿quién soy yo? Soy Colby Fayok. Soy el que abraza a BB8 y Kylo Ren allí. Trabajo con la comunidad de desarrollo como defensor del desarrollador para Appletools. Puedes encontrarme prácticamente en cualquier lugar de la web buscando mi nombre en Google, ya que soy el único en el mundo.

Comencemos abordando el CMS en la habitación. Es 2021, y algunos desarrolladores se estremecerían ante la idea de WordPress. Pero francamente, todavía vivimos en un mundo de WordPress. Según Build with Trends, si observamos la distribución de CMS de los 1 millón principales sitios, el 40% de los sitios web están utilizando WordPress. No estoy seguro de cuán precisa es esta cifra, pero si observas el número de detecciones en el sitio de Built with, hay más de 800 millones de instalaciones de WordPress. Esa es una cifra asombrosa. Si bien es posible que no todos queramos usar WordPress, es realista que se quede para el futuro previsible. Entonces, hablemos de cómo podemos aprovechar el CMS Rey y usarlo para alimentar nuestros sitios Jamstack estáticos en 2021.

Entonces, para comenzar, ¿qué significa Headless en realidad? Con nuestra pila tradicional, alguien visita una página en el navegador. El navegador se conecta al servidor. El servidor realiza todo el trabajo, como solicitar datos de nuestra base de datos, donde luego devuelve el HTML de la página y devuelve una respuesta. Y si tenemos suerte, devolverá esa caché. Finalmente, el navegador muestra esa respuesta a la persona que visita el sitio. Con un enfoque Headless, esa solicitud al servidor es asíncrona en el cliente. En este ejemplo en particular, la persona visitaría una página en el navegador e inmediatamente recibiría una respuesta directamente desde el almacenamiento. Una vez que esa página se carga en el navegador, el navegador iniciará otra solicitud a un servidor, que puede cargar todo el contenido dinámico. Pero me imagino que te preguntarás, ¿por qué querríamos hacer una solicitud del lado del cliente a un CMS como WordPress? Y esa no es necesariamente la forma recomendada, ahí es donde entran en juego los generadores de sitios estáticos para hacer el trabajo pesado antes de que tu página esté en el navegador, lo que ha dado lugar a lo que la gente ahora llama el Jamstack.

Tal vez hayas oído hablar del Jamstack en Twitter, o tal vez sea completamente nuevo, pero ¿qué es exactamente? En el núcleo, los sitios Jamstack son sitios web estáticos en HTML. No es una idea nueva, pero es un enfoque moderno. Por lo general, utilizan JavaScript en el navegador para realizar cualquier solicitud a tus APIs que proporcionarían contenido dinámico. O pueden utilizar esas APIs en tiempo de compilación y servir ese contenido dinámico sin una solicitud adicional del lado del cliente. Un ejemplo que podemos imaginar es construir una aplicación React. Esto serviría como nuestro reproductor de JavaScript. Querríamos utilizar la API de WordPress para proporcionar el contenido y los datos dinámicos.

2. WordPress y el JAMstack

Short description:

Compilaremos el sitio a un sitio estático utilizando Next.js u otra herramienta, que es un generador de sitios estáticos. Los sitios JAMstack tienen características incorporadas de rendimiento, confiabilidad y costo. Servir archivos HTML estáticos es más rápido que las soluciones basadas en servidores como WordPress. El equilibrio de carga y la escalabilidad automática no son soluciones perfectas para manejar el tráfico. Servir archivos estáticos desde almacenamiento o un CDN permite una escalabilidad infinita. El almacenamiento es económico y administrar servidores puede ser costoso. WordPress es una opción convincente para usuarios no técnicos debido a su familiaridad y ecosistema próspero.

Compilaremos eso en un sitio estático utilizando Next.js u otra herramienta, que, junto con muchas otras características, es un generador de sitios estáticos.

Ahora, si todo esto es nuevo para ti, suena como mucho trabajo. ¿Por qué no usar simplemente WordPress tal como siempre lo hacemos? Lo genial de los sitios JAMstack es que tienen muchas características convincentes incorporadas. Por defecto, estamos cumpliendo con lo que AWS considera una infraestructura bien diseñada. Estas son características que a todos nos importan, como rendimiento, confiabilidad y costo.

Con la mayoría de las soluciones basadas en servidores como WordPress, hay muchas opciones para acelerar las cosas. Para WordPress en particular, eso incluye complementos para caché o algún trabajo personalizado bajo el capó. Pero cada página sigue siendo una solicitud al servidor, lo que está sujeto a altibajos. Por otro lado, servir un archivo HTML plano y estático simplemente será rápido. En lugar de pasar tiempo renderizando en un servidor, sirves un archivo estático directamente desde el almacenamiento o un CDN. Si bien esto se puede hacer con un WordPress predeterminado, a menudo es mucho más complicado. En algunos de los complementos, esa caché puede servir un archivo HTML, pero aún lo sirven desde un servidor regular, no desde el almacenamiento. Con cualquier servidor, generalmente pagamos por la cantidad de tráfico que esperamos. Si bien la mayoría de las veces eso es predecible, todos esperamos que algún día uno de nuestros artículos se vuelva viral. Y si eso sucede, las personas que visitan nuestro sitio serán las que lo paguen con velocidades lentas y tiempos de espera.

Existen soluciones como el equilibrio de carga y la escalabilidad automática, pero no son soluciones perfectas y es posible que no siempre manejen cierto tráfico. Volviendo al hecho de que estamos sirviendo archivos HTML estáticos, porque estamos sirviendo archivos directamente desde el almacenamiento, o mejor aún, archivos estáticos directamente desde un CDN, alerta de palabra de moda, eso significa que nuestro sitio web para el usuario se escalará infinitamente. Ese sitio estático sobrevivirá al abrazo de la muerte de Reddit cuando tu publicación se vuelva viral. Pero administrar servidores no siempre es barato. Si bien un blog personal con poco tráfico puede administrarse con unos pocos dólares al mes, cuanto más crezca ese tráfico, más rápido crecerá ese costo. Si bien tienes opciones nuevamente como el equilibrio de carga y la escalabilidad automática, esos servicios se suman rápidamente y sin ellos, corres el riesgo de que tu sitio se ralentice o, peor aún, tenga tiempo de inactividad. El almacenamiento es realmente, realmente económico. Podemos mantener proyectos estáticos enormes en AWS utilizando S3 a un costo muy bajo. Pero incluso si todavía administramos un servidor, ese uso será mucho, mucho menor con solo administradores de contenido o solicitudes que se realizan en tiempo de compilación.

Aunque hay muchas soluciones o opciones sin cabeza disponibles, es un mundo sin cabeza. WordPress todavía tiene muchas características que lo hacen atractivo para su uso. Un problema con muchas de las soluciones recientes es que parecen estar muy enfocadas en los desarrolladores, y eso no es necesariamente algo malo, pero debes conocer a tu audiencia. Si el objetivo final es que el CMS sea utilizado por personas no técnicas, estás brindando una experiencia que las personas pueden tener dificultades para aprender y usar. WordPress es el CMS más utilizado en la industria. Eso significa que la mayoría de nuestros clientes ya estarán familiarizados con WordPress. Ya existe un ecosistema enorme y próspero en torno a WordPress.

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.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
The Talk covers the speaker's personal journey into server-side rendering (SSR) and the evolution of web development frameworks. It explores the use of jQuery for animations in SSR, the challenges faced in integrating React with Umbraco, and the creation of a custom SSR framework. The Talk also discusses the benefits of Next.js and the use of serverless artifacts for deployment. Finally, it highlights the features of Astro, including its function per route capability.
Cómo manejar correctamente los cambios de URL slug en Next.js
TypeScript Congress 2022TypeScript Congress 2022
10 min
Cómo manejar correctamente los cambios de URL slug en Next.js
Top Content
This Talk explains how to handle URL slug changes in Next.js by using the getStaticPaths and getStaticProps methods. It covers implementing redirects and provides a solution to eliminate the need for editors to perform additional steps. The approach involves tracking URL slug changes and issuing proper redirects. The speaker encourages the audience to reach out with any questions or experiences with handling URL slugs.
Eliminando BFFs con GraphQL y Next.js
React Advanced 2021React Advanced 2021
21 min
Eliminando BFFs con GraphQL y Next.js
Top Content
This talk discusses the challenges and benefits of using Backend for Frontends (BFFs) and microservices in software development. It highlights how Next.js can simplify the creation of BFFs and unify the gateway for microservices. The talk also emphasizes the advantages of Next.js API routes in simplifying the development, deployment, and maintenance of APIs. It showcases the implementation of a BFF using Next.js and API routes, and the extension of API routes in an executable way. The speaker also mentions launching a course on using Next.js API routes for building a serverless GraphQL API.

Workshops on related topic

AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
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)
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.
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
WorkshopFree
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
Crea un sitio web editable visualmente con Next.js utilizando React Bricks, con blog y comercio electrónico
React Summit 2023React Summit 2023
139 min
Crea un sitio web editable visualmente con Next.js utilizando React Bricks, con blog y comercio electrónico
Top Content
WorkshopFree
Matteo Frana
Matteo Frana
- React Bricks: por qué lo construimos, qué es y cómo funciona- Crea una cuenta gratuita- Crea un nuevo proyecto con Next.js y Tailwind- Explora la estructura del directorio- Anatomía de un Brick- Crea un nuevo Brick (Texto-Imagen)- Añade un título y descripción con edición visual RichText- Añade una imagen con edición visual- Añade controles de barra lateral para editar props (relleno y lado de la imagen)- Anidación de Bricks utilizando el componente Repeater- Crea un brick de galería de imágenes- Publica en Netlify o Vercel- Tipos de página y campos personalizados- Acceso a los valores meta de la página- Internacionalización- Cómo reutilizar contenido en varias páginas: Historias y incrustaciones- Cómo crear un comercio electrónico con datos de productos de una base de datos externa y páginas de aterrizaje creadas visualmente en React Bricks- Características empresariales avanzadas: permisos flexibles, estructura bloqueada, componentes visuales personalizados
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Construyendo Componentes de Servidor Reutilizables en NextJS
React Summit US 2023React Summit US 2023
88 min
Construyendo Componentes de Servidor Reutilizables en NextJS
Workshop
Will Bishop
Mettin Parzinski
2 authors
React continúa evolucionando su capacidad beta, los Componentes de Servidor de React, y continúan desarrollándolos en asociación con marcos como NextJS.En esta masterclass, los asistentes aprenderán qué son los Componentes de Servidor de React, cómo construirlos y usarlos eficazmente en NextJS, y se centrarán en una de las principales ventajas de React/NextJS: la reutilización a través de componentes.También cubriremos tecnologías beta relacionadas habilitadas por el directorio `app`, como los layouts anidados y las acciones del servidor (capacidad alfa/experimental).¡Únete a nosotros para esta masterclass práctica de 120 minutos!Tecnologías:
React, JavaScript/Typescript, NextJS, Miro