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.

Image description

¿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.

Image description

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)