📝 Funciones de Contenido y Marketing
La plataforma incorpora herramientas integradas para que los equipos de contenido y marketing disfruten de alta flexibilidad sin comprometer la seguridad ni el rendimiento.
👁️ Vista Previa en Vivo de CMS (Next.js Draft Mode)
La tienda está totalmente integrada con el sistema de Preview en Strapi y el mecanismo Draft Mode de Next.js. Esta función permite al equipo editorial ver contenidos en borrador (Draft) directamente en la plantilla real del frontend.
Flujo de trabajo:
- Inicio: El redactor hace clic en el botón Preview en el panel de Strapi.
- Validación: Strapi redirige al usuario a la ruta
api/preview/route.tscon una URL firmada que contieneREVALIDATE_SECRET. - Activación de Draft Mode: El servidor valida el hash HMAC mediante
node:cryptoy activa el modo borrador enviando una cookie de sesión segura. - Renderizado en Vivo: El usuario es redirigido a la página de destino y visualiza la versión preliminar del contenido.
Clave Unificada con REVALIDATE_SECRET
Para simplificar la configuración y unificar la seguridad, tanto la vista previa en vivo de Strapi como los webhooks de ISR comparten la misma variable de entorno
REVALIDATE_SECRET en tu archivo raíz .env, eliminando la necesidad de una clave adicional.📨 Boletín Informativo y Anti-Spam (Rate Limiting)
El sistema de suscripción al boletín (ruta api/newsletter/route.ts) está conectado directamente al potente CRM SendPulse.
Seguridad mediante Limitación de Tasa (Rate Limiting)
Para prevenir el abuso de bots y la saturación de la base de datos o cuotas de API de terceros, este endpoint utiliza un Rate Limiter nativo basado en IP.
- Peticiones máximas permitidas: 2 solicitudes
- Ventana de tiempo: 1 hora (60 * 60 * 1000 milisegundos)
- Mecanismo de rastreo: La IP del usuario se extrae del encabezado
x-forwarded-fory se monitoriza en la memoria caché del servidor. - Si se supera el límite, el servidor devuelve un error
429 Too Many Requests.
.env (Variables de SendPulse)
bashSENDPULSE_API_ID=your_api_idSENDPULSE_API_SECRET=your_api_secretSENDPULSE_BOOK_ID=your_target_mailing_list_id