DEV Community

Eduardo Acosta
Eduardo Acosta

Posted on

Usando Sanity Studio con Next.js: Potenciando tu Desarrollo Web

En el mundo del desarrollo web moderno, la combinación de un sistema de gestión de contenido (CMS) flexible como Sanity y un framework poderoso de React como Next.js puede transformar la manera en que construimos aplicaciones. En este post, exploraremos cómo integrar Sanity Studio en un proyecto de Next.js, brindando a los desarrolladores una solución robusta para la creación y gestión de contenido.

¿Qué es Sanity?

Sanity es un CMS sin cabeza que permite a los desarrolladores crear, gestionar y distribuir contenido en múltiples plataformas. Su enfoque flexible y su capacidad de personalización lo han convertido en una opción popular entre los desarrolladores.

¿Qué es Next.js?

Next.js es un framework de React que permite la creación de aplicaciones web rápidas y optimizadas. Con características como el renderizado del lado del servidor (SSR) y la generación de sitios estáticos (SSG), Next.js es ideal para proyectos que requieren un rendimiento superior y SEO optimizado.

Instalación y Configuración

Paso 1: Crear un Proyecto de Next.js

Para comenzar, primero necesitas crear un nuevo proyecto de Next.js. Abre tu terminal y ejecuta:

npx create-next-app@latest my-nextjs-sanity-app
cd my-nextjs-sanity-app
Enter fullscreen mode Exit fullscreen mode

Paso 2: Instalar Sanity CLI

Instala la herramienta de línea de comandos de Sanity:

npm install -g @sanity/cli
Enter fullscreen mode Exit fullscreen mode

Paso 3: Crear un Proyecto de Sanity

En la misma terminal, ejecuta el siguiente comando para crear un nuevo proyecto de Sanity:

sanity init
Enter fullscreen mode Exit fullscreen mode

Sigue las instrucciones para configurar tu proyecto y elige un esquema de contenido que se adapte a tus necesidades.

Integración de Sanity con Next.js

Paso 4: Instalar Dependencias de Sanity

Dentro de tu proyecto de Next.js, instala las dependencias necesarias para conectar Sanity:

npm install @sanity/client @sanity/image-url
Enter fullscreen mode Exit fullscreen mode

Paso 5: Configurar el Cliente de Sanity

Crea un archivo sanity.js en la raíz de tu proyecto de Next.js para configurar el cliente de Sanity:

// sanity.js
import sanityClient from '@sanity/client';
import imageUrlBuilder from '@sanity/image-url';

const client = sanityClient({
  projectId: 'tu_project_id', // Reemplaza con tu ID de proyecto
  dataset: 'production', // Cambia si es necesario
  apiVersion: '2023-10-16', // Usa la fecha en la que se lanzó la versión de la API
  useCdn: true, // `false` si necesitas datos frescos
});

const builder = imageUrlBuilder(client);

export const urlFor = (source) => builder.image(source);
export default client;
Enter fullscreen mode Exit fullscreen mode

Paso 6: Consultar Contenido en Next.js

Ahora puedes usar el cliente de Sanity para consultar contenido en tus componentes de Next.js. Aquí tienes un ejemplo de cómo hacerlo en una página:

// pages/index.js
import client from '../sanity';

const Home = ({ posts }) => {
  return (
    <div>
      <h1>Mis Publicaciones</h1>
      {posts.map((post) => (
        <div key={post._id}>
          <h2>{post.title}</h2>
          <img src={urlFor(post.image)} alt={post.title} />
          <p>{post.body}</p>
        </div>
      ))}
    </div>
  );
};

export async function getStaticProps() {
  const posts = await client.fetch('*[_type == "post"]');
  return {
    props: { posts },
  };
}

export default Home;
Enter fullscreen mode Exit fullscreen mode

Conclusión

La integración de Sanity Studio con Next.js ofrece a los desarrolladores una potente herramienta para gestionar contenido de forma eficiente y flexible. Con su combinación de capacidades, puedes construir aplicaciones web que no solo son rápidas y eficientes, sino también fáciles de gestionar y escalar.

Ahora que conoces los pasos básicos para integrar Sanity con Next.js, ¡es hora de comenzar a crear tu próxima aplicación web!


Espero que este artículo te haya sido útil. Si tienes preguntas o quieres compartir tu experiencia trabajando con Sanity y Next.js, ¡déjamelo saber en los comentarios!

Top comments (0)