Introducción
Usar Notion como CMS significa que escribirás y administrarás tu contenido (artículos, guías, noticias, páginas) dentro de Notion, y tu web (por ejemplo, Next.js, Astro o Nuxt) consumirá ese contenido para mostrarlo públicamente.
En otras palabras:
Este artículo te guía desde cero: configuración en Notion, modelado de la base de datos, publicación con un “flag”, consumo desde tu web y buenas prácticas para producción.
Qué vas a construir
Un flujo típico de blog/documentación:
/blog → listado de artículos publicados/blog/[slug] → detalle del artículo (por slug)La web consultará Notion para:
Publicado = trueSlugRequisitos previos
Paso 1: Crea una base de datos para artículos en Notion
En Notion, crea una base de datos (Table) y agrega estas propiedades:
notion-como-cms-guia-practicaReglas recomendadas
Paso 2: Escribe el contenido (dos opciones)
Opción A (simple): contenido como texto/Markdown
Guardas el cuerpo en una propiedad de texto largo (si decides crearla) y tu web lo renderiza como Markdown/HTML.
Opción B (recomendado): contenido en el cuerpo de la página de Notion
Redactas en Notion usando headings, listas, imágenes, etc. Tu web leerá los bloques del page content y los convertirá a HTML/Markdown.
Paso 3: Conecta tu web con Notion (API oficial)
Para producción, la forma estándar es la Notion API.
3.1 Crear una integración en Notion
3.2 Compartir la base de datos con la integración
3.3 Variables de entorno (ejemplo)
En tu proyecto web, guarda el token como variable de entorno:
NOTION_TOKEN=...NOTION_DATABASE_ID=... (o el identificador que uses para ubicar tu base de datos)Importante: nunca expongas el token en el navegador. Las consultas a Notion deben hacerse en backend (server-side).
Paso 4: Consultas típicas (qué debe pedir tu web)
4.1 Listar artículos publicados
Tu endpoint/server function debería:
Publicado = trueFecha descTitulo, Descripcion, Slug, Fecha, Categoria, TiempoLecturaEsto alimenta /blog.
4.2 Obtener un artículo por slug
Para /blog/[slug]:
Slug == "..." y Publicado = true4.3 Cargar el contenido del artículo
Dependiendo de tu opción:
Paso 5: Renderizado del contenido (bloques → HTML)
Si eliges contenido en el cuerpo de la página, tendrás que convertir bloques de Notion a HTML/Markdown.
Puntos a considerar:
Paso 6: Publicación, caché y rendimiento
Publicación
El “deploy” editorial es tan simple como marcar:
Publicado ✅y (opcionalmente) actualizar Fecha.
Caché / Revalidación
Para que tu web sea rápida:
/blog/blog/[slug]