Cómo creo Telegram Mini Apps

2026-09-10

Una Telegram Mini App es una aplicación web que se abre dentro de Telegram, con el usuario ya autenticado y en el chat adecuado. Esa es toda la propuesta: sin crear otra cuenta, descargar nada ni restablecer una contraseña. Las construyo como cualquier producto web de producción: Next.js y TypeScript en el frontend, Node.js en el backend y algunas reglas propias de Telegram. La última que entregué, bajo NDA, fue una Web App y Mini App fintech con tarjetas virtuales y físicas, desarrollada con Next.js, Express y MongoDB.

Todo empieza con el bot. BotFather crea el bot y la Mini App. El usuario puede abrirla desde el botón de menú, un botón de teclado inline o un enlace directo t.me con el parámetro startapp, que permite pasar un código de referido o enlazar directamente a una pantalla. La aplicación se sirve por HTTPS desde un alojamiento normal; durante el desarrollo, un túnel dirige Telegram a localhost para que pueda probarla en un teléfono real, no solo en el navegador de escritorio.

La autenticación es la parte en la que nunca recorto trabajo. Telegram entrega initData a la aplicación: id y nombre del usuario, auth_date y un hash. initDataUnsafe significa exactamente lo que parece: sirve para mostrar un nombre, nunca para confiar. El backend valida los initData originales con una firma HMAC derivada del token del bot, comprueba que auth_date sea reciente y solo entonces emite su propia sesión. El token del bot nunca sale del servidor. En un producto fintech, esa comprobación separa «sesión iniciada mediante Telegram» de «cualquiera con las herramientas de desarrollo puede hacerse pasar por quien quiera».

Después, la Mini App debe sentirse nativa, no como un sitio incrustado en una webview. Leo themeParams y las variables CSS de Telegram para seguir el tema claro u oscuro de la aplicación, uso MainButton y BackButton en vez de dibujar los míos, añado respuesta háptica en las acciones importantes y respeto el viewport y los márgenes de la safe area para que nada quede bajo la cabecera o el indicador de inicio. Aquí mobile-first no es un eslogan: la mayoría de las sesiones se hacen con un pulgar en el teléfono.

El bot y la Mini App trabajan en pareja. El bot envía notificaciones, confirmaciones y recibos; la Mini App gestiona las pantallas que necesitan un formulario, una lista o un checkout. Los webhooks llegan al backend de Node.js, que sigue siendo la única fuente de verdad para los pagos y el estado: el cliente pregunta, pero nunca decide. Los bienes digitales dentro de Telegram se pagan con Stars; para bienes físicos y servicios se pueden usar proveedores de pago. Aclaro esto pronto con el cliente, porque determina todo el flujo.

No acepto confiar en initDataUnsafe, encajar un sitio de escritorio en una webview, dejar el checkout solo en el frontend ni crear una Mini App sin una puerta web cuando la empresa también necesita SEO o un panel interno. Si quieres lanzar algo dentro de Telegram, envíame la acción que el usuario debe completar en el chat. Te responderé con el flujo del bot, las pantallas de la Mini App y lo que debe permanecer en el servidor.

Dale al próximo producto alguien que se quede.

¿Listo para empezar? Envíame un mensaje: puedo comenzar ahora y quedarme. Colaboraciones a largo plazo, no una entrega de dos semanas. Hablemos de tu proyecto, requisitos y la mejor forma de avanzar.

Pregunta sobre mi experiencia o servicios