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.

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.

Available in English: Scaling WordPress with Next.js

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
Concurrent React y Server Components están cambiando la forma en que pensamos sobre el enrutamiento, la renderización y la obtención de datos en las aplicaciones web. Next.js recientemente compartió parte de su visión para ayudar a los desarrolladores a adoptar estas nuevas características de React y aprovechar los beneficios que desbloquean.En esta charla, exploraremos el pasado, presente y futuro del enrutamiento en las aplicaciones de front-end y discutiremos cómo las nuevas características en React y Next.js pueden ayudarnos a arquitectar aplicaciones más eficientes y con más funciones.
El Nuevo Enrutador de Aplicaciones de Next.js
React Summit 2023React Summit 2023
27 min
El Nuevo Enrutador de Aplicaciones de Next.js
Next.js 13.4 lanzó recientemente la versión estable del "Enrutador de Aplicaciones" - un cambio transformador para el núcleo del framework. En esta charla, compartiré por qué hicimos este cambio, los conceptos clave que debes conocer y por qué estoy emocionado por el futuro de React.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced Conference 2023React Advanced Conference 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Los Componentes de Servidor son la nueva gran cosa, pero hasta ahora gran parte del discurso a su alrededor ha sido abstracto. Cambiemos eso. Esta charla se centrará en el lado práctico de las cosas, proporcionando un mapa de ruta para navegar el viaje de migración. Comenzando desde una aplicación que utiliza el antiguo enrutador de páginas de Next.js y React Query, desglosaremos este viaje en un conjunto de pasos accionables e incrementales, deteniéndonos solo cuando tengamos algo que se pueda enviar y que sea claramente superior a lo que comenzamos. También discutiremos los próximos pasos y estrategias para adoptar gradualmente más aspectos de este paradigma transformador.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
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.
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
Si estás utilizando un CMS sin cabeza para almacenar contenido, también trabajas con URL slugs, las últimas partes de cualquier URL. El problema es que los editores de contenido pueden cambiar libremente los slugs, lo que puede causar errores 404, pérdida de rangos de página, enlaces rotos y, al final, visitantes confundidos en tu sitio. En esta charla, presentaré una solución para mantener un historial de URL slugs en el CMS y explicaré cómo implementar un mecanismo de redirección adecuado (¡usando TypeScript!) para páginas generadas dinámicamente en un sitio web de Next.js.

Añadir a las notas de la charla: https://github.com/ondrabus/kontent-boilerplate-next-js-ts-congress-2022 
Eliminando BFFs con GraphQL y Next.js
React Advanced Conference 2021React Advanced Conference 2021
21 min
Eliminando BFFs con GraphQL y Next.js
Top Content
Las aplicaciones de Frontend se están volviendo cada vez más complicadas, a menudo entregando mucho más que solo una interfaz de usuario. Con esta creciente complejidad surge una creciente necesidad de conocimiento por parte de los desarrolladores que la crean, ya que tienen que lidiar con asuntos como la gestión de estados, autorización, enrutamiento y más. En esta charla, te mostraré cómo usar GraphQL en tu aplicación Next.js para crear una capa de datos para tu aplicación, que existe entre tu frontend y tu backend. En esta capa de datos, puedes manejar asuntos complejos para ayudarte a mantener tu aplicación de frontend limpia y "estúpida".

Workshops on related topic

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
Crear un Sitio Web Editable Visualmente con Next.js Utilizando React Bricks, con Blog y Comercio Electrónico
React Summit 2023React Summit 2023
139 min
Crear un Sitio Web Editable Visualmente con Next.js Utilizando React Bricks, con Blog y Comercio Electrónico
WorkshopFree
Matteo Frana
Matteo Frana
- React Bricks: por qué lo construimos, qué es y cómo funciona- Crear una cuenta gratuita- Crear un nuevo proyecto con Next.js y Tailwind- Explorar la estructura de directorios- Anatomía de un Brick- Crear un nuevo Brick (Texto-Imagen)- Agregar un título y descripción con edición visual RichText- Agregar una imagen con edición visual- Agregar controles de barra lateral para editar props (padding y lado de la imagen)- Anidar Bricks usando el componente Repeater- Crear un brick de galería de imágenes- Publicar en Netlify o Vercel- Tipos de página y campos personalizados- Acceder a los valores meta de la página- Internacionalización- Cómo reutilizar contenido en varias páginas: Historias e Incrustaciones- Cómo crear un comercio electrónico con datos de productos de una base de datos externa y páginas de destino creadas visualmente en React Bricks- Funciones empresariales avanzadas: permisos flexibles, estructura bloqueada, componentes visuales personalizados
Construyendo Sitios Web Ultrarrápidos con Next.js y Sanity.io
React Summit 2023React Summit 2023
71 min
Construyendo Sitios Web Ultrarrápidos con Next.js y Sanity.io
WorkshopFree
Nancy Du
Nataliya Ioffe
2 authors
Únete a nosotros en un masterclass práctico donde te mostraremos cómo mejorar tus habilidades de React para construir un sitio web sin cabeza de alto rendimiento utilizando Next.js, Sanity y la arquitectura JAMstack. No se requiere conocimiento previo de Next.js o Sanity, lo que hace que este masterclass sea ideal para cualquier persona familiarizada con React que quiera aprender más sobre la construcción de sitios web dinámicos y receptivos.
En este masterclass, exploraremos cómo Next.js, un framework basado en React, se puede utilizar para construir un sitio web estático con renderizado del lado del servidor y enrutamiento dinámico. Aprenderás cómo utilizar Sanity como un CMS sin cabeza para gestionar el contenido de tu sitio web, crear plantillas de página personalizadas con Next.js, utilizar APIs para integrarte con el CMS y desplegar tu sitio web en producción con Vercel.
Al final de este masterclass, tendrás una comprensión sólida de cómo Next.js y Sanity.io pueden utilizarse juntos para crear un sitio web de alto rendimiento, escalable y flexible.
Masterclass de GraphQL en la Nube con Neo4j Aura, Next.js y Vercel
GraphQL Galaxy 2021GraphQL Galaxy 2021
161 min
Masterclass de GraphQL en la Nube con Neo4j Aura, Next.js y Vercel
WorkshopFree
William Lyon
William Lyon
En este masterclass construiremos y desplegaremos una aplicación de GraphQL de pila completa utilizando Next.js, Neo4j y Vercel. Utilizando un grafo de conocimiento de artículos de noticias, primero construiremos una API de GraphQL utilizando las rutas de API de Next.js y la Biblioteca de GraphQL de Neo4j. A continuación, nos enfocaremos en el front-end, explorando cómo utilizar GraphQL para la obtención de datos con una aplicación de Next.js. Por último, exploraremos cómo agregar personalización y recomendación de contenido en nuestra API de GraphQL para servir artículos relevantes a nuestros usuarios, luego desplegaremos nuestra aplicación en la nube utilizando Vercel y Neo4j Aura.

Tabla de contenidos:
- Visión general de Next.js y cómo empezar con Next.js
- Rutas de API con Next.js y construcción de una API de GraphQL
- Utilizando la Biblioteca de GraphQL de Neo4j
- Trabajando con Apollo Client y obtención de datos de GraphQL en Next.js
- Despliegue con Vercel y Neo4j Aura
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.