Capítulo publicar de la guía Neblla — galería pública y modelo de cuotas. El contrato base está en core.txt. # Publicar y cuotas ## Publicar en la galería Crear una app (en developers.neblla.com o vía MCP) la deja ejecutable en privado en `play.neblla.com/`. Los archivos están en producción en cuanto se suben. Publicarla en la galería pública (listarla en play.neblla.com) es un paso aparte y requiere estos metadatos: - **section** — `"singleplayer"`, `"multiplayer"`, o `"app"`. - **titles** — objeto con título por idioma: `{ en: "…", es: "…", … }`. La herramienta MCP de publicación traduce a los 10 idiomas soportados: en, es, fr, de, it, pt, ja, ko, zh, ar. - **descriptions** — objeto con descripción por idioma (máx 500 chars). - **tags** — hasta 20 tags cortos. - **defaultLang** — el idioma original del contenido. - **bestOn** — `"mobile"`, `"desktop"`, o se omite para ambos. - **portrait** — imagen de portada opcional: URL, data URI o base64. Se escala automáticamente a un JPEG 400x400. ## El modelo de cuotas Neblla asigna una **cuota diaria** por app: un presupuesto en unidades que la app consume según los servicios que use. Suficiente para validar el juego con familia y amigos; no para uso comercial. Cuando la app crece, dos caminos: - Llevarse solo los painpoints a infra propia (BBDD, sockets, lo que sea) y dejar el resto en Neblla. Se paga al proveedor solo ese trozo. - Subscribirse a una cuota mayor de Neblla y seguir con todo bajo el mismo techo. Todos los servicios consumen unidades del mismo pack: la cuota se adapta sola al uso real, sin dimensionar nada por anticipado. ## Consumos por acción 1 unidad ≈ 1 byte de payload, salvo los costes fijos: ``` Acción Coste (unidades) ────────────────────────────────────── ──────────────── Conectar el SDK (handshake) 100 Entrar / crear una sala (joinRoom) 100 Heartbeat (cada ~30s) 1 sendMessage (cliente → sala) tamaño del payload en bytes tellServer / tellPresenter tamaño del payload en bytes sendMessage / setState (servidor → sala) tamaño del payload en bytes setPublicInfo tamaño del payload en bytes setRoomData (room.data persistente) tamaño del payload en bytes sendCommunication / updateCommunication tamaño del payload en bytes neblla.ai(...) — por llamada 500 (los tokens de Claude se facturan aparte, contra la clave del dev o del usuario) ``` ## Lo que NO consume cuota - Los mensajes y ficheros que viajan P2P (WebRTC, nunca tocan a Neblla). - `save()` cuando hay BBDD propia configurada (ver identidad.txt). - `neblla.ai()` en modo `browser` (la llamada va directa del navegador a Anthropic). Estos números pueden ajustarse con el tiempo; el panel del dashboard muestra siempre el consumo real.