D DANIA Owners v2 · 25-ago-2026
v2 — actualizado 25-ago-2026 · skills oficiales

Tú publicas.
DANIA lo aloja.
El cliente brilla.

El manual del owner DANIA para entregar el pack inicial de cada cliente — web + QR de reseñas en ~48h — con los skills oficiales /diseno-web-cliente y /qr-cliente-final. Ya no se improvisa nada.

2 skills oficiales hacen el trabajo pesado Pack inicial web + QR en ~48h Dominio .com incluido en todos los planes 0 tickets al equipo para publicar
01 · Antes de nada

Entiende
el mapa.

Hay tres piezas en el sistema. Cuando sepas cuál hace qué, todo lo demás encaja solo.

Tu Studio

Tu VPS DaniaOS. Aquí desarrollas y gestionas la web del cliente. Es tu mesa de trabajo — nunca el hosting final.

tu-nombre.plus.dania.ai

DANIA Central

El servidor central de DANIA. Aloja las webs de todos los clientes managed — siempre aquí, nunca en tu VPS. Es la fuente de verdad.

plus.dania.ai

Tu Cliente

Ve la web publicada. Primero con el link de DANIA visible en su app; en cuanto elige su dominio incluido, con su propio .com.

<slug>.plus.dania.ai

Por qué la web vive en el central y no en tu VPS

Regla de arquitectura, sin excepciones: la web del cliente SIEMPRE se aloja en el servidor central de DANIA. Tú mantienes el control total de gestión y edición desde tu Studio — pero el hosting no depende de tu máquina. Así, si un cliente algún día cambia de owner, el cliente y su web se transfieren sin un segundo de caída, y con la transferencia se transfieren los derechos de gestión. Cero webs de clientes huérfanas en VPS.

Analogía para no-técnicos

Piensa en tu VPS como tu taller — donde diseñas, cortas y coses. DANIA Central es la vitrina de la avenida principal — donde el cliente ve el resultado con su nombre en el escaparate. Tú siempre trabajas en el taller; con un solo comando, mueves la pieza terminada a la vitrina. Y como la vitrina es del centro comercial — no de un taller concreto — el escaparate del cliente nunca se apaga, aunque cambie quién lo atiende.

Regla de comunicación con el cliente

De cara al cliente, somos siempre «el equipo de DANIA». La palabra "owner" es interna — el cliente no la ve nunca, ni en mensajes, ni en la web, ni en las entregas. Habla en plural, como equipo: "ya tenemos tu web lista", "te preparamos tus fichas QR".

02 · Lo nuevo en v2

El pack inicial:
web + QR en 48h.

Cada cliente nuevo recibe dos entregables en su bienvenida: su web y sus fichas QR de reseñas de Google. Ya no se improvisan prompts — hay dos skills oficiales en tu Studio que hacen el trabajo con calidad de estudio. Objetivo: ~48h desde el onboarding mínimo.

Entregable 1 · Skill oficial

/diseno-web-cliente — la web

Toma el onboarding del cliente (con el ~20% mínimo basta: identidad, logo, servicios) y produce una web premium, editorial, con personalidad de marca — nunca plantilla IA genérica.

Trabaja en 6 fases: onboarding mínimo → arquitectura → dirección de arte → build → gate de calidad /impeccable → preview /serve + deploy. En la fase de dirección de arte registra la identidad corporativa del cliente en clientes/<slug>/identidad/identity.json — colores, tipografías, logo real, fotos, voz.

Entregable 2 · Skill oficial

/qr-cliente-final — el QR de reseñas

Genera las 5 fichas imprimibles con un QR que abre DIRECTO el formulario de reseñas de Google del negocio (escanear → estrellas → publicar). Lee la identidad automáticamente — no le pasas colores ni logo: usa el identity.json que fijó la web.

Las fichas quedan en el workspace y en la galería de la marca del cliente, listas para imprimir o publicar en redes.

La web fija la identidad — todo lo demás la respeta

El identity.json que escribe /diseno-web-cliente es el contrato de identidad corporativa del cliente: el QR, las campañas y cualquier generación posterior (creativos, posts, vídeos) lo leen automáticamente y respetan colores, tipografías y logo. Por eso la web va primero: es la que define cómo se ve la marca en todo lo demás.

Notificaciones al cliente — próximamente automático

Está en construcción el aviso automático de entregas: cuando publiques web, QR o campaña, el cliente recibirá la notificación en su app + push + email (y WhatsApp). Mientras llega, avísale tú manualmente — como "el equipo de DANIA" — con los mensajes copiables de este manual.

Cuatro rutas · Elige la tuya

¿En qué situación
estás hoy?

03 · Caso A

Web nueva
desde cero.

Cinco pasos. Un skill hace el diseño, otro hace el QR, y una sola llamada publica. Pack completo en ~48h con URL viva en <slug>.plus.dania.ai.

1

Arranca con el onboarding mínimo

No esperes a que el cliente complete el 100% del onboarding. Con el ~20% mínimo — identidad, logo, servicios — el skill ya arranca; los huecos se anotan como pendientes y se iteran después. Ten a mano: nombre, rubro, zona, teléfono/WhatsApp, horarios, idioma, y las fotos reales que tenga (local, producto, equipo).

El slug lo deriva el skill del nombre del negocio (minúsculas y guiones: "Panadería Doña Rosa" → panaderia-dona-rosa). Reglas para el slug público: solo minúsculas, números y guiones, máx. 31 caracteres, sin palabras reservadas (www, api, admin, mail, plus, studio, root, support, staging, portal, dashboard, assets, static). El sistema se lo asigna al primero que lo publica — si el nombre es común, reserva pronto.

2

Lanza el skill /diseno-web-cliente

Ya no se improvisa el prompt de la web: el skill oficial trae la metodología completa (arquitectura de conversión, dirección de arte anti-genérica, material real del cliente primero, gate de calidad /impeccable, preview con /serve). Pégale esto a tu Claude:

/diseno-web-cliente

Cliente: [nombre del negocio][tipo de negocio] en [ciudad/zona].

Onboarding disponible:
- Servicios: [lista de servicios con precios si los hay]
- Contacto: [teléfono / WhatsApp, dirección, redes]
- Horarios: [horarios]
- Idioma: [español / inglés / bilingüe]
- Logo y fotos reales: [dónde están — carpeta, galería de su marca en Autopilots, o "te las paso ahora"]

# Si tienes preferencias de estilo, dilas; si no, el skill propone la dirección de arte:
Mood deseado: [opcional — 3 adjetivos, ej. "elegante, cálida, editorial"]

Avísame cuando esté en el preview para revisarla antes de publicar.

Qué produce: la web premium en clientes/<slug>/web/ + la identidad corporativa registrada en clientes/<slug>/identidad/identity.json (y DESIGN.md) con colores, tipografías, logo real y voz. Esa identidad es la que después leen el QR y las campañas — si al terminar no existe el identity.json, el entregable no está completo.

3

Revisa en el preview y publica al central

El skill te sirve la web en el Preview tab (/serve) y pasa el gate /impeccable antes de entregar. Revísala en móvil y desktop — el ~90% del tráfico de un negocio local es móvil. Cuando des el OK, la publicación al servidor central es una sola llamada:

La web de [cliente] está aprobada. Publícala al hosting oficial de DANIA.

Slug: [slug-del-negocio]
Carpeta: /root/workspace/clientes/[slug]/web
Usa el endpoint POST /api/apps/deploy-official.

Al terminar: devuélveme la URL final, confirma HTTP 200 y actualiza el identity.json con la URL y la fecha de deploy.

Si prefieres el curl directo (equivalente, mismo resultado):

STUDIO_TOKEN=$(grep -m1 '^STUDIO_TOKEN=' /root/.dania-platform/.env | cut -d= -f2-)
curl -sS -X POST http://localhost:4000/api/apps/deploy-official \
  -H "Authorization: Bearer $STUDIO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"slug":"panaderia-dona-rosa","path":"/root/workspace/clientes/panaderia-dona-rosa/web"}'

Respuesta esperada:

{ "ok": true, "slug": "panaderia-dona-rosa", "url": "https://panaderia-dona-rosa.plus.dania.ai/", "official": true }

Recuerda: la web queda alojada en DANIA Central — nunca en tu VPS. Tu Studio sigue siendo el panel de control para editarla cuando quieras.

4

Genera el QR de reseñas — el segundo entregable

Con la web viva, el pack se completa con /qr-cliente-final: 5 fichas imprimibles con un QR que abre directo el formulario de estrellas de Google del negocio. El skill lee la identidad solo (colores, logo, tipografías del identity.json) — solo necesita saber qué negocio es:

/qr-cliente-final

Cliente: [nombre del negocio] (slug: [slug])
Ficha de Google del negocio: [link de Google Maps o de la búsqueda — si no lo tienes, nombre exacto + ciudad]

Qué produce: el QR verificado (PNG + SVG print-ready) y las 5 fichas en el branding exacto del cliente, guardadas en clientes/<slug>/qr-review-card/ y subidas a la galería de su marca — listas para imprimir (mostrador, espejo, mesa) o publicar en redes.

5

Entrega el pack y avisa al cliente

Web viva + fichas QR en su galería = pack inicial completo. Mientras el aviso automático (app + push + email) está en construcción, avísale tú — siempre como "el equipo de DANIA":

Hola [cliente] 👋 Somos el equipo de DANIA. ¡Tu pack de bienvenida está listo!

🌐 Tu web ya está publicada: https://[slug].plus.dania.ai/
   (este es tu link de DANIA — lo ves también en tu app; cuando elijas tu dominio .com incluido en tu plan, tu web responderá ahí automáticamente)

⭐ Tus fichas QR de reseñas de Google ya están en tu galería de medios: al escanearlas, tus clientes llegan directo a dejarte su valoración. Imprímelas para el mostrador o compártelas en redes.

Revísalo todo y cuéntanos qué quieres ajustar — los cambios los aplicamos en minutos.

¿Cambios futuros? Editas la carpeta en tu Studio y vuelves a llamar el mismo endpoint con el mismo slug. Sobreescribe en segundos (ver Caso B).

TIEMPO OBJETIVO

Pack inicial completo (web + QR): ~48h desde el onboarding mínimo. El skill de la web tarda de 30 min a 2-3 h según material y complejidad; el QR, 15-30 min. El resto del margen es para tu revisión y la ronda de ajustes del cliente. Cambios menores posteriores (texto, precio, foto): 2-5 minutos incluyendo publicación.

04 · Caso B · El más frecuente

El cliente
pide cambios.

Es el caso que más vas a repetir. El cliente ya vio su web, la usa, y ahora quiere: un precio nuevo, una foto distinta, una oferta del mes, un horario que corregir, un servicio que añadir. En 3 pasos y menos de 5 minutos.

1

Anota exactamente qué cambia

Antes de tocar nada, escribe lo que el cliente pide en una lista clara. Cuanto más específico, mejor le explicas a Claude qué tiene que tocar y no toca lo que no debe.

Ejemplo bueno:

  • Precio "Corte de caballero": 35 → 30
  • Añadir oferta del mes: "2 cortes por $50", banner en el hero
  • Cambiar la foto del hero por la nueva que me pasó (adjunta)
  • Horario del sábado: 9-14h → 9-17h

Ejemplo malo: "cámbiale los precios y ponle una oferta". Ambigüo → Claude va a preguntar o va a inventar.

2

Aplica el cambio con un solo prompt

Este es el prompt "todo terreno" para cambios menores. Pégaselo tal cual a tu Claude y sustituye lo que está en rosa:

Actualiza la web de [cliente] (slug oficial: [slug-negocio]).

El código está en /root/workspace/clientes/[slug]/web/.

Cambios que pide el cliente:
1. [cambio 1 — describe qué texto/precio/dato cambia y por cuál]
2. [cambio 2 — sección, campo específico, valor viejo → valor nuevo]
3. [cambio 3 — si es foto, indica ruta o URL nueva]

Reglas:
- NO toques nada que no esté en la lista.
- Preserva el diseño y las clases CSS existentes.
- Si necesitas añadir un elemento nuevo (banner de oferta, sección), respeta la identidad de clientes/[slug]/identidad/identity.json (misma tipografía, misma paleta, mismo tono).
- Si el cambio toca colores, logo o tipografías, actualiza también el identity.json — el QR y las campañas lo leen.

Al terminar:
1. Muéstrame el diff de qué cambió.
2. Redeploya al hosting oficial con POST /api/apps/deploy-official usando el mismo slug.
3. Confirma que la home devuelve HTTP 200 y que el cambio se ve en vivo.

¿El cambio es una foto nueva? Sube el archivo primero al workspace del cliente. Puedes pedirle esto a Claude:

Voy a pasarte una foto nueva para la web de [cliente]. Guárdala en /root/workspace/clientes/[slug]/web/assets/img/ con nombre [nombre-corto].webp, optimizada para web (max 200KB, ancho 1600px), y sustituye la referencia en el HTML donde iba la foto anterior.

Ruta origen: [URL o path donde te la pase]
3

Verifica y avisa al cliente

Antes de decirle "listo" al cliente, abre la URL en modo incógnito (para saltar cache) y comprueba que se ve lo que pediste. Móvil y desktop.

Prompt de verificación rápida:

Verifica que los cambios aplicados en la web de [cliente] están en vivo:

1. HTTP status de https://[slug].plus.dania.ai/ — debe ser 200.
2. Grep del HTML servido buscando: [palabras clave del cambio, ej. "$30", "9-17h", "2 cortes por $50"].
3. Confirma que no hay errores 404 en assets (imágenes, CSS, JS).

Cuando confirmes, mándale al cliente (recuerda: eres "el equipo de DANIA"):

Hola [cliente], somos el equipo de DANIA. Ya están tus cambios en la web:
[lista breve de cambios aplicados]

Puedes verlo aquí: https://[slug].plus.dania.ai/
(si abres desde el móvil y ves lo anterior, refresca la página deslizando hacia abajo)

¿Quieres que ajustemos algo más?

Próximamente: este aviso será automático — el cliente recibirá la notificación de la entrega en su app + push + email (y WhatsApp). Hasta entonces, el mensaje lo mandas tú.

Tiempo estimado

Cambio de texto o precio: 1-2 minutos. Foto nueva + optimización: 3-5 minutos. Añadir una sección o banner: 5-15 minutos según el diseño. Todo incluyendo el redeploy — que es instantáneo.

¿Y si son muchos cambios juntos?

Si el cliente te pasa 10-15 cambios a la vez (típico "revisión trimestral"), aplícalos por tandas de 3-5 con un deploy por tanda. Así si algo sale mal, sabes exactamente qué cambio lo rompió y no tienes que revisar toda la web. También le puedes ir mostrando avances al cliente.

05 · Caso C

Migrar una web ya
hecha en tu VPS.

Si ya publicaste una web para un cliente en tu-nombre.plus.dania.ai/apps/<slug>/, esto es para ti — y ahora es obligatorio: ninguna web de cliente vive en el VPS de un owner. La carpeta ya está en tu workspace, no hay que empezar de cero.

ANTES

https://tu-nombre.plus.dania.ai/apps/pedros/

Vive en tu VPS. Bien para desarrollo interno — pero si tu VPS cae o el cliente cambia de manos, la web sufre.

DESPUÉS

https://pedros-barber.plus.dania.ai/

Alojada en DANIA Central. Subdominio propio del negocio, transferible sin caída, preparada para el .com incluido.

1

Averigua qué webs tienes en tu VPS

Prompt para tu Claude:

Lístame todas las webs que tengo publicadas en mi VPS (endpoint /apps/*). Muestra slug, puerto, tamaño del workspace y URL pública. Marca cuáles ya están en el hosting oficial de DANIA.
2

Elige el slug definitivo del cliente

El slug que tienes hoy en tu VPS es interno tuyo (pedros, bmsalon, manabakery). Ahora escoge uno que se vea bien público:

pedrospedros-barber · bmsalonbeautiful-moments · manabakerymana-bakery

Consejo: el slug oficial se lo verá el cliente. Que respire bien: usa el nombre del negocio, con guiones.

3

Publica al central (reusa la carpeta existente)

Prompt para tu Claude:

Migra la web que ya tengo en /root/workspace/[slug-actual]/ al hosting oficial de DANIA.

Slug nuevo (definitivo, el que verá el cliente): [slug-negocio]
Usa POST /api/apps/deploy-official con la misma carpeta — no necesito recrear nada.

Cuando esté vivo, dame la URL nueva y confirma HTTP 200.
4

Registra la identidad del cliente (si no existe)

Las webs migradas suelen ser anteriores a los skills — no tienen identity.json. Déjalo escrito para que el QR y las campañas hereden su look:

Extrae la identidad corporativa de la web de [cliente] (la que acabo de migrar, en /root/workspace/[carpeta]/): paleta de colores, tipografías, logo real e idioma.

Regístrala en clientes/[slug]/identidad/identity.json con el formato del skill /diseno-web-cliente, copiando el logo real a identidad/. Incluye la URL oficial en web.url.

Si además le vas a hacer el QR, /qr-cliente-final puede extraer la identidad de la web publicada él solo — y la deja escrita para la próxima vez.

5

Da de baja la copia antigua en tu VPS

Una vez el nuevo dominio esté vivo y verificado, limpia la copia interna para no tener duplicados ni consumir puerto/RAM innecesarios.

Da de baja limpiamente la app [slug-actual] de mi VPS: elimina el proceso pm2, quita el bloque nginx de /apps/[slug-actual]/ y borra la entrada de la BD.

Usa DELETE /api/apps/[slug-actual]. Confirma que la URL antigua devuelve 404 y que el nuevo subdominio sigue 200.
6

Avisa al cliente del cambio de URL

Solo si ya le habías compartido la URL vieja. Un mensaje corto, como equipo de DANIA: "mejoramos tu web a un dominio más limpio, ahora es <slug>.plus.dania.ai — lo ves también en tu app". Si aún no la habías compartido, salta este paso.

Traspaso de un cliente a otro owner

Como la web vive en DANIA Central — no en el VPS de nadie — un cliente puede cambiar de owner sin un segundo de caída: se reasigna la ownership del slug en el portal (lo hace el equipo de DANIA con un setOwner) y con ella se transfieren los derechos de gestión y edición. Contacta al equipo por el buzón interno con la lista de slug → email del owner nuevo. El cliente no nota nada.

06 · Caso D

El cliente elige
su .com — incluido.

Novedad v2: el dominio propio (panaderiadonarosa.com) está incluido en todos los planes — si está libre, para el cliente es gratis. Lo busca, lo elige y lo registra él mismo desde su app o dashboard, y se engancha solo a su web. Tú no haces nada — solo confirmas cuando esté vivo.

1

Mientras no hay dominio: el link de DANIA

Desde el primer día, la web del cliente vive en su link de DANIA (<slug>.plus.dania.ai), visible en su app. Es perfectamente compartible: redes, tarjetas, WhatsApp. No hay prisa — el dominio se puede elegir cuando el cliente quiera.

2

El cliente busca y elige su dominio desde su app

En su app o dashboard DANIA, el cliente busca el nombre que quiere (.com incluido en su plan si está libre), lo elige y lo registra. Para él es gratis y sin fricción — toda la gestión (registro, renovación, DNS) es automática por detrás. Tu papel aquí, si acaso, es ayudarle a decidir un buen nombre.

3

El binding es automático

Al registrarse el dominio, el sistema lo dispara todo por detrás (s2s):

· Crea la zona DNS del dominio en el Cloudflare de DANIA.
· Apunta @ y www al portal (plus.dania.ai).
· Registra el mapeo dominio.com → slug en la BD.
· Regenera nginx del portal para que reconozca el nuevo dominio.

4

Segundos / minutos después: dominio vivo

El mismo contenido que servía <slug>.plus.dania.ai/ ahora también responde en <dominio-cliente>.com/. Sin nuevo deploy. Sin configuración tuya.

Punto clave: cualquier redeploy futuro que hagas (POST /api/apps/deploy-official con el mismo slug) actualiza ambas URLs a la vez. Un solo sitio, múltiples entradas.

5

¿Y si el cliente ya tenía un dominio comprado por fuera?

También funciona — pero el bind lo dispara el equipo de DANIA. Mándale por el buzón interno una task con el dominio + slug destino. El cliente después tendrá que cambiar los nameservers en su registrador (Namecheap, GoDaddy, etc.) a los que le devuelva Cloudflare — la plataforma le muestra los NS y le guía.

Lo que tú NO tienes que hacer

No registras dominios. No tocas DNS. No configuras nginx. No pides tickets. El cliente elige su dominio en su app y todo lo demás es automático. Solo haz cambios en tu carpeta y redeploya con el mismo slug — el resto es magia del portal.

✦ ✦ ✦
07 · Diseño

Que se vea
bien.

La dirección de arte ya no depende de tu prompt: /diseno-web-cliente trae la metodología anti-genérica y el gate de calidad /impeccable de serie. Tu trabajo es alimentar bien al skill — esto es lo que más diferencia un resultado bueno de uno espectacular.

01

Da referencias visuales

"Que se vea tipo Stripe / Apple / Airbnb / editorial de revista" es más útil que "que se vea bonito". Puedes pasarle screenshots o URLs de webs que te gusten — el skill las usa en su fase de dirección de arte.

02

Define el mood en 3 palabras

Elegante y oscura · Cálida y artesanal · Minimalista limpia · Cinematográfica dramática · Vibrante y juvenil. Con esas 3 palabras el skill sabe qué paleta y tipografía elegir. Si no las das, él propone.

03

Logo y fotos reales siempre

El skill usa el logo REAL del cliente (jamás uno recreado con IA) y prioriza sus fotos reales sobre cualquier imagen generada. Consíguelas al hacer el onboarding: una foto real del negocio hace más por la confianza que 10 stock photos.

04

Menos secciones, mejor ejecutadas

Una web con 5 secciones que respiran gana a una con 12 amontonadas. El skill arma la arquitectura por conversión: hero + servicios + prueba social + contacto/mapa + CTA de WhatsApp imposible de fallar.

05

La identidad es el contrato

Colores, tipografías, logo y voz quedan registrados en identity.json. Si más adelante cambias el look de la web, actualiza también la identidad — QR, campañas y creativos la leen automáticamente.

06

Revisa siempre en móvil

El ~90% del tráfico de un negocio local es móvil. El skill lo audita como experiencia propia, pero tu revisión final antes de publicar es en el teléfono: botones dedo-friendly de WhatsApp, llamar, cómo llegar.

Variantes del skill

# Web nueva con referencias visuales claras
/diseno-web-cliente

Cliente: [nombre][rubro] en [ciudad].
Onboarding: [servicios, contacto, horarios, idioma]
Logo y fotos reales: [dónde están]

Dirección de arte que quiero:
- Inspiración visual: [web referencia o mood board]
- Mood: [3 adjetivos, ej. "elegante, cálida, editorial"]
- Paleta: [colores concretos o "sácalos del logo/local"]
# Rediseñar una web existente (ya hecha, pero te sabe genérica)
/diseno-web-cliente

Cliente: [nombre] (slug: [slug]). La web YA existe en /root/workspace/clientes/[slug]/web/.

El contenido y las secciones se conservan — solo cambia el look:
- Elimina cualquier estética AI genérica (gradientes purple-blue por defecto, cards clonadas, iconos sueltos).
- Aplica lenguaje editorial: tipografía con carácter, más blancos, jerarquía clara.
- Mood: [3 adjetivos]. Paleta: [colores].

Al terminar, actualiza la identidad en clientes/[slug]/identidad/identity.json y pasa el gate /impeccable antes de enseñármela.

Tip pro

Si tienes 3 webs que te gustan como referencia (aunque sean de otros sectores), pásale las 3 al skill y dile "extrae los ingredientes visuales de estas 3 webs y combínalos para la web de mi cliente". Salen resultados mucho más únicos que pidiendo "web bonita" en abstracto.

08 · Compendio

Todos los prompts
en un solo sitio.

Copia el que te sirva. Sustituye lo que está en rosa con tus datos reales.

Publicación (curl directo)

# 1) Ver disponibilidad de tu credencial
STUDIO_TOKEN=$(grep -m1 '^STUDIO_TOKEN=' /root/.dania-platform/.env | cut -d= -f2-)
curl -sS -H "Authorization: Bearer $STUDIO_TOKEN" \
  http://localhost:4000/api/apps/deploy-official/available
# Debe devolver: {"available":true}
# 2) Publicar / actualizar una web al hosting oficial
curl -sS -X POST http://localhost:4000/api/apps/deploy-official \
  -H "Authorization: Bearer $STUDIO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"slug":"nombre-negocio","path":"/root/workspace/clientes/slug/web"}'
# 3) Ver mis sitios oficiales actualmente vinculados
curl -sS -H "Authorization: Bearer $STUDIO_TOKEN" \
  https://plus.dania.ai/api/official-sites/mine
# 4) Dar de baja una web local del VPS (no oficial)
curl -sS -X DELETE http://localhost:4000/api/apps/slug-local \
  -H "Authorization: Bearer $STUDIO_TOKEN"

Skills y prompts conversacionales

# Pack inicial completo de un cliente nuevo (web + QR)
/diseno-web-cliente

Cliente: [nombre][rubro] en [ciudad].
Onboarding: [servicios, contacto, horarios, idioma, logo y fotos]

Cuando la web esté aprobada y publicada en el hosting oficial (slug [slug]), corre también /qr-cliente-final para el mismo cliente con su ficha de Google: [link de Maps o nombre + ciudad].
# Solo el QR de reseñas (la web ya existe)
/qr-cliente-final

Cliente: [nombre] (slug: [slug])
Ficha de Google: [link de Maps / búsqueda / nombre + ciudad]
# Chequear estado
Muéstrame el estado del sistema de publicación oficial:
- Ejecuta GET /api/apps/deploy-official/available
- Consulta https://plus.dania.ai/api/official-sites/mine
- Lista los clientes con identidad registrada en clientes/*/identidad/identity.json
# Migración de web existente al central
Migra la web [slug-actual] de mi VPS al hosting oficial de DANIA con slug nuevo [slug-negocio].

Reutiliza la carpeta /root/workspace/[slug-actual]/ tal cual está.

Al terminar:
1. Confirma que <slug-negocio>.plus.dania.ai devuelve 200.
2. Extrae y registra la identidad en clientes/[slug-negocio]/identidad/identity.json.
3. Da de baja la app antigua en mi VPS (DELETE /api/apps/[slug-actual]) y verifica que la URL antigua devuelve 404.
# Actualización rápida (cambio menor)
Actualiza la web de [cliente] (slug: [slug]):

[Describe el cambio: precio nuevo, hora nueva, texto que se corrige, foto que cambia, sección nueva...]

Respeta la identidad de clientes/[slug]/identidad/identity.json (actualízala si el cambio toca colores/logo/tipografías). Cuando termines, redeploya con el mismo slug al hosting oficial y confirma que el cambio está en vivo.
09 · Dudas frecuentes

Lo que todos
se preguntan.

¿Necesito pedir permiso al equipo para publicar?
No. El endpoint POST /api/apps/deploy-official viene activado en tu VPS Plus por defecto. Tu STUDIO_TOKEN te identifica en el portal como owner. Puedes verificar con GET /api/apps/deploy-official/available — si te devuelve {"available":true}, estás listo.
¿Por qué la web del cliente no puede vivir en mi VPS?
Porque la web es del cliente, no de tu máquina. En el servidor central de DANIA su web no depende de que tu VPS esté sano, y si algún día el cliente pasa a otro owner, cliente y web se transfieren sin caída — con los derechos de gestión incluidos. Tú no pierdes nada operativamente: el control de edición sigue al 100% en tu Studio.
¿Puedo seguir usando mis prompts viejos de diseño?
El estándar ahora es /diseno-web-cliente: trae la metodología anti-genérica, pasa el gate /impeccable y — clave — registra la identidad corporativa que el QR y las campañas necesitan. Un prompt manual produce una web; el skill produce una web + el contrato de identidad del cliente. Usa el skill.
¿Qué es el identity.json y por qué importa tanto?
Es el contrato de identidad corporativa del cliente que fija la web: colores, tipografías, logo real, fotos aprobadas y voz, en clientes/<slug>/identidad/identity.json. /qr-cliente-final, las campañas y cualquier generación posterior lo leen automáticamente — por eso todo lo del cliente se ve consistente sin que repitas el branding cada vez. Si cambias el look de la web, actualízalo en el mismo cambio.
¿Cómo se entera el cliente de que su web o su QR están listos?
Hoy: le avisas tú, con los mensajes copiables de este manual, siempre como "el equipo de DANIA". Próximamente será automático: al entregar web, QR o campaña, el cliente recibirá la notificación en su app + push + email (y WhatsApp). Este manual se actualizará cuando esté vivo.
¿El dominio le cuesta algo al cliente?
No — está incluido en todos los planes (si el nombre está libre). El cliente lo busca, lo elige y lo registra desde su app o dashboard; el registro, la renovación y el DNS se gestionan automáticamente por detrás. Mientras no elija dominio, su web vive en el link de DANIA visible en su app — perfectamente compartible.
¿Y si el slug que quiero ya está ocupado?
El sistema responde 409 con un mensaje claro. Prueba con variantes: pedros-barber, barberpedros, pedrosbarbervb (añadiendo la ciudad). Ownership se asigna al primero que lo publica, así que si tu cliente tiene un nombre común, reserva pronto.
¿Puedo cambiar el slug después de publicar?
No directamente. Un slug es identidad — cambiarlo implicaría republicar con slug nuevo + dar de baja el viejo. Además, si el cliente ya compartió su URL, se le rompen enlaces. Elige bien el slug la primera vez.
¿Cuánto tarda un deploy?
Segundos. El empaquetado local tarda 1-3s, la subida al portal 1-5s dependiendo del tamaño, la extracción y creación de DNS 3-8s. Total típico: 10-15 segundos desde que ejecutas el curl hasta que la URL responde HTTP 200.
¿Cuánto peso puede tener la web?
El endpoint acepta hasta 80 MB por deploy (comprimido en .tar.gz). Para una web estática con fotos optimizadas eso es un montón. Si necesitas más (vídeos hero, galerías grandes), considera separar los assets en un <slug>-media aparte, igual que Pedro's, Sebastian, Mana, etc.
¿Puedo probar sin publicar aún al público?
Sí — de hecho es parte del flujo del skill: /diseno-web-cliente te sirve la web en el Preview tab con /serve antes de publicar nada. Cuando des el OK, dispara el deploy-official.
¿Y si necesito borrar una web oficial?
El endpoint DELETE /api/official-sites/:slug existe pero está reservado al equipo DANIA (necesita token oficial). Pídelo al equipo por el buzón interno si necesitas dar de baja un sitio.
¿La web oficial es visible en Google?
Sí, cada <slug>.plus.dania.ai/ es indexable. Cuando el cliente elija su .com incluido, Google también lo indexa. El skill ya incluye meta description, OG tags y structured data de negocio local — así la web sale bonita compartida en WhatsApp / redes desde el día uno.
¿Qué hago si algo falla?
El endpoint devuelve códigos y mensajes claros: 400 (slug o path inválido), 403 (slug de otro owner), 409 (colisión), 502 (portal down o DNS fail). Léelo con calma. Si el error es del portal (502) pídele a tu Claude que reintente en 30 s. Si persiste, mándale un mensaje al equipo por el buzón interno con el error exacto que te devolvió.
¿Y si el cliente ya me pasó su dominio comprado por fuera de DANIA?
Ese caso también funciona — pero el bind lo tiene que disparar el equipo DANIA (endpoint s2s). Mándale al equipo por el buzón interno una task con el dominio + slug destino y ellos ejecutan el POST /api/domains/bind. El cliente después tendrá que cambiar sus nameservers en su registrador a los que le devuelva Cloudflare.
¿Puedo tener varios .com apuntando al mismo slug?
Sí. Un slug oficial acepta N dominios custom. Útil si el cliente tiene panaderia-dona-rosa.com + panaderiadonarosa.es — los dos apuntan al mismo contenido. Pídele el bind adicional al equipo por el buzón interno.
¿El deploy sobreescribe o versiona?
Sobreescribe atómicamente. El portal borra el directorio anterior y extrae el nuevo. No hay historial de versiones. Si necesitas rollback, guarda tú una copia del tar de la versión previa en tu VPS antes de redeployar.