Instalación
Pon Cmssy en marcha en menos de 5 minutos.
Requisitos previos
Un sitio Cmssy es un proyecto Next.js (App Router) estándar que renderiza tu contenido publicado con el SDK de Cmssy. Necesitarás:
- Node.js 20+ - recomendamos nvm
- pnpm - nuestro gestor de paquetes recomendado (npm y yarn también funcionan)
- Una aplicación Next.js App Router - nueva o existente
- Un workspace de Cmssy - para el slug del workspace y los ajustes de borrador/editor
Instala el SDK
Añade los dos paquetes del SDK a tu proyecto Next.js:
Crea una aplicación Next.js
¿Empiezas desde cero? Genera un proyecto App Router y luego añade el SDK. (O sáltate este paso y usa tu aplicación existente.)
Configura
Crea cmssy/config.ts exportando una CmssyNextConfig y luego añade las claves de abajo a tu .env. Copia los valores desde la página Settings → Headless de tu workspace en el panel de Cmssy. En cmssy cloud solo defines dos valores - apiUrl y editorOrigin tienen valores por defecto automáticos:
| Variable | Qué es | Obligatoria |
|---|---|---|
CMSSY_WORKSPACE_SLUG | El slug de tu workspace (resuelve el id del workspace) | Sí |
CMSSY_DRAFT_SECRET | Secreto que desbloquea el modo borrador / vista previa | Sí |
CMSSY_REVALIDATE_SECRET | Secreto para el webhook de revalidación ISR al publicar | Sí |
CMSSY_API_URL | Endpoint GraphQL de entrega. Por defecto https://api.cmssy.io/graphql | Solo self-host / staging |
CMSSY_EDITOR_ORIGIN | Origen del admin que enmarca tu sitio. Por defecto https://www.cmssy.io | Solo self-host |
Mantén estos valores en secreto - nunca subas .env al control de versiones. En producción, define las mismas variables en tu proveedor de hosting (p. ej. los ajustes de tu proyecto en Vercel).
Estructura del proyecto
Un sitio Cmssy típico tiene este aspecto:
my-site/
├── app/
│ ├── layout.tsx # CmssyServerLayout (header/footer)
│ ├── [[...path]]/page.tsx # createCmssyPage - the catch-all page
│ └── api/draft/route.ts # createDraftRoute - editor preview
├── blocks/
│ └── hero/
│ ├── block.ts # defineBlock(...) + fields
│ └── src/index.tsx # the React component
├── cmssy/
│ ├── config.ts # CmssyNextConfig + resolveLocale
│ └── blocks.ts # registry: exports the `blocks` array
└── proxy.ts # locale + edit-mode + CSPCada bloque vive en su propia carpeta dentro de blocks/ y se registra en cmssy/blocks.ts.
Inicia el desarrollo
Ejecuta el servidor de desarrollo de Next.js:
Abre http://localhost:3000 - tu sitio renderiza el contenido publicado de Cmssy.
Vista previa del editor
Para editar contenido visualmente con vista previa en vivo, el editor de Cmssy enmarca tu sitio desplegado (o local) en un iframe. Para que tu proyecto aparezca en el editor, necesitas:
- La Preview URL de tu workspace (Settings → Headless) apuntando a tu sitio - p. ej.
https://your-site.com, ohttp://localhost:3000mientras desarrollas. - La ruta de borrador
app/api/draft/route.ts=createDraftRoute(cmssy)para que el editor pueda entrar en modo vista previa / borrador. proxy.tsaplicando la CSP medianteapplyCmssyCspen modo edición.
En cmssy cloud el origen del editor ya está configurado. Si autoalojas el admin, define CMSSY_EDITOR_ORIGIN con el origen de tu admin - el SDK lo usa para el puente postMessage y la CSP frame-ancestors que permite al admin enmarcar tu sitio. Después abre el editor de páginas en el admin - tu sitio se carga en el lienzo y los cambios aparecen al instante.
Despliega
Despliega como cualquier aplicación Next.js (p. ej. Vercel). Define las mismas variables de entorno en tu proveedor de hosting y luego apunta la Preview URL de tu workspace al sitio desplegado para que el editor pueda enmarcarlo.
Actualiza el SDK
Actualiza ambos paquetes juntos para obtener las correcciones del SDK y luego vuelve a desplegar:
Solución de problemas
Problemas comunes
- "Preview didn't connect" - comprueba que la Preview URL del workspace apunta a tu sitio. Si autoalojas el admin,
CMSSY_EDITOR_ORIGINdebe ser el origen de tu admin. - Página en blanco - comprueba que
CMSSY_WORKSPACE_SLUGcoincide con tu workspace (y, si autoalojas, queCMSSY_API_URLes el endpoint GraphQL completo). - "Port 3000 already in use" - detén otros servidores de desarrollo o ejecuta
next dev -p 3001. - Error de versión de Node.js - actualiza a Node.js 20+ con
nvm install 20.
Próximos pasos
Ahora que ya está todo listo, explora las siguientes guías:
- Inicio rápido - construye tu primer bloque de principio a fin
- Desarrollo de bloques - anatomía de bloques, esquemas y tipos de campo
- Page Builder - edición de contenido en el editor visual