📱 Publications Studio - Arquitectura del Sistema
Fecha de diseño: 28 Enero 2026
Versión: 1.0.0
Status: 🟢 En desarrollo
Prerequisitos: Perspectiva Studio v3.0, Blog Studio (opcional), Audiobook (opcional)
📋 Resumen Ejecutivo
Publications Studio es un módulo de Perspectiva Studio para generar publicaciones optimizadas para redes sociales a partir del contenido ya creado (transcripciones, actas, blogs, audiobooks). Genera automáticamente el copy, imagen y preview para cada plataforma.
🎯 Principios de Diseño
- Contenido → Multi-plataforma: Un mismo contenido genera N publicaciones optimizadas
- IA para copywriting: El copy se adapta al tono y límites de cada red
- Imágenes optimizadas: Aspect ratio y tamaño correcto por plataforma
- Preview realista: Mockups visuales que muestran cómo se verá publicado
- Export listo para publicar: Copy + imagen descargables o copiables
1. Plataformas Soportadas
1.1 Especificaciones por Plataforma
| Plataforma | Aspect Ratio | Tamaño Imagen | Límite Texto | Características |
|---|---|---|---|---|
| Instagram Feed | 1:1 (cuadrado) | 1080x1080 | 2200 chars | Hashtags, emojis, CTA |
| Instagram Stories | 9:16 (vertical) | 1080x1920 | 2200 chars | Texto sobre imagen |
| X/Twitter | 16:9 (horizontal) | 1600x900 | 280 chars | Conciso, hashtags, link |
| 1.91:1 | 1200x630 | 63206 chars | Post largo, engagement | |
| 1.91:1 | 1200x627 | 3000 chars | Profesional, insights | |
| TikTok | 9:16 (vertical) | 1080x1920 | 2200 chars | Caption para video |
| Blog/Web | 16:9 | 1920x1080 | Sin límite | SEO, estructura HTML |
1.2 Tonos de Voz por Plataforma
const PLATFORM_TONES = {
instagram: {
style: 'visual, emocional, lifestyle',
emojis: 'abundantes',
hashtags: '5-15 relevantes',
cta: 'engagement (like, comenta, guarda)'
},
twitter: {
style: 'directo, informativo, impactante',
emojis: 'moderados',
hashtags: '1-3 trending',
cta: 'retweet, responde, hilo'
},
facebook: {
style: 'conversacional, storytelling',
emojis: 'moderados',
hashtags: '0-3',
cta: 'comparte, comenta, reacciona'
},
linkedin: {
style: 'profesional, insights, valor',
emojis: 'mínimos o ninguno',
hashtags: '3-5 profesionales',
cta: 'conecta, comenta tu experiencia'
},
tiktok: {
style: 'casual, trending, gen-z',
emojis: 'abundantes',
hashtags: '3-5 trending + nicho',
cta: 'sigue para más, duet'
}
};
2. Arquitectura del Sistema
2.1 Pipeline de Generación
┌─────────────────────────────────────────────────────────────────────────────┐
│ PUBLICATIONS STUDIO PIPELINE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ENTRADA (Fuentes de contenido) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │TRANSCRIPCIÓN │ │ ACTA │ │ BLOG │ │ AUDIOBOOK │ │
│ │ (raw) │ │ (resumen) │ │ (artículo) │ │ (pages) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │ │
│ └─────────────────┴────────┬────────┴─────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ ANALIZADOR DE CONTENIDO (IA) │ │
│ │ │ │
│ │ • Extrae temas principales │ │
│ │ • Identifica hooks/ganchos │ │
│ │ • Detecta quotes destacables │ │
│ │ • Sugiere ángulos por plataforma │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ GENERADOR DE PUBLICACIONES │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Instagram │ │ Twitter │ │ Facebook │ │ LinkedIn │ │ │
│ │ │ ───────── │ │ ───────── │ │ ───────── │ │ ───────── │ │ │
│ │ │ 📝 Copy │ │ 📝 Copy │ │ 📝 Copy │ │ 📝 Copy │ │ │
│ │ │ 🖼️ Imagen │ │ 🖼️ Imagen │ │ 🖼️ Imagen │ │ 🖼️ Imagen │ │ │
│ │ │ #️⃣ Hashtags │ │ #️⃣ Hashtags │ │ #️⃣ Hashtags │ │ #️⃣ Hashtags │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ EDITOR + PREVIEW │ │
│ │ │ │
│ │ • Preview realista por plataforma (mockup de móvil/web) │ │
│ │ • Edición de copy en tiempo real │ │
│ │ • Contador de caracteres con límite visual │ │
│ │ • Regenerar copy / imagen individualmente │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ EXPORT │ │
│ │ │ │
│ │ 📋 Copiar copy al clipboard │ │
│ │ 🖼️ Descargar imagen optimizada │ │
│ │ 📦 Descargar pack completo (ZIP con todas las plataformas) │ │
│ │ 📅 Programar publicación (futuro: integración con Buffer/Later) │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
2.2 Estructura de Datos
// Esquema de un proyecto de Publications
const publicationsProject = {
id: "pub_abc123",
title: "Publicaciones: 5 Técnicas de Productividad",
createdAt: "2026-01-28T10:00:00Z",
updatedAt: "2026-01-28T12:00:00Z",
// Fuente del contenido
source: {
type: "perspectiva", // 'perspectiva' | 'blog' | 'audiobook' | 'manual'
id: "persp_xyz789",
title: "Reunión de productividad",
summary: "Resumen extraído automáticamente del contenido fuente..."
},
// Análisis del contenido
analysis: {
mainTopics: ["productividad", "gestión del tiempo", "trabajo remoto"],
hooks: [
"¿Sabías que el 80% de las personas pierde 2 horas diarias?",
"Este método cambió mi forma de trabajar para siempre"
],
quotes: [
"El tiempo no se gestiona, se protege",
"Menos reuniones, más resultados"
],
targetAudience: "profesionales, emprendedores, freelancers",
tone: "motivacional, práctico"
},
// Publicaciones generadas
publications: {
instagram: {
enabled: true,
status: "ready", // 'pending' | 'generating' | 'ready' | 'error'
copy: "🚀 5 técnicas que TRIPLICARON mi productividad...",
hashtags: ["#productividad", "#emprendimiento", "#tips"],
image: {
url: "https://...",
prompt: "Professional workspace with laptop...",
aspectRatio: "1:1",
width: 1080,
height: 1080
},
charCount: 1856,
charLimit: 2200
},
twitter: {
enabled: true,
status: "ready",
copy: "El 80% de las personas pierde 2h diarias en tareas que no importan.\n\n5 técnicas para recuperar tu tiempo 🧵👇",
hashtags: ["#Productividad", "#Emprendimiento"],
image: {
url: "https://...",
aspectRatio: "16:9",
width: 1600,
height: 900
},
charCount: 142,
charLimit: 280
},
facebook: {
enabled: true,
status: "ready",
copy: "Hace 3 años descubrí algo que cambió mi forma de trabajar...",
hashtags: [],
image: {
url: "https://...",
aspectRatio: "1.91:1",
width: 1200,
height: 630
},
charCount: 890,
charLimit: 63206
},
linkedin: {
enabled: true,
status: "ready",
copy: "Después de 10 años en consultoría, aprendí que la productividad no es hacer más, es proteger lo importante...",
hashtags: ["#Productividad", "#Liderazgo", "#GestiónDelTiempo"],
image: {
url: "https://...",
aspectRatio: "1.91:1",
width: 1200,
height: 627
},
charCount: 1450,
charLimit: 3000
},
tiktok: {
enabled: false,
status: "pending",
copy: "",
hashtags: [],
image: null
}
},
// Configuración
settings: {
language: "es",
includeEmojis: true,
includeHashtags: true,
imageStyle: "modern", // 'minimal' | 'modern' | 'bold' | 'professional'
brandColors: null // futuro: colores de marca
}
};
3. Interfaz de Usuario
3.1 Layout del Editor
┌─────────────────────────────────────────────────────────────────────────────┐
│ 📱 PUBLICATIONS STUDIO [⚙️] [?] [✕] │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 📊 CONTENIDO BASE [🔄 Analizar] │ │
│ │ ───────────────────────────────────────────────────────────────── │ │
│ │ Fuente: Perspectiva - "Reunión de productividad" │ │
│ │ Temas: productividad, gestión del tiempo, trabajo remoto │ │
│ │ Hooks detectados: 2 | Quotes: 3 | Tono: motivacional │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────┬──────────────────────────────────────────┐ │
│ │ PLATAFORMAS │ PREVIEW + EDITOR │ │
│ │ ──────────── │ │ │
│ │ │ ┌────────────────────────────────────┐ │ │
│ │ ☑ 📸 Instagram ✅ │ │ │ │ │
│ │ ☑ 🐦 X/Twitter ✅ │ │ ┌──────────────────────┐ │ │ │
│ │ ☑ 📘 Facebook ✅ │ │ │ [MOCKUP MÓVIL] │ │ │ │
│ │ ☑ 💼 LinkedIn ✅ │ │ │ │ │ │ │
│ │ ☐ 🎵 TikTok ⏳ │ │ │ Instagram Feed │ │ │ │
│ │ │ │ │ ┌────────────┐ │ │ │ │
│ │ ───────────────────── │ │ │ │ [IMAGEN] │ │ │ │ │
│ │ │ │ │ │ 1080x1080 │ │ │ │ │
│ │ [🎨 Generar TODO] │ │ │ └────────────┘ │ │ │ │
│ │ [📦 Exportar Pack] │ │ │ │ │ │ │
│ │ │ │ │ @usuario │ │ │ │
│ │ ───────────────────── │ │ │ Copy del post... │ │ │ │
│ │ │ │ │ #hashtag #hashtag │ │ │ │
│ │ 💰 Costes estimados: │ │ │ │ │ │ │
│ │ • 5 imágenes: ~€0.15 │ │ └──────────────────────┘ │ │ │
│ │ • Copy IA: ~€0.02 │ │ │ │ │
│ │ ─────────────────── │ │ ◀ [1/4] ▶ │ │ │
│ │ Total: ~€0.17 │ └────────────────────────────────────┘ │ │
│ │ │ │ │
│ └──────────────────────────┤ ┌────────────────────────────────────┐ │ │
│ │ │ EDITOR │ │ │
│ │ │ ──────────────────────────────── │ │ │
│ │ │ 📝 Copy: │ │ │
│ │ │ ┌──────────────────────────────┐ │ │ │
│ │ │ │ 🚀 5 técnicas que TRIPLICARON│ │ │ │
│ │ │ │ mi productividad... │ │ │ │
│ │ │ │ ... │ │ │ │
│ │ │ └──────────────────────────────┘ │ │ │
│ │ │ 1856/2200 caracteres │ │ │
│ │ │ │ │ │
│ │ │ #️⃣ Hashtags: [editable] │ │ │
│ │ │ │ │ │
│ │ │ [🔄 Regenerar Copy] [🖼️ Nueva Img]│ │ │
│ │ │ [📋 Copiar] [⬇️ Descargar Imagen] │ │ │
│ │ └────────────────────────────────────┘ │ │
│ │ │ │
└─────────────────────────────┴──────────────────────────────────────────────┘
3.2 Mockups por Plataforma
Los mockups muestran cómo se verá el post en cada red social:
INSTAGRAM MOCKUP: TWITTER MOCKUP:
┌─────────────────────┐ ┌─────────────────────────────┐
│ ┌─┐ usuario ••• │ │ ┌─┐ Usuario @handle · 2h │
│ └─┘ │ │ └─┘ │
│ ┌─────────────────┐ │ │ Copy del tweet aquí... │
│ │ │ │ │ Puede ser más largo con │
│ │ [IMAGEN] │ │ │ varias líneas. │
│ │ 1080x1080 │ │ │ │
│ │ │ │ │ ┌───────────────────────┐ │
│ └─────────────────┘ │ │ │ [IMAGEN] │ │
│ ♡ 💬 ➤ 🔖 │ │ │ 1600x900 │ │
│ 1,234 likes │ │ └───────────────────────┘ │
│ usuario Copy del... │ │ 💬 12 🔄 45 ♡ 234 📊 │
│ Ver más │ └─────────────────────────────┘
│ Ver 45 comentarios │
│ Hace 2 horas │
└─────────────────────┘
4. Prompts de IA para Copywriting
4.1 Prompt Base para Análisis
Analiza el siguiente contenido y extrae:
1. Temas principales (máximo 5)
2. Hooks/ganchos que capturen atención (2-3 frases impactantes)
3. Quotes o frases destacables
4. Audiencia objetivo
5. Tono general del contenido
CONTENIDO:
{content}
Responde en JSON con esta estructura:
{
"mainTopics": [],
"hooks": [],
"quotes": [],
"targetAudience": "",
"tone": ""
}
4.2 Prompt para Instagram
Genera un post de Instagram basado en este contenido.
CONTEXTO:
{content_summary}
TEMAS: {topics}
HOOKS DISPONIBLES: {hooks}
REQUISITOS:
- Máximo 2200 caracteres
- Empieza con un gancho potente (emoji + frase impactante)
- Usa emojis para separar ideas y añadir personalidad
- Incluye un CTA al final (guarda este post, comenta, etc.)
- Tono: {tone}, cercano pero profesional
- NO incluyas hashtags en el copy (los añadimos después)
FORMATO DE RESPUESTA:
Solo el texto del post, listo para publicar.
4.3 Prompt para Twitter/X
Genera un tweet basado en este contenido.
CONTEXTO:
{content_summary}
HOOKS DISPONIBLES: {hooks}
REQUISITOS:
- Máximo 280 caracteres (ESTRICTO)
- Impactante desde la primera palabra
- Puede incluir 1-2 emojis estratégicos
- Si es parte de un hilo, indica con "🧵" o "👇"
- Tono: directo, informativo, genera curiosidad
- NO incluyas hashtags (los añadimos después)
FORMATO DE RESPUESTA:
Solo el texto del tweet, sin nada más.
5. Integración con Sistemas Existentes
5.1 Fuentes de Contenido
// Obtener contenido desde diferentes fuentes
function getSourceContent() {
// Prioridad: contenido específico seleccionado > acta > transcripción
// 1. Blog generado
if (window.BlogModule?.article?.sections) {
return {
type: 'blog',
title: window.BlogModule.article.meta?.title,
content: extractBlogContent(window.BlogModule.article)
};
}
// 2. Acta de Perspectiva
if (window.PerspectiveApp?.state?.acta) {
return {
type: 'perspectiva',
title: window.PerspectiveApp.state.title || 'Perspectiva',
content: window.PerspectiveApp.state.acta
};
}
// 3. Transcripciones
if (window.PerspectiveApp?.state?.transcriptions?.length) {
return {
type: 'transcription',
title: 'Transcripción',
content: window.PerspectiveApp.state.transcriptions.join('\n\n')
};
}
return null;
}
5.2 Generación de Imágenes
Reutiliza el sistema existente de generación de imágenes:
async function generatePlatformImage(platform, prompt) {
const specs = PLATFORM_SPECS[platform];
const response = await fetch('/api/ai/image', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
prompt: prompt,
width: specs.width,
height: specs.height,
model: 'flux-schnell', // o gemini-imagen
style: 'professional, social media optimized'
})
});
return await response.json();
}
6. Plan de Implementación
Fase 1: Estructura Base (actual)
- Documentación de arquitectura
- Crear
publications.jscon estructura básica - UI del modal/editor
- Mockups visuales por plataforma
Fase 2: Generación de Contenido
- Análisis de contenido con IA
- Generación de copy por plataforma
- Generación de hashtags
Fase 3: Imágenes
- Generación de imágenes por aspect ratio
- Preview en mockups
- Regeneración individual
Fase 4: Export
- Copiar copy al clipboard
- Descargar imagen individual
- Export pack (ZIP con todo)
7. Consideraciones Técnicas
7.1 Límites de Caracteres
const CHAR_LIMITS = {
instagram: { copy: 2200, hashtags: 30 }, // 30 hashtags máximo
twitter: { copy: 280, hashtags: 280 }, // incluidos en el límite
facebook: { copy: 63206, hashtags: 30 },
linkedin: { copy: 3000, hashtags: 30 },
tiktok: { copy: 2200, hashtags: 100 }
};
7.2 Costes Estimados
| Operación | Coste Estimado |
|---|---|
| Análisis contenido (LLM) | ~€0.005 |
| Copy por plataforma (LLM) | ~€0.003 |
| Imagen por plataforma | ~€0.03 |
| Total 5 plataformas | ~€0.17 |
Autor: Cadences Lab
Fecha: 28 Enero 2026
Versión: 1.0.0