Mientras lees estas líneas, OpenAI acaba de abrir las puertas. Ayer – literalmente ayer – lanzaron el App Directory para ChatGPT y abrieron las solicitudes para TODOS los desarrolladores. No solo para socios seleccionados. Para todo el mundo. Incluido tú.

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 1

800 millones de usuarios. Prácticamente sin competencia. La ventana de oportunidad está abierta ahora mismo. Y se cerrará en unos meses cuando todos se precipiten.

Este no es otro artículo sobre "mira lo que podrías hacer algún día". Es una guía para los que quieren aprovechar el momento ahora, mientras el mercado está vacío.


¿Recuerdas cómo se abrió el App Store en 2008, y todos pensaban "¿quién necesita apps en un teléfono?" Luego Angry Birds ganó mil millones de dólares, Instagram se vendió a Facebook por mil millones, Uber creció a 80 mil millones. Los primeros desarrolladores que entraron en ese momento dieron en el clavo simplemente porque fueron los primeros.

Estamos en diciembre de 2025. Y exactamente lo mismo está pasando ahora. Excepto que ahora se llama ChatGPT Apps.

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 2

El 6 de octubre OpenAI lanzó una nueva plataforma – y ¿sabes cuántos usuarios tiene en el lanzamiento? 800 millones. No 10 millones como el iPhone en 2008. Ochocientos millones. El App Store era 80 veces más pequeño en el lanzamiento. ¿Entiendes?

¿Y cuántos competidores hay ahora? Al 18 de diciembre – menos de veinte apps. Spotify, Booking.com, Canva, Zillow, AllTrails, algunas herramientas empresariales. Eso es todo. Literalmente todo. El mercado está completamente vacío. Y ayer OpenAI abrió las solicitudes para todos los desarrolladores – incluido tú.

No bromeo. Escribes en ChatGPT: "Spotify, crea una playlist para correr" – y directamente en el chat se abre un widget de Spotify. Con canciones, botones, todo funciona. Sin cambiar pestañas, sin copiar-pegar. Magia.

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 3

O: "Booking, encuentra un hotel en París por debajo de 100 €" – bum, un mapa con opciones, fotos, puedes reservar inmediatamente.

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 4

Y tú puedes crear el mismo tipo de app.

Déjame mostrarte cómo.

Por qué esto no es solo otra "nueva característica"

Escucha, lo entiendo. Todos han desarrollado inmunidad a las noticias tipo "wow, una nueva tecnología va a cambiar el mundo". Cada semana algo nuevo. Crypto, NFT, metaverso, AGI llega la semana que viene. ¿Cansado del hype? Yo también.

Pero esto es diferente. Miremos los números.

App Store en 2008:

  • 10 millones de usuarios de iPhone en el lanzamiento
  • Para desarrollar una app, necesitabas un Mac (mínimo $1000) y un dispositivo para probar
  • La competencia empezó desde cero, pero después de seis meses había miles de apps
  • Tenías que aprender Objective-C (sí, esa pesadilla con corchetes)

¿Qué salió de eso? Instagram se vendió por mil millones, Angry Birds tuvo mil millones de descargas, Uber ahora vale 80+ mil millones.

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 5

La gente que entró primero – simplemente llegaron a tiempo. Estaban ahí cuando no había competencia.

ChatGPT Apps ahora:

  • 800 millones de usuarios activos cada semana
  • Desarrollo – laptop ordinario, cualquier OS, herramientas gratis
  • Menos de veinte competidores (¡el 17 de diciembre abrieron solicitudes para todos!)
  • Stack técnico – TypeScript o Python, que ya conoces

Las matemáticas son simples: audiencia 80 veces más grande, competidores cientos de veces menos, barrera de entrada varias veces más baja.

Esto no es hype. Es una ventana de oportunidad que se abrió AYER (17 de diciembre) y se cerrará en 2-3 meses cuando todos se apresuren. Las primeras apps aprobadas comenzarán a aparecer en el catálogo en enero de 2026. Ahora mismo casi no hay nadie ahí.

Qué son exactamente estas ChatGPT Apps (sin rollos)

Vale, saltemos primero la jerga técnica. En español claro.

Antes era así: estás en ChatGPT, quieres hacer algo – digamos, reservar un hotel. ChatGPT te da consejos, luego copias el nombre del hotel, abres Booking.com en una nueva pestaña, buscas, reservas. Montones de cambios de ventanas. Molesto.

Ahora es así: escribes en ChatGPT "Booking, encuentra un hotel en Madrid para el fin de semana por debajo de 80 €" y directamente en el chat – un mapa, lista de opciones, fotos, precios, puedes hacer clic y reservar. Todo ahí. Sin pestañas.

¿Parece un detalle? Bueno, Apple también parecía un detalle – "¿para qué pantalla táctil cuando tienes botones?" Luego Nokia murió.

ChatGPT Apps NO son:

Aclararé de inmediato, para que no haya confusión (yo también estaba confundido al principio).

NO son Custom GPTs. Los Custom GPTs son solo chatbots con instrucciones. Les dices "responde como un pirata" – responden como un pirata. Eso es todo. Sin widgets, sin interactividad.

NO son ChatGPT Plugins. OpenAI cerró los Plugins en abril de 2024. Eran lentos, torpes, funcionaban mal. Los enterraron, con razón.

NO es trabajar con la API de ChatGPT. La API es cuando haces tu propia app y usas ChatGPT dentro. Historia completamente diferente.

Entonces, ¿qué es?

ChatGPT Apps son aplicaciones completas dentro de ChatGPT. Con interfaz, botones, tarjetas, mapas, video – lo que quieras. Creas el backend (en TypeScript o Python), haces la UI (HTML/CSS/JS normal), y ChatGPT lo renderiza directamente en el chat.

Ejemplo de flujo de trabajo (paso a paso):

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 6
  1. Usuario: "Zillow, muéstrame casas en Nueva York por debajo de 500k $"
  2. ChatGPT entiende: necesito llamar a la app Zillow
  3. Envía una solicitud a tu servidor (se llama servidor MCP, pero más sobre eso después)
  4. Tu servidor: busca casas, forma una respuesta + HTML para el widget
  5. ChatGPT recibe los datos y muestra el widget con mapa, fotos, descripciones
  6. El usuario hace clic en una casa → ve los detalles
  7. Dice: "Quita todo por encima de 400k $" → la lista se actualiza
  8. Encontró lo que necesita → hace clic en "Abrir en Zillow" → se abre el sitio

Toda la magia es que esto sucede sin cambiar de contexto. La conversación con ChatGPT no se interrumpe. Simplemente dices lo que quieres, y todo aparece ahí.

¿Para qué se necesita esto?

Pregunta legítima. Aquí hay un caso de uso real:

Antes: Quiero reservar una mesa en un restaurante después de visitar un museo.

  1. Abre el sitio del museo, revisa los horarios
  2. Googlea restaurantes cercanos
  3. Elige uno, abre OpenTable
  4. Reserva
  5. Añade un recordatorio al calendario

Ahora: "ChatGPT, reserva un restaurante cerca del Museo del Prado después de su cierre."

  • ChatGPT averigua la hora de cierre
  • Encuentra restaurantes cercanos
  • Propone opciones (con mapas, menús, reseñas)
  • Reserva una mesa
  • Añade al calendario

Una frase en lugar de cinco pasos.

Por eso necesitamos esto.

Tres razones por las que los desarrolladores ya se están apresurando

1. Acceso instantáneo a la audiencia (es injusto, pero funciona)

El camino habitual de una startup:

  • Idea → MVP → lanzamiento
  • Monta un sitio, configura analytics
  • SEO (meses de espera)
  • Anuncios pagados (dinero, dinero, dinero)
  • Llamadas en frío, emails
  • Después de un año: 1000 usuarios (si tienes suerte)

Con ChatGPT Apps:

Haces una app. La publicas en el Store. El usuario escribe "Encuéntrame una receta de carbonara" – y si tienes una app de recetas, ChatGPT mismo sugiere tu app.

No tú buscas usuarios. ChatGPT te los trae.

Es como tener al mejor vendedor del mundo que trabaja 24/7 gratis y conoce personalmente a los 800 millones de usuarios.

Ahora imagina que tienes tres competidores. No tres mil. Tres. En algunos nichos puede que no haya nadie en absoluto.

2. No necesitas construir UI desde cero (pero deberías estudiar las guidelines)

¿Sabes cuánto tiempo toma una UI decente en una app? Meses. Responsive, compatibilidad con navegadores, temas (claro/oscuro), accesibilidad. Más versión iOS separada, Android separada. Trabajo hasta el cuello.

Con ChatGPT Apps – ChatGPT renderiza la UI por ti. Das un template HTML, lo integra en la interfaz. ¿Temas? Automático. ¿Responsive? Automático. ¿iOS/Android? Funciona en todas partes, es web.

Pero hay un truco: OpenAI proporciona guidelines de diseño claras. No es "haz lo que quieras". Hay recomendaciones para tamaños de widgets, esquemas de colores, tipografía, espaciado. Todo está claramente documentado.

La buena noticia: seguir estas guidelines es más fácil que crear un sistema de diseño desde cero. OpenAI ya ha pensado en la coherencia, accesibilidad, patrones UX. Solo aplicas sus estándares.

Te concentras en la lógica, en los datos, en lo que hace que tu app sea útil. No en hacer que un botón se vea igual en diferentes dispositivos.

3. Ventaja del primero en llegar (la ventana está abierta AHORA)

Escucha con atención, porque esta es la parte más importante del artículo.

17 de diciembre de 2025 – ayer – OpenAI lanzó el App Directory y abrió las solicitudes para todos los desarrolladores. No para socios, no para corporaciones. Para todos. Puedes ir a platform.openai.com ahora y enviar tu app para revisión.

Lo que hay ahora:

  • Spotify, Booking.com, Expedia (viajes)
  • Canva, Figma (diseño)
  • Zillow (inmobiliaria)
  • Coursera (educación)
  • AllTrails, Coupler, Daloopa, Coveo, Egnyte, Hex (herramientas empresariales)

Cuéntalas. Menos de veinte apps para 800 millones de usuarios. El catálogo App Directory está prácticamente vacío. Las secciones Featured están vacías. Los algoritmos de recomendación apenas se están ajustando.

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 7

Las primeras apps aprobadas comenzarán a aparecer en enero de 2026. Eso significa que tienes 2-3 semanas para hacer una app de calidad y enviarla para revisión. Y una oportunidad de estar en la primera ola.

Para el verano de 2026 habrá:

  • Miles de desarrolladores
  • Cientos de startups
  • Montones de imitadores
  • Competencia feroz por los lugares Featured
  • Algoritmo de recomendación ya entrenado en miles de apps

Pero no te preocupes. Eso no significa que sea demasiado tarde en verano. ChatGPT Apps no es una característica hype que desaparecerá en un año. Es una plataforma fundamental que está aquí para quedarse.

Analogía: El App Store se lanzó en 2008, y nuevas apps exitosas siguen saliendo hoy. TikTok explotó el mercado en 2018 – 10 años después del lanzamiento de la tienda. Clubhouse valía miles de millones en 2020.

ChatGPT Apps crecerá y evolucionará durante años. Es solo que los que entren en la primera ola – en los próximos 2-3 meses – obtendrán el máximo beneficio: menos competidores, más atención, primeras posiciones en los rankings, reputación de pioneros, oportunidad de ser Featured.

Puedes entrar en seis meses también. Pero ahora es una ventana de oportunidad con riesgo mínimo y retorno máximo. El catálogo está vacío. Las solicitudes están abiertas. La competencia casi no existe.

En un mes habrá cientos de solicitudes. En tres meses – miles. Pero ahora puedes ser uno de los primeros veinte.

Cómo funciona técnicamente (sin jerga)

Okay, suficiente marketing. Vayamos al grano – cómo está construido bajo el capó.

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 8

Diagrama simple

Usuario 
    ↓ escribe un prompt
ChatGPT UI (lo que ves)
    ↓ entiende qué herramienta se necesita
Apps SDK Runtime (motor)
    ↓ envía solicitud
Tu servidor MCP (tu código)
    ↓ procesa, llama APIs
Tu base de datos / servicios externos
    ↓ devuelve datos
Widget (HTML/CSS/JS en iframe)
    ↓ muestra
El usuario ve el resultado

En realidad, una solicitud se ve así:

Usuario: "Spotify, crea una playlist para correr por la mañana"

  1. ChatGPT: Ok, es sobre música, necesito la herramienta create_playlist de Spotify
  2. ChatGPT → Tu servidor: Solicitud POST con parámetros {theme: "morning_run", duration: 30}
  3. Tu servidor:

- Recibió solicitud

- Llamó a la API de Spotify

- Compiló lista de canciones

- Formó respuesta + HTML para el widget

  1. Tu servidor → ChatGPT: Aquí están tus datos + template UI
  2. ChatGPT: Renderiza el widget en iframe (sandbox protegido)
  3. Widget: Recibe datos a través de la API window.openai
  4. Usuario: Ve la playlist, puede escuchar, editar

El proceso completo toma unos segundos.

Protocolo MCP – qué es y para qué

MCP = Model Context Protocol. Es un estándar abierto para conectar IA a herramientas y datos externos.

Breve historia:

  • Noviembre 2024 → Anthropic (creadores de Claude) anunció MCP
  • Marzo 2025 → OpenAI dijo "sí, hacemos lo mismo"
  • Diciembre 2025 → MCP transferido a Linux Foundation

Ahora es un estándar común. Construye un servidor MCP una vez – funciona con ChatGPT, con Claude, con VS Code, con cualquier cliente IA.

Analogía: ¿recuerdas cómo cada teléfono tenía su propio cargador antes? Nokia uno, Samsung otro, iPhone un tercero. Realmente molesto. Luego inventaron USB-C – un puerto para todos.

MCP es el USB-C para aplicaciones IA.

Los tres pilares de MCP

MCP se compone de tres primitivos. Suena aterrador, pero en realidad es simple:

1. Tools (Herramientas)

Son funciones que la IA puede llamar. Por ejemplo:

  • search_products — encontrar productos
  • book_hotel — reservar hotel
  • create_playlist — crear playlist
  • get_weather — obtener clima

Registras una herramienta, describes los parámetros (qué pasar), y ChatGPT entiende automáticamente cuándo llamarla.

2. Resources (Recursos)

Son fuentes de datos o templates UI. Por ejemplo:

  • Archivo HTML con un widget
  • JSON con datos de usuario
  • Imágenes, videos

Tú controlas los Resources, no la IA. Tú decides qué devolver y en qué formato.

3. Prompts

Templates reutilizables para tareas comunes. Si tienes un escenario estándar, puedes describirlo una vez, y los usuarios lo usarán más rápido.

¿Honestamente? Los Prompts se usan raramente. Tools y Resources – eso es lo importante.

¿Y la seguridad?

Los widgets funcionan en un iframe sandbox – un entorno aislado. No pueden:

  • Leer cookies de otros sitios
  • Ejecutar JavaScript arbitrario en el contexto de ChatGPT
  • Acceder a datos de otros usuarios

Todas las solicitudes pasan por HTTPS. Los datos en tránsito están cifrados TLS 1.2+. Almacenamiento – AES-256. OpenAI pasó auditoría SOC 2 Type 2, cumple GDPR/CCPA.

En resumen, la seguridad es sólida. No necesitas reinventar la rueda.

Construyendo tu primera app (ahora)

Suficiente teoría. Hagamos una app real. Ahora. En 20-30 minutos.

Lo que vamos a construir: Todo List. Sí, lo sé, es un cliché. Pero es simple y claro. Construye un todo – entiende el principio – luego modela naves espaciales si quieres.

Lo que necesitas

  • Node.js (probablemente ya instalado)
  • Cualquier editor de código
  • Terminal
  • ngrok (para URL pública)

Todo gratis, todo disponible.

Paso 1: Crear el proyecto

mkdir my-first-chatgpt-app
cd my-first-chatgpt-app
npm init -y
npm install @modelcontextprotocol/sdk

package.json debería verse así:

{
  "type": "module",
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.20.2"
  }
}

> Nota: En el ejemplo, usamos JSON Schema directamente para validar parámetros. Si quieres validación más potente, puedes añadir zod y usarlo dentro del handler de la herramienta.

Paso 2: Escribir el servidor MCP

Crea un archivo server.js:

import { createServer } from "node:http";
import { readFileSync } from "node:fs";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";

// HTML con widget (crearemos en el siguiente paso)
const widgetHtml = readFileSync("widget.html", "utf8");

// Nuestro "almacenamiento" de tareas (en realidad sería una base de datos)
let todos = [];
let nextId = 1;

function createTodoServer() {
  const server = new McpServer({ 
    name: "my-todo-app", 
    version: "1.0.0" 
  });

  // Registrar el widget UI como Resource
  server.registerResource(
    "todo-widget",
    "ui://widget/todo.html",
    {},
    async () => ({
      contents: [{
        uri: "ui://widget/todo.html",
        mimeType: "text/html+skybridge",  // ¡Importante! No funcionará sin esto
        text: widgetHtml,
        _meta: { 
          "openai/widgetPrefersBorder": true  // Borde alrededor del widget
        },
      }],
    })
  );

  // Registrar Tool para añadir tareas
  server.registerTool(
    "add_todo",
    {
      title: "Añadir tarea",
      description: "Añade una nueva tarea a la lista",
      inputSchema: {
        type: "object",
        properties: {
          title: {
            type: "string",
            description: "Título de la tarea"
          }
        },
        required: ["title"]
      },
      _meta: {
        "openai/outputTemplate": "ui://widget/todo.html",  // Qué widget mostrar
        "openai/toolInvocation/invoking": "Añadiendo tarea...",  // Texto durante carga
        "openai/toolInvocation/invoked": "Tarea añadida ✓",  // Texto cuando está listo
      },
    },
    async ({ title }) => {
      // Crear tarea
      const todo = { 
        id: `todo-${nextId++}`, 
        title, 
        completed: false 
      };
      todos.push(todo);

      // Devolver resultado
      return {
        // Texto para ChatGPT (qué mostrar en el chat)
        content: [{ 
          type: "text", 
          text: `✅ Añadido: "${title}"` 
        }],
        // Datos para el widget
        structuredContent: { 
          tasks: todos 
        },
      };
    }
  );

  return server;
}

// Servidor HTTP con CORS (¡obligatorio!)
const port = 8787;
const httpServer = createServer(async (req, res) => {
  const url = new URL(req.url, `http://${req.headers.host}`);

  // CORS preflight (ChatGPT hace una solicitud OPTIONS primero)
  if (req.method === "OPTIONS" && url.pathname === "/mcp") {
    res.writeHead(204, {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Methods": "POST, GET, OPTIONS",
      "Access-Control-Allow-Headers": "content-type, mcp-session-id",
      "Access-Control-Expose-Headers": "Mcp-Session-Id",
    });
    res.end();
    return;
  }

  // Health check (para verificar que el servidor está vivo)
  if (req.method === "GET" && url.pathname === "/") {
    res.writeHead(200).end("✅ Servidor MCP funcionando");
    return;
  }

  // Endpoint MCP (ChatGPT llamará aquí)
  if (url.pathname === "/mcp") {
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.setHeader("Access-Control-Expose-Headers", "Mcp-Session-Id");

    const server = createTodoServer();
    const transport = new StreamableHTTPServerTransport({
      sessionIdGenerator: undefined,
      enableJsonResponse: true,
    });

    // Cuando la conexión se cierra, limpiar
    res.on("close", () => {
      transport.close();
      server.close();
    });

    await server.connect(transport);
    await transport.handleRequest(req, res);
    return;
  }

  res.writeHead(404).end("Not Found");
});

httpServer.listen(port, () => {
  console.log(`🚀 Servidor funcionando: http://localhost:${port}/mcp`);
});

¿Parece complicado? En realidad hay tres partes:

  1. Registro del widget (UI)
  2. Registro de la herramienta (qué puede hacer)
  3. Servidor HTTP (para que ChatGPT pueda alcanzarnos)

Paso 3: Hacer el widget

Crea widget.html:

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="utf-8" />
  <title>Todo Widget</title>
  <style>
    * { box-sizing: border-box; }
    body { 
      margin: 0; 
      padding: 20px; 
      font-family: -apple-system, BlinkMacSystemFont, sans-serif;
      background: var(--bg, #f8f9fa);
    }
    .task-list { 
      display: flex; 
      flex-direction: column; 
      gap: 10px; 
    }
    .task { 
      padding: 15px; 
      border-radius: 8px; 
      background: white;
      box-shadow: 0 2px 4px rgba(0,0,0,0.1);
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .task:hover { 
      box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    }
    .task.completed { 
      opacity: 0.5; 
      text-decoration: line-through; 
    }
    .empty {
      text-align: center;
      padding: 40px;
      color: #999;
      font-style: italic;
    }
  </style>
</head>
<body>
  <div id="root"></div>
  
  <script type="module">
    // Obtener datos de ChatGPT
    const toolOutput = window.openai?.toolOutput;
    const theme = window.openai?.theme;
    
    // Si tema oscuro, cambiar el fondo
    if (theme === 'dark') {
      document.documentElement.style.setProperty('--bg', '#1a1a1a');
    }
    
    // Renderizar lista de tareas
    function render(tasks) {
      const root = document.getElementById('root');
      
      if (!tasks || tasks.length === 0) {
        root.innerHTML = '<div class="empty">📝 Todavía no hay tareas. ¡Añade tu primera!</div>';
        return;
      }
      
      root.innerHTML = `
        <div class="task-list">
          ${tasks.map(task => `
            <div class="task ${task.completed ? 'completed' : ''}">
              <span>${task.title}</span>
            </div>
          `).join('')}
        </div>
      `;
    }
    
    // Primer renderizado
    render(toolOutput?.tasks || []);
    
    // Escuchar actualizaciones (cuando ChatGPT actualiza los datos)
    window.addEventListener("openai:set_globals", (event) => {
      const newTasks = event.detail?.globals?.toolOutput?.tasks;
      if (newTasks) render(newTasks);
    });
  </script>
</body>
</html>

Es HTML normal. La magia está en window.openai – así es como ChatGPT nos pasa los datos.

Paso 4: Ejecutar localmente

Abre dos terminales.

Terminal 1 (arrancar el servidor):

node server.js

Verás: 🚀 Servidor funcionando: http://localhost:8787/mcp

Terminal 2 (túnel público):

ngrok http 8787

ngrok te dará una URL pública tipo https://abc123.ngrok.app. Cópiala.

Paso 5: Conectar a ChatGPT

  1. Abre ChatGPT
  2. Settings → Apps & Connectors → Advanced settings
  3. Activa Developer Mode (requiere Plus o Pro)
  4. Haz clic en Create Connector
  5. Introduce la URL: https://tu-url-ngrok.ngrok.app/mcp
  6. Guarda

Paso 6: ¡Prueba!

Abre un nuevo chat y escribe:

Añadir tarea: Comprar leche

Si todo va bien – ¡verás un widget con la tarea!

Prueba más:

Añadir tarea: Ir al gimnasio
Añadir tarea: Llamar a mamá

¿Ves la lista de tareas directamente en el chat? ¡Felicitaciones, acabas de crear tu primera app de ChatGPT! 🎉

¿Y después?

Este es el ejemplo más básico. Luego puedes:

  • Añadir eliminación de tareas
  • Hacer checkboxes para marcar como completado
  • Conectar una base de datos real (PostgreSQL, MongoDB)
  • Añadir autorización OAuth
  • Desplegar en Vercel (gratis)

Pero entiendes el principio. El resto son detalles.

Funciones avanzadas (cuando lo básico se vuelve aburrido)

Okay, hiciste una lista de todos. Ahora quieres algo más serio. Aquí hay lo que más puedes hacer:

Autorización OAuth

Si tu app trabaja con datos personales de usuarios (como playlists de Spotify o Google Drive), necesitas autorización.

ChatGPT soporta OAuth 2.1 con PKCE. Suena aterrador, pero funciona simplemente:

  1. El usuario llama a tu app por primera vez
  2. ChatGPT muestra "Conectar cuenta"
  3. Redirige a tu servidor de autorización
  4. El usuario otorga acceso
  5. Tu servidor devuelve un token
  6. ChatGPT guarda el token y lo envía con cada solicitud

En el código se ve así:

server.registerTool(
  "get_user_playlists",
  {
    title: "Obtener playlists",
    _meta: {
      "openai/auth": [{ type: "oauth2" }]  // Requiere autorización
    }
  },
  async (args, context) => {
    // Verificar token
    const token = context.headers?.authorization?.replace('Bearer ', '');
    
    if (!token) {
      return {
        error: "Unauthorized",
        _meta: { 
          "mcp/www_authenticate": { error: "invalid_token" } 
        }
      };
    }
    
    // Obtener datos
    const playlists = await fetchSpotifyPlaylists(token);
    return { content: [{ type: "text", text: JSON.stringify(playlists) }] };
  }
);

Los detalles de configurar un servidor auth son un tema aparte. En resumen: necesitas un endpoint /authorize, endpoint /token, y metadatos del servidor. Lee la documentación, está explicado ahí.

Widgets en pantalla completa

A veces un widget en el chat es demasiado pequeño. Como para un mapa. Necesitas pantalla completa.

// En el widget
await window.openai.requestDisplayMode({ mode: "fullscreen" });

Hay tres modos:

  • inline — widget normal en el chat (por defecto)
  • fullscreen — pantalla completa (para mapas, gráficos)
  • pip (picture-in-picture) — ventana flotante (para video, música)

Cambia vía window.openai.requestDisplayMode().

Agentic Commerce Protocol (ACP) – ventas directamente en ChatGPT

¿Quieres vender productos vía ChatGPT? OpenAI y Stripe crearon un estándar abierto – ACP.

Cómo funciona:

  1. Tienes productos (Product Feed en JSON/CSV/XML)
  2. Usuario: "ChatGPT, pídeme unas zapatillas Nike Air Max, talla 42"
  3. ChatGPT encuentra el producto en tu feed
  4. Muestra la tarjeta del producto (foto, precio, descripción)
  5. Usuario: "Comprar"
  6. Instant Checkout – pago vía tu Payment Provider (Stripe/PayPal)
  7. Recibes un webhook sobre la compra
  8. Envías el producto

Comisión: OpenAI toma un pequeño porcentaje de las ventas (cifras exactas no divulgadas).

Quién ya trabaja: Instacart (Instant Checkout completo), 1M+ comerciantes de Shopify.

Realmente funciona. La gente compra directamente en el chat, sin ir al sitio.


Despliegue: Paso a producción

Todo funciona localmente, pero los usuarios necesitan un servidor estable. ngrok morirá en una hora – no es opción.

Opción 1: Vercel (lo más simple)

Vercel soporta oficialmente ChatGPT Apps. Hay tier gratis, suficiente para empezar.

npm i -g vercel
vercel login
vercel

Eso es todo. Vercel configurará HTTPS, configurará CDN, te dará una URL estable.

Template listo de Vercel:

vercel.com/templates/next.js/chatgpt-app-with-next-js

Opción 2: Railway / Fly.io / Render

Si necesitas más control (tu propio Docker, tus propias variables env, etc.):

Railway:

railway login
railway link
railway up

Fly.io:

fly launch
fly deploy

Las tres plataformas son gratis para empezar, luego pagas por los recursos. Barato.

Checklist de producción

Antes del lanzamiento, verifica:

HTTPS — obligatorio, si no ChatGPT no se conectará

CORS — permite https://chatgpt.com

Health check/ debe devolver 200

Rate limiting — para no recibir DDoS

Variables env — sin secretos en el código

Logging — para entender qué se rompió

Monitoring — uptime, latencia, errores

CORS mínimo para Express:

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
  res.header('Access-Control-Allow-Headers', 'content-type, mcp-session-id');
  next();
});

Eso es suficiente para empezar.

ChatGPT App Directory: solicitudes abiertas AHORA

La pregunta más frecuente era: "¿Cuándo podemos publicar?"

Respuesta: Ya puedes. 17 de diciembre de 2025 OpenAI abrió las solicitudes para todos los desarrolladores.

Estado al 18 de diciembre de 2025:

App Directory lanzadohttps://chatgpt.com/apps

Solicitudes abiertas — vía platform.openai.com

Apps SDK en BETA — cualquier desarrollador puede usar

Primeras apps aprobadas — comenzarán a aparecer en enero 2026

Quién ya está ahí:

  • Spotify — playlists, recomendaciones
  • Booking.com, Expedia — viajes
  • Canva, Figma — diseño y presentaciones
  • Zillow — inmobiliaria estadounidense
  • Coursera — cursos educativos
  • AllTrails — senderos y rutas
  • Coupler, Daloopa, Coveo, Egnyte, Hex — herramientas empresariales

Total menos de 20 apps. Eso es TODO. El catálogo está casi vacío.

Cómo enviar tu app (paso a paso)

Paso 1: Prepara tu app

Antes de enviar, asegúrate de que:

  • App probada en Developer Mode
  • Servidor funciona en HTTPS (¡obligatorio!)
  • Sigue las App Submission Guidelines
  • Tiene Privacy Policy y Terms of Service
  • La UI respeta las guidelines de OpenAI

Paso 2: Ve a OpenAI Developer Platform

Ve a platform.openai.com → sección "ChatGPT Apps" → "Submit App".

Paso 3: Rellena el formulario de envío

Deberás proporcionar:

Información de la app:

  • Nombre de la app (único, claro)
  • Descripción (qué hace, para quién es útil)
  • Categoría (productivity, travel, education, entertainment, etc.)
  • Icono y banner para el catálogo (PNG, tamaños específicos)

Detalles MCP:

  • URL de tu servidor MCP (debe ser accesible vía HTTPS)
  • Lista de herramientas proporcionadas por el servidor
  • Configuración de autenticación (si OAuth necesario)
  • Endpoints de widgets

Guidelines de prueba:

  • Escenarios de prueba para revisores (cómo verificar que todo funciona)
  • Ejemplos de prompts que activan tu app
  • Comportamiento esperado

Capturas de pantalla / Previsualizaciones UI:

  • Capturas de pantalla de widgets en ChatGPT
  • Demostración de funciones principales
  • Muestra cómo la app aparece en temas claro/oscuro

Disponibilidad por país:

  • En qué países la app estará disponible
  • Restricciones regionales (si las hay)

Privacy Policy:

  • Obligatorio para todas las apps
  • Qué datos recoges, cómo los usas, cómo los almacenas
  • Enlace al texto completo de la política

Release Notes:

  • Qué hay de nuevo en esta versión
  • Limitaciones o bugs conocidos
  • Planes futuros (opcional)

Paso 4: Envía para revisión

Haz clic en "Submit". OpenAI comienza a verificar:

  • Revisión técnica (¿funciona el servidor, hay bugs?)
  • Revisión de seguridad (¿hay vulnerabilidades, los datos se manejan correctamente?)
  • Revisión de política (¿cumple con Usage Policies?)
  • Revisión UX (¿es práctico de usar?)

Timeline de revisión: de unos días a unas semanas (depende de la complejidad).

Paso 5: Recibe la respuesta

O Aprobado — ¡felicitaciones, la app va al catálogo!

O Cambios solicitados — necesitas corregir problemas y reenviar.

Después de la aprobación, tu app aparece en el App Directory, y 800 millones de usuarios pueden encontrarla.

Requisitos para aprobación

Para pasar la revisión, la app debe:

✅ Cumplir con las Usage Policies de OpenAI

✅ Ser apropiada para todas las audiencias (sin contenido adulto, violencia, discurso de odio)

✅ Solicitar solo datos necesarios (principio de mínimo privilegio)

✅ Tener un endpoint HTTPS funcional (HTTP no funcionará)

✅ Proporcionar una Privacy Policy clara

✅ Seguir las UI Guidelines (coherencia del diseño, accesibilidad)

No violar los Terms of Service de servicios de terceros (si hay integración)

Rechazo automático si:

  • Sin HTTPS
  • Sin Privacy Policy
  • Solicitud de datos innecesarios para la funcionalidad (ej. ubicación si no la usas)
  • UI no responsive o rota
  • App se cuelga con errores

Qué hacer después de la aprobación

Tu app aparece en el catálogo – los usuarios pueden encontrarla vía búsqueda o sección Featured.

Cómo los usuarios te encontrarán:

  1. Búsqueda en el catálogo — buscan por palabras clave
  2. @mention — escriben en el chat @tu_app haz algo
  3. Recomendaciones — ChatGPT mismo sugiere tu app cuando ve una consulta relevante
  4. Featured — las mejores apps entran en las recomendadas

Enlaces profundos:

Puedes compartir enlaces directos a tu app:

https://chatgpt.com/apps/tu-app

Publica en redes sociales, en tu sitio, en el newsletter – la gente hace clic y aterriza directamente en tu app en ChatGPT.

  • Contactos de soporte
  • Certificación de seguridad (si trabajas con dinero)

Monetización – ¿realmente se puede ganar dinero?

La pregunta del millón (literalmente).

Opciones de ingresos:

MétodoCómo funcionaEstado
Instant CheckoutOpenAI toma % de ventas✅ Funciona
SubscriptionUsuarios pagan por la app🔜 Pronto
FreemiumVersión básica gratis, Pro de pago🔜 2026
AdsModelo publicitario❓ Poco claro

Instant Checkout ya funciona. Instacart vende productos alimenticios directamente en ChatGPT, OpenAI toma comisión (tamaño no divulgado, pero dicen "razonable").

Subscription se lanzará en Q1-Q2 2026. Como el App Store – usuarios pagan por la app, OpenAI toma ~30% (probablemente).

¿Cuánto puedes ganar?

Nadie sabe. El Store no está abierto, no hay estadísticas. Pero podemos mirar el App Store:

  • Top 1% de apps: $10K-100K+/mes
  • Top 10%: $1K-10K/mes
  • El resto: $0-1K/mes

ChatGPT Apps tiene mayor potencial porque:

  1. La IA misma recomienda apps (discovery gratis)
  2. La conversión es más alta (todo en el chat, sin cambios)
  3. Instant Checkout reduce fricción

Pero por ahora – incertidumbre. Los primeros van a experimentar.


Para quién es esto (charla honesta)

No todos deberían precipitarse a ChatGPT Apps. Seamos honestos.

✅ Es para ti si:

  • Sabes programar en TypeScript o Python
  • Entiendes REST API, HTTP, JSON
  • Tienes una idea de app para público amplio
  • Estás listo para aprender y experimentar
  • No tienes miedo de cambios (SDK en preview, todo evoluciona)
  • Quieres entrar en una nueva industria al inicio

❌ NO empieces si:

  • Eres un principiante completo en programación (¡aprende primero lo básico!)
  • Esperas beneficio instantáneo sin trabajo
  • Necesitas ingresos estables ahora (por ahora solo puedes hacer link a tu sitio para compras)
  • Haces un producto B2B estrecho (ChatGPT es para mercado masivo)
  • No estás listo para que la tecnología cambie

Salarios reales para desarrolladores IA

Si no creas tu propia app sino trabajas en una empresa:

USA (2025):

  • Junior AI Developer: $95K-$130K/año
  • Mid AI Engineer: $161K-$220K/año
  • Senior AI Engineer: $301K-$440K/año
  • AI Research Scientist: $500K-$893K/año

Trabajo remoto por región:

  • Europa Occidental: €60K-€120K/año
  • Europa del Este: $35K-$80K/año
  • India: $15K-$45K/año
  • China: $25K-$70K/año
  • América del Sur: $30K-$65K/año

Freelance (global): $35-$116/hora (promedio $65-75)

Fuentes: levels.fyi, Glassdoor, AngelList (diciembre 2025)

La demanda de desarrolladores IA crece 10-20% anualmente. Y seguirá creciendo.


Los verdaderos desafíos de crear ChatGPT Apps

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 9

Okay, te he contado todo el artículo sobre lo genial y simple que es. Pero seamos honestos – no todo sale sin problemas.

Hay desafíos reales que enfrentan los desarrolladores:

1. Cambio de paradigma

Esta es la parte más difícil. Estás acostumbrado a escribir apps normales: el usuario hace clic en un botón → el código se ejecuta → el resultado se muestra. Todo predecible.

Con ChatGPT Apps es diferente:

  • La IA decide cuándo llamar tu herramienta
  • El usuario habla en lenguaje natural, no hace clic en UI
  • Tu app es una herramienta en manos de la IA, no lógica directa

Debes aprender a pensar como un ingeniero IA, no como un desarrollador web clásico. Es como pasar de programación procedural a funcional – la técnica parece familiar, pero el enfoque es diferente.

2. Protocolo MCP – nuevo estándar

MCP acaba de aparecer, hay poca documentación, las mejores prácticas aún se están formando. No puedes googlear "cómo hacer X en MCP" – Stack Overflow está vacío.

Debes leer la documentación oficial (que a veces está incompleta), estudiar ejemplos de OpenAI, experimentar.

3. El debugging es más difícil que en apps web normales

En una app normal ves la solicitud → miras los logs → entiendes qué se rompió.

En ChatGPT Apps:

  • La IA puede malinterpretar el prompt
  • La herramienta puede llamarse cuando no lo esperas
  • El widget se renderiza en iframe sandbox – DevTools no siempre ayuda
  • Los errores pueden estar en tres niveles: IA, transporte MCP, tu código

Necesitas nuevas habilidades de debugging.

4. OAuth y seguridad – alta responsabilidad

Si tu app trabaja con datos personales, necesitas OAuth. Pero no es solo "instala una librería y funciona".

Debes:

  • Configurar un servidor de autorización
  • Implementar el flujo PKCE
  • Validar tokens en cada solicitud
  • Asegurar almacenamiento seguro de secretos
  • Pasar revisión de seguridad de OpenAI

Un error – y fuga de datos de usuarios. En serio.

5. Despliegue de producción – no solo "sube a un hosting"

HTTPS es obligatorio. CORS necesario. SSE/Streaming HTTP debe funcionar. Health checks. Rate limiting. Monitoring. Logging sin filtrar datos sensibles.

Para un desarrollador junior esto puede ser abrumador.

6. Competencia con grandes jugadores

Cuando el Store se abra, no solo desarrolladores indie entrarán. Spotify, Booking, Canva – son grandes empresas con grandes equipos.

¿Cómo competir con ellos? Necesitas estrategia clara, enfoque en nicho, entendimiento del mercado.

7. Ecosistema que cambia rápido

Apps SDK está en preview. Las funciones se añaden cada semana. Lo que funcionaba hace un mes puede romperse después de una actualización.

Debes estar listo para adaptarte rápidamente.


Por eso necesitas un curso fundamental, no solo un "tutorial de 30 minutos".

Formación: Curso de CodeGym

ChatGPT Apps: Guía completa para desarrolladores en 2025 - 10

Nosotros en CodeGym entendemos estos desafíos. Y es exactamente por eso que creamos no solo "fundamentos de ChatGPT Apps en media hora", sino un curso completo de nivel producción que prepara para desarrollo real.

Lo que hacemos diferente

1. Cambio gradual de paradigma

El curso empieza con desarrollo web clásico, luego pasa suavemente a enfoque AI-first. No saltas al agua fría – vas paso a paso.

2. Inmersión profunda en MCP

No solo decimos "así funciona MCP". Desglosamos:

  • Arquitectura interna del protocolo
  • Cómo la IA decide llamar una herramienta
  • Optimización de descripciones de herramientas para mejor descubrimiento
  • Patrones avanzados para trabajar con Resources
  • Debugging en todos los niveles de la stack

3. Proyectos del mundo real, no hello world

40 tareas prácticas – no "haz una lista de todos". Son:

  • App e-commerce con Instant Checkout
  • Planificador de viajes con integración de mapas
  • Herramienta de creación de contenido con generación IA
  • Dashboard analítico con datos en tiempo real
  • Y 36 otras tareas

4. Seguridad primero

Módulo separado sobre seguridad:

  • OAuth 2.1 con PKCE (paso a paso)
  • Validación de tokens
  • Estrategias de rate limiting
  • Protección PII
  • Cumplimiento GDPR/CCPA

5. Despliegue de producción en condiciones reales

No solo "aquí hay un comando para Vercel". Sino:

  • Comparación de plataformas (Vercel, Railway, AWS)
  • Pipelines CI/CD
  • Monitoring y alertas
  • Seguimiento de errores
  • Optimización de rendimiento
  • Estrategias de escalado

6. NestJS como base

El curso completo está construido sobre NestJS – un framework TypeScript moderno para desarrollo backend.

¿Por qué NestJS?

  • Ideal para servidores MCP (arquitectura modular)
  • Production-ready desde la caja
  • Soporte de inyección de dependencias
  • Excelente trabajo con TypeScript
  • Comunidad enorme

Incluso si nunca trabajaste con NestJS antes – explicaremos todo desde cero. Y si trabajaste – aprenderás cómo aplicarlo a apps IA.

7. Cambio de mentalidad a través de la práctica

Cada nivel incluye:

  • Bloque teórico (10-15 minutos)
  • Tarea práctica (30-60 minutos)
  • Revisión de código por mentor IA
  • Análisis de errores comunes

Al final del curso piensas como ingeniero IA, no solo conoces la sintaxis.

Programa del curso (breve)