El 6 de octubre, Telegram actualizó Serverless, su plataforma para el código de bots. Ahora también aloja el frontend de las miniaplicaciones: la compilación se despliega junto con el bot con un solo comando y se abre en una dirección como app<id>.tgcloud.ai. La miniaplicación ahora tiene funciones de servidor que invoca desde telegram-web-app.js. La actualización afecta a todos los que mantienen el backend de un bot o una miniaplicación en su propio servidor, y a aquellos que ya migraron su bot a Serverless en julio: el proyecto antiguo debe migrarse una única vez a la nueva estructura de carpetas.

Serverless es un backend para bots que Telegram ejecuta en sus propios servidores. El código se escribe con módulos JavaScript estándar y se ejecuta en aislados V8, es decir, en sandboxes ligeras dentro de un mismo proceso, junto con la Bot API. El código viene con una base de datos SQLite y HTTP saliente. No se necesitan servidores, contenedores ni webhooks propios. La primera versión de la herramienta de línea de comandos @tgcloud/cli se lanzó en npm el 12 de julio, y la página de documentación apareció en el archivo web el 13 de julio. En ese momento, la plataforma solo podía responder a las actualizaciones del bot: la versión de julio de la documentación no contenía ninguna sección sobre el frontend ni la palabra "endpoint".
Qué cambió el 6 de octubre
| Qué | Cómo funciona |
|---|---|
| Alojamiento de miniaplicaciones | La carpeta de compilación (dist en Vite) se carga junto con el código del bot y se sirve desde https://app<app_id>.tgcloud.ai/ |
| Endpoints | El archivo tgcloud/endpoints/<name>.js se convierte en una función que la miniaplicación invoca por su nombre |
| Herramienta 0.2.0 | Publicada en npm el 6 de octubre a las 10:52 UTC |
tgcloud.jsonc | Archivo de configuración del proyecto en la raíz: carpeta de compilación, modo SPA, caché, encabezados, redirecciones |
| Importación por ruta relativa | ../schema.js en lugar del nombre del módulo, con el .js obligatorio, para que el editor entienda las definiciones |
Carpeta tgcloud/ | schema.js, lib/, handlers/ y endpoints/ se movieron de la raíz a esta carpeta, dejando la raíz libre para el frontend |
La miniaplicación ya no requiere un alojamiento, certificado o servidor API separados. El frontend se compila con cualquier bundler, la herramienta compara los archivos por sus hashes y solo carga los modificados. La dirección que imprime push se introduce en @BotFather como la dirección de la miniaplicación.
Qué hacer con un proyecto en la versión 0.1
La herramienta 0.2.0 se negará a trabajar con la estructura antigua hasta que el proyecto se migre a la nueva. La migración se realiza con un solo comando:
npx tgcloud upgrademueveschema.js,lib/yhandlers/a la carpetatgcloud/. Los nombres de los módulos (lib/cart,handlers/message) no cambian.- Las importaciones por nombre de módulo siguen funcionando, pero la documentación aconseja cambiar a rutas relativas con
.js.
Para quienes conectan una miniaplicación:
pushcarga la carpeta de compilación tal cual y no compila nada por sí mismo. Si se ejecuta después de modificar el frontend sin compilar, la versión anterior se enviará a producción. El scriptnpm run deploy, que añade la plantilla del proyecto, primero compila y luego carga.- Telegram Web abre las miniaplicaciones en un iframe, por lo que no se pueden establecer los encabezados
X-Frame-Optionsni unframe-ancestorsestricto. - La ruta
/api/en la misma dirección está ocupada por los endpoints, por lo que no se deben colocar archivos propios allí. immutableen la configuración es solo para archivos con un hash en el nombre. Los demás serán mantenidos en caché por el navegador durante un año, y no habrá forma de revocarlos.- La herramienta no reconoce automáticamente Next.js, Nuxt, SvelteKit y Angular: primero es necesario configurar la exportación estática e introducir manualmente su carpeta en
"source".
Cómo la miniaplicación invoca su backend
El mismo día, a las 09:27 UTC, Telegram actualizó telegram-web-app.js, el script que conecta cualquier miniaplicación. En él apareció el objeto Telegram.WebApp.Serverless con un único método call. El método realiza una petición POST a la dirección relativa /api/<name>, es decir, al mismo host desde el que se abre la aplicación. Por lo tanto, la invocación solo funciona para miniaplicaciones alojadas en tgcloud.ai: desde un dominio propio, la petición irá al servidor propio.
En el encabezado Authorization, el script coloca la cadena TMA y initData en base64. initData es un conjunto de campos firmados por Telegram sobre el usuario y el chat con el que el cliente abre la miniaplicación. La plataforma verifica la firma antes de ejecutar el código, y sin ella, la petición recibe un 401. El endpoint recibe al usuario ya verificado en ctx.initData.user. Ya no es necesario verificar la firma de initData manualmente, como ocurre en un servidor propio, y un backend de este tipo no tiene una API abierta que deba protegerse.
Los errores se dividen en dos tipos. Un EndpointError, lanzado intencionadamente por el código, llega al cliente con texto y parámetros que el frontend puede usar para ramificar. Cualquier otra excepción es vista por el cliente como un error interno, y el texto real permanece en los registros para que la estructura del backend no se filtre al exterior.
Qué informa el servidor sobre sí mismo sin token
La herramienta se comunica con la API en cloud.telegram.org. Uno de sus métodos, /capabilities, responde sin autorización: describe la estructura del proyecto, las plantillas AGENTS.md y docs/tgcloud-sdk.md, y una lista de los 27 tipos de actualizaciones a los que se puede adjuntar un manejador. La herramienta compara el número de esquema del proyecto con esta respuesta y advierte si el servidor ya conoce carpetas que ella aún no. En el código de la herramienta también hay un interruptor TGCLOUD_BETA=1 que dirige las peticiones a /beta. A 6 de octubre, la respuesta beta coincide con la principal.
Por qué el dominio se llama .ai
El dominio tgcloud.ai fue registrado el 11 de septiembre de 2026 a través de GoDaddy. El mismo día se emitió un certificado *.tgcloud.ai para él, uno para todos los subdominios del tipo app<id>. La dirección IP del dominio, 149.154.166.100, se encuentra en la red Telegram_Messenger_Network (AS62041). La raíz del dominio devuelve un 404 vacío: la plataforma no tiene una vitrina, solo subdominios de aplicaciones.
La terminación por sí sola no prueba nada: .ai es el dominio nacional de Anguila, que ha sido adoptado por proyectos tecnológicos desde hace mucho tiempo. Y tgcloud.com está ocupado desde 2011 por un propietario externo, por lo que la elección podría haber sido una simple cuestión de un nombre disponible.
Pero la plataforma se construyó desde el primer día en torno a agentes de IA que escriben código y bots que generan respuestas.
- El código lo escribe un agente. La sección «Building with AI» está en la documentación desde julio. Cada nuevo proyecto recibe un
AGENTS.mdque, según la propia plantilla, es leído automáticamente por Claude Code, Cursor y herramientas similares, y una referencia del SDK endocs/. La documentación sugiere abrir el proyecto en un agente y describir el bot con palabras, y llama a este paso el primero. - El entorno está diseñado para código generado. No hay paquetes npm, un solo SDK, reglas estrictas como un archivo por tipo de actualización. Cuantas menos opciones, menos errores comete el agente, y la documentación enumera directamente los acuerdos que la "generación de código normal" omite.
- Un bot que genera una respuesta. Entre los 27 tipos de actualizaciones que acepta Serverless, se encuentran
stopped_message_generationyguest_message. Ambos aparecieron en la Bot API en primavera y verano junto con otras funciones para bots basados en modelos de lenguaje.
| Fecha | Versión de la Bot API | Qué apareció |
|---|---|---|
| 31 de diciembre de 2025 | 9.3 | sendMessageDraft: la respuesta se muestra al usuario a medida que se genera |
| 8 de mayo de 2026 | 10.0 | Modo invitado: en un mensaje se pueden invitar hasta tres bots que no están en el chat |
| 24 de agosto de 2026 | 10.3 | El usuario puede detener la generación, el bot recibe una actualización al respecto |
| 6 de octubre de 2026 | Serverless | Miniaplicación y su backend en una misma plataforma, AGENTS.md en cada proyecto |
Lo que Serverless aún no tiene es el modelo en sí. El SDK consta de tres partes: base de datos (sdk/db), Bot API (sdk/api) y fetch. Para que un bot en Serverless responda con texto de un modelo de lenguaje, utiliza fetch para acceder a una API externa con su propia clave. La documentación de fetch menciona específicamente la lectura en streaming de la respuesta como una forma de recibir la salida de la API de IA token por token.
Telegram tiene sus propias capacidades para redes neuronales. Cocoon, una red de computación confidencial en GPU con pagos en TON, fue presentada por Durov en Blockchain Life 2025, y su sitio web se sirve desde la misma dirección en la red de Telegram que telegram.org. De aquí surge una hipótesis: la siguiente parte del SDK podría ser una llamada a modelo integrada, sin clave externa y con pago a través de Telegram. La segunda hipótesis concierne a @BotFather: el editor de manejadores, bases de datos y archivos de la Mini App ya reside en él en el teléfono, y la descripción del bot con palabras en lugar de código parece el siguiente paso para dicho editor. Ninguna de las hipótesis ha sido confirmada todavía por nada más que el dominio y la dirección de las últimas actualizaciones: en la documentación, la utilidad y la respuesta /capabilities del 6 de octubre, no hay ningún módulo para redes neuronales.



