1. Introduzione
Dal punto di vista di uno sviluppatore medio, tutto questo è già un po' familiare: c'è una nuova parola di moda — ChatGPT App, c'è un API, c'è un SDK, ci sono ancora un paio di sigle, e sembra che sia «un altro modo per chiamare un modello di IA».
Il problema è che senza una visione chiara del quadro le persone iniziano a confondere tra loro entità molto diverse: i vecchi ChatGPT-plugin, Assistants API, Custom GPTs e le nuove ChatGPT Apps. Di conseguenza, qualcuno si aspetta di «cliccare tutto» in una sera nell'UI come un Custom GPT, e finisce invece per dover alzare un server MCP, scrivere un widget Next.js e pensare allo Store. E viceversa: qualcuno costruisce un backend complesso, mentre per il suo caso basterebbe un semplice Custom GPT o un wrapper dell'API.
Quindi iniziamo da ciò che è il nuovo ChatGPT App (e mettiamo ordine), e da ciò che non è.
Breve evoluzione «storica» delle integrazioni con le LLM
Prima di dare definizioni, è utile vedere l'evoluzione degli approcci. Questo aiuta non solo a memorizzare nuove parole, ma a capire da dove è nata l'idea di un App dentro ChatGPT.
All'inizio c'era la classica variante «API wrapper». Sollevavate la vostra web‑app o un bot e, da qualche parte nel backend, chiamavate OpenAI API: passavate un prompt, ricevevate una risposta testuale e la mostravate all'utente. Tutta la logica, l'UI, l'autenticazione e il billing erano dalla vostra parte. ChatGPT come prodotto qui non partecipava affatto.
Poi sono arrivati i ChatGPT Plugins.
È stato il primo tentativo di integrare servizi esterni nell'interfaccia stessa di ChatGPT. Il plugin veniva descritto tramite OpenAPI, ChatGPT poteva chiamarne gli endpoint e voi rispondevate in JSON, che il modello riformulava in testo per l'utente. Il plugin non aveva un proprio UI — al massimo Markdown, che il modello poteva mostrare in chat. Oggi questo sistema è considerato obsoleto.
Poi sono arrivati i Custom GPTs (MyGPTs).
È un costruttore della «vostra versione di ChatGPT» senza codice: configurate i prompt, collegate i file, talvolta — Custom Actions a HTTP-API. Tutto vive nell'interfaccia di ChatGPT, ma l'UI è strettamente standard e le integrazioni sono limitate dalle capacità delle Actions.
E infine, il salto qualitativo — le nuovissime ChatGPT Apps. Qui compare un UI ricco (un widget dentro la chat), un protocollo standard per comunicare con i vostri dati e la logica di backend (MCP) e uno spazio separato nell'ecosistema: Dev Mode, Store, permessi, pagamenti integrati e così via.
Al momento della stesura di questo corso su Google Play c'erano 4 milioni di applicazioni, su Apple AppStore — 2 milioni, e in ChatGPT soltanto 5. Non 5 milioni, ma appena 5(!) applicazioni. E ChatGPT ha 800 milioni di utenti attivi a settimana. Non è mai stato così facile entrare nella top100 delle app e guadagnare qualche milione.
Se vi ho incuriosito, approfondiamo la domanda principale: che cos'è esattamente questo nuovo ChatGPT App?
2. Definizione concisa di ChatGPT App
In rete esistono diverse spiegazioni di marketing, ma siccome qui siamo tutti del mestiere, lo tradurrò in linguaggio umano.
ChatGPT App è un'applicazione web che viene eseguita all'interno di ChatGPT e ha un proprio widget UI. L'app fornisce a ChatGPT un insieme di strumenti (funzioni) e dati, e si registra nel catalogo delle applicazioni (App Store). L'app combina l'interfaccia conversazionale (chat) con un UI grafico e la logica di backend, comunicando con la piattaforma ChatGPT tramite protocolli standardizzati come MCP.
Ecco che cosa ci offre:
Primo, «si avvia all'interno dell'interfaccia di ChatGPT». L'utente non lascia https://chatgpt.com/ o l'app mobile; l'UI della vostra applicazione viene incorporato in quell'interfaccia come widget. Il vostro widget viene visualizzato direttamente nel flusso della chat.
Secondo, «ha un proprio widget UI». Non è solo testo che il modello stampa in chat. Potete renderizzare componenti React: card, liste, form, mappe, player e tutte le gioie della vita frontend. Tecnicamente è una normale applicazione Next.js, che funziona in una sandbox e dialoga con ChatGPT tramite l'oggetto window.openai e Apps SDK.
Terzo, «fornisce a ChatGPT un set di strumenti (funzioni) e dati». Alzate un server MCP sul backend e registrate lì gli strumenti MCP del vostro App — descrivete le azioni che il vostro servizio sa eseguire: ricerca nel catalogo, prenotazione, analisi dei dati, generazione di report. ChatGPT vede questi strumenti come funzioni con JSON Schema e può invocarli a propria discrezione.
Quarto, «si registra nel catalogo delle applicazioni». L'App ha un nome, un'icona, descrizioni, categorie, permessi, versioni e monetizzazione. Non è uno «script buttato lì», ma un App a tutti gli effetti nell'ecosistema ChatGPT.
Uno spostamento mentale molto importante: non scrivete un «bot» che decide tutto da solo. Descrivete interfaccia e capacità (UI + tools), e ChatGPT decide da sé quando usarle e come intrecciarle nel dialogo. Il controllo completo sullo scenario ce l'avete solo in parte.
Questo approccio ha un grande vantaggio per voi — ChatGPT propone lui stesso agli utenti di installare la vostra applicazione e decide lui stesso quando avviarla. Cioè il costo della pubblicità dell'applicazione è pari a $0. Un milione di installazioni della vostra applicazione vi costeranno $0. Almeno finché siete tra i primi.
Lanciare la propria ChatGPT-applicazione nel 2025 è come comprare bitcoin a $1. La scelta è vostra.
3. Anatomia di un ChatGPT App: UI, strumenti e contesto
Per non confonderci, scomponiamo l'App in tre componenti principali, che ricorreranno per tutto il corso.
Primo componente — livello UI. È il vostro widget, di norma scritto in React/Next.js con l'uso di Apps SDK. Si rende all'interno di ChatGPT, mostra liste di regali, form di prenotazione, grafici, e qualsiasi altro elemento visuale. Vive in una sandbox: non può rompere il DOM generale, non può navigare liberamente in Internet e opera entro una finestra limitata.
Secondo componente — strumenti, risorse e prompt. A livello di protocollo è un server MCP con capability descritte: tools (azioni), resources (dati) e prompts (template). Gli strumenti sono descritti con schemi JSON, e il modello li vede come funzioni che si possono chiamare quando è opportuno. Nei moduli successivi vedremo in dettaglio come avviene questa callTool, ma per ora è importante ricordare: gli strumenti sono le mani e gli occhi del vostro App nel mondo reale.
Terzo componente — contesto d'uso. È tutto ciò con cui descrivete il vostro App per il modello e gli utenti: system prompt, descrizioni degli strumenti, permessi, target di utenza, categorie nello Store. Da questi metadati dipende quando GPT proporrà l'App, quali richieste considerare rilevanti e quali azioni sono ammesse.
Più avanti, quando analizzeremo l'app didattica GiftGenius, vedrete dal vivo tutti e tre i livelli: il widget UI con le card dei regali e il wizard delle domande di chiarimento, gli strumenti di selezione e checkout lato MCP/backend e il contesto — istruzioni di sistema, descrizioni, permessi e categorie nello Store.
4. Confrontiamo le «applicazioni» di ChatGPT
Ora che abbiamo un quadro generale e l'anatomia dell'App, facciamo un passo indietro e confrontiamola con i suoi «parenti». Questo aiuta a separare definitivamente nella testa le Apps, i plugin, l'Assistants API e il semplice OpenAI API. Qui sotto — una tabella che aiuta a tenere distinte queste entità.
| Entità | Dove vive l'UI | Chi paga i token | Scenario principale | Stato nel 2025 |
|---|---|---|---|---|
| ChatGPT App | Dentro ChatGPT (widget) | Utente di ChatGPT | Scenari complessi, SaaS dentro GPT, commerce | Focus principale |
| Legacy Plugins | Dentro ChatGPT (testo) | Utente di ChatGPT | Chiamate API semplici, senza UI propria | Obsoleti |
| Assistants API | Sul vostro sito / nel vostro prodotto | Voi come sviluppatori | Agenti esterni, funzionalità AI nei vostri prodotti | Attuali, ma separati |
| OpenAI API | Senza UI, solo JSON | Voi come sviluppatori | Accesso di base ai modelli per qualunque compito | Strato di base |
| Custom GPTs | Dentro ChatGPT (chat standard) | Utente di ChatGPT | Configurazione del comportamento no‑code/low‑code | Livello di ingresso |
Una buona analogia, esplicitamente sottolineata nella documentazione ufficiale: Assistants API è quando prendete «il cervello di GPT» e lo integrate nel vostro prodotto, mentre ChatGPT App è l'opposto, quando portate il vostro prodotto dentro l'interfaccia di ChatGPT.
5. Che cosa ChatGPT App NON è
Ora passiamo in rassegna i malintesi più diffusi. È importante per non progettare l'App come qualcos'altro.
ChatGPT App ≠ un semplice sito in Next.js
L'istinto di un frontender è percepire l'App come «l'ennesima SPA», solo che al posto di / avete «una finestra strana in ChatGPT». In parte è vero, ma c'è una differenza cruciale: non vivete nel vostro dominio e non controllate tutto l'UI, ma affittate un piccolo pezzo dell'interfaccia di ChatGPT. Non potete riscrivere la navigazione, mettere il vostro banner sopra tutto o «hackerare» l'ambiente.
Nel nostro corso tratteremo il widget come un componente isolato, non come un sito completo: ha limiti rigidi su rete, DOM e risorse, e tutto il lavoro pesante va sul backend/MCP. Parleremo in dettaglio della sandbox nell'ultima lezione di questo livello; qui basta ricordare che non è «un altro hosting Next.js».
Per chiarezza — un esempio di codice. Ecco come appare il classico «API wrapper» attorno a OpenAI nella vostra app Next.js — questo non è un ChatGPT App:
// app/api/chat/route.ts — backend normale del vostro sito, non un App
import OpenAI from "openai";
import { NextRequest, NextResponse } from "next/server";
const client = new OpenAI();
export async function POST(req: NextRequest) {
const { message } = await req.json();
const response = await client.responses.create({
model: "gpt-5.2",
input: [{ role: "user", content: [{ type: "text", text: message }] }],
});
return NextResponse.json({ reply: response.output[0].content[0].text });
}
L'utente di questa applicazione dialoga con il vostro backend, non con ChatGPT. Tutta la logica di UI e di sessione è vostra. È un'ottima opzione per funzionalità AI dentro il vostro prodotto, ma non è un ChatGPT App.
ChatGPT App ≠ il vecchio ChatGPT Plugin
La parola «plugin» va mandata al museo del 2023 e usata solo per indicare il vecchio sistema. I plugin davano a ChatGPT la possibilità di chiamare i vostri endpoint HTTP tramite una specifica OpenAPI, ma non permettevano di costruire un UI ricco: al massimo potevate restituire Markdown, che il modello mostrava in chat.
Le nuove Apps, a differenza dei plugin, possono renderizzare widget React, lavorare via MCP, avere permessi e partecipare a scenari finanziari. Quindi pensarle come «plugin 2.0» è una semplificazione che si ritorce contro di voi non appena iniziate a progettare UI e strumenti.
ChatGPT App ≠ Assistants API
Assistants API risolve un'altra esigenza: come dare al vostro prodotto (sito, app mobile, strumento interno) un assistente intelligente basato su GPT. Lì tutto vive «da voi», controllate l'UI, e GPT è un servizio di backend con cui parlate via API.
Nel caso di ChatGPT App è l'opposto. L'UI e l'esperienza principale appartengono a ChatGPT, e voi «vi trasferite» lì con la vostra applicazione. L'utente non vede il vostro dominio, vede il nome e l'icona dell'App dentro ChatGPT, e di solito i token li paga lui tramite il proprio abbonamento ChatGPT.
In breve: Assistants API è GPT dentro il vostro prodotto, ChatGPT App è il vostro prodotto dentro ChatGPT.
ChatGPT App ≠ un semplice Custom GPT
Custom GPTs sono uno strumento eccellente per partire velocemente: assemblate un prompt, attaccate qualche file — ed ecco già il «assistente personale». Ma l'UI è standard, senza widget, e le integrazioni tramite Custom Actions sono piuttosto limitate; lì non ci sono l'Apps SDK completo e il livello MCP.
ChatGPT App è già una storia da pro‑code. Scrivete un widget (di solito su Next.js), alzate un server MCP, configurate autenticazione, permessi, pagamenti. Il livello di flessibilità è molto più alto, ma anche la responsabilità: per la sicurezza, la UX e il superamento della review in fase di registrazione dell'app.
Una strategia pratica che posso consigliare al business: usare il Custom GPT come ingresso marketing rapido (un assistente semplice nel GPT Store) e, in parallelo, sviluppare un App completo con l'Apps SDK per scenari seri e la futura monetizzazione.
ChatGPT App ≠ «solo un altro bot»
Infine, un punto psicologico importante. ChatGPT App non è «un altro chatbot». È un prodotto con un ciclo di vita: c'è il Dev Mode, la review, le versioni, i limiti, l'analitica e i flussi di pagamento. Pensarlo come «un bot per demo» è un modo sicuro per sottovalutare lo sforzo, fallire il lancio reale e non guadagnare i vostri milioni.
6. Tipi di applicazioni ChatGPT
Per capire meglio che cosa state costruendo, è utile una tipologia grossolana delle ChatGPT Apps. Nel nostro corso parleremo di quattro focus principali e useremo brevi etichette in inglese: UI-heavy, tool-first, commerce-oriented e data/analytics.
- Primo tipo — UI‑heavy o UI‑first. Qui il valore principale è l'interfaccia visiva: wizard, configuratori, form complesse, canvas. Esempi: scelta di una polizza con una decina di parametri, configuratore di design, visualizzazione di dati.
- Secondo tipo — Tool‑first. Qui la cosa principale non è l'UI ma gli strumenti. L'App fornisce al modello un set potente di funzioni e gran parte dell'esperienza utente la compone ChatGPT stesso, inserendo spiegazioni testuali e talvolta un UI minimo. Esempio — un App che dà a GPT accesso alla knowledge‑base interna dell'azienda: il modello decide da sé quando e come chiamare la ricerca e come spiegare i risultati all'utente.
- Terzo tipo — Commerce‑oriented. Il baricentro è su vendite, abbonamenti, prenotazioni. L'App è integrata con Agentic Commerce Protocol (ACP), sa effettuare acquisti, lavorare con il carrello e Instant Checkout, collegare gli ordini agli utenti.
- Quarto tipo — Data/analytics. Si concentrano sul collegare fonti di dati e sull'analisi: report, dashboard BI, analisi dei log e delle metriche, lavoro con file caricati.
La stessa idea può essere realizzata in stili diversi. Per esempio, la scelta di regali può essere puramente Tool‑first (il modello forma lui stesso le spiegazioni e l'App restituisce solo JSON con la lista di idee) oppure UI‑heavy (widget ricco con filtri, card dei prodotti, confronto di opzioni).
7. Il nostro progetto didattico: GiftGenius
Tutto ciò che faremo nel corso è bene legarlo a un'unica applicazione «trasversale». Perciò, man mano che procediamo, scriveremo la nostra applicazione: GiftGenius — applicazione per la selezione di regali e l'elaborazione degli acquisti tramite ChatGPT. Ci torneremo continuamente.
Dal punto di vista della tipologia, GiftGenius è innanzitutto un App orientato al commercio (commerce‑oriented) con elementi UI‑heavy. L'utente scrive in ChatGPT qualcosa tipo: «Serve un regalo per un amico IT, budget 50–70 dollari», il modello di IA decide di collegare GiftGenius, l'App mostra un widget con domande di chiarimento, una selezione di regali e, alla fine, l'ordine tramite ACP.
Per iniziare già ora a pensare in termini di TypeScript, possiamo abbozzare un modello di dominio semplicissimo che ci accompagnerà:
// gift-types.ts — modello di dominio semplificato di GiftGenius
export type GiftIdea = {
id: string;
title: string;
priceUsd: number;
tags: string[]; // interessi del destinatario
occasion: string; // occasione: birthday, wedding ecc.
};
Per ora è solo un tipo, non legato a nessun SDK. Ma nel prosieguo vedrete come tali modelli di dominio iniziano a filtrare negli strumenti MCP, nel widget UI e perfino nel livello commerce.
8. Come l'utente vede il ChatGPT App dentro il dialogo
Anche se il «flusso utente» sarà il tema principale della terza lezione, è importante delineare subito il quadro generale, per capire a che cosa serve l'UI e come l'App entra nel dialogo.
L'utente interagisce con ChatGPT come al solito: scrive messaggi, fa domande, chiede aiuto. A ogni battuta ChatGPT decide che cosa fare: rispondere autonomamente, chiamare qualche strumento, mostrare o aggiornare il widget del vostro App, proporre di usare l'App, se è rilevante al contesto.
Per esempio, l'utente scrive: «Mi serve un regalo per l'anniversario di matrimonio, budget fino a 100 dollari, mio marito ama i giochi da tavolo». Il modello vede che ha l'App GiftGenius, che sa selezionare regali con questi criteri. Può andare per due strade:
- Prima proporre all'utente di usare GiftGenius, scrivendo qualcosa come: «Posso collegare l'App GiftGenius per selezionare alcune opzioni. Lo avvio?».
- Oppure chiamare subito gli strumenti dell'App e mostrare il widget con campi già compilati, presentando la selezione.
Tutto questo avviene senza il vostro diretto if user_said_gift then call_app(). Voi descrivete le capacità dell'App, e il modello impara a usarle. Ecco perché sono così importanti descrizioni chiare, limiti e un UX ben pensato — altrimenti GPT o abuserà del vostro App, o, al contrario, non lo toccherà mai.
Per chiarezza lo si può rappresentare con un diagramma:
flowchart TD U[Utente in ChatGPT] -->|messaggio| G[Modello GPT] G -->|decisione: usare l'App?| A[Il vostro ChatGPT App] A -->|widget| W[UI in chat] A -->|tools/MCP| B[Il vostro backend / MCP] B --> A --> G --> U
Parleremo nel dettaglio di come esattamente GPT decida di chiamare l'App nelle sezioni su strumenti e system‑prompt, ma è già utile capire: è cooperazione, non controllo imperativo.
9. Mini‑esercizio: la vostra idea di App
Per evitare che il materiale resti teoria astratta, ha senso già ora ideare un App vostro, che svilupperete mentalmente insieme a GiftGenius.
Provate a formulare in una frase che cosa fa la vostra applicazione dentro ChatGPT. Per esempio: «L'App aiuta gli sviluppatori a stimare la complessità dei task e a suddividerli in sotto‑task» oppure «L'App suggerisce itinerari di viaggio tenendo conto del meteo e del budget».
Poi è utile rispondere onestamente a due domande. Primo, a quale tipo della nostra tipologia è più vicino: UI‑heavy, tool‑first, commerce‑oriented o data/analytics. Secondo, è davvero un ChatGPT App o, in sostanza, solo un bot sul vostro sito o un altro Custom GPT. Se tutto ciò che vi serve è chiamare un po' più comodamente l'OpenAI API sul backend, forse un App completo non vi serve.
Analisi così snelle sono un buon modo per risparmiarvi un paio di mesi di sviluppo del prodotto sbagliato.
10. Errori tipici nella comprensione di ChatGPT App
Errore n. 1: chiamare tutto «plugin».
Il sistema di plugin è una fase storica del 2023. La nuova generazione di integrazioni sono le Apps su Apps SDK + MCP. Se continuate ad aggrapparvi mentalmente al termine «plugin», è facile sottovalutare il ruolo dell'UI, della sandbox, dello Store e di tutto il ciclo di prodotto. In questo corso la parola «plugin» la usiamo solo per il vecchio sistema, e con App intendiamo sempre la nuova generazione di applicazioni.
Errore n. 2: aspettarsi il controllo totale su GPT.
A volte gli sviluppatori arrivano con l'idea «scrivo un App e il modello farà esattamente ciò che dico». Nell'ecosistema di ChatGPT tutto funziona diversamente: descrivete le vostre capacità e intenzioni, ma il modello decide quando chiamare gli strumenti, quando mostrare il widget e quando rispondere semplicemente con testo. Se si cerca di progettare l'App come una SPA classica con uno scenario rigido, la delusione è dietro l'angolo.
Errore n. 3: confondere ChatGPT App con Assistants API.
Una situazione molto diffusa: qualcuno vuole «un bot nel proprio prodotto», ma per abitudine guarda verso l'Apps SDK, mentre sarebbe molto più semplice e logico usare l'Assistants API. Il risultato è che investe energie in un widget su ChatGPT di cui ai suoi utenti non importa. La distinzione giusta è semplice: se gli utenti vanno sul vostro sito o nella vostra app, pensate all'Assistants API; se volete raggiungere gli utenti dentro ChatGPT, pensate al ChatGPT App.
Errore n. 4: considerare l'App «un altro frontend» senza tenere conto della sandbox.
Quando uno sviluppatore prova a usare l'Apps SDK come un normale frontend Next.js e ignora i limiti della sandbox (accesso limitato a rete, DOM, risorse), si scontra presto con «nulla funziona come sul mio sito». È importante accettare in anticipo che il widget è un componente isolato e che tutta l'integrazione pesante e la gestione dei segreti devono essere portate sul backend/MCP.
Errore n. 5: sopravvalutare i Custom GPT e sottovalutare l'Apps SDK (o viceversa).
I Custom GPTs e le Apps non sono un «aut‑aut», ma livelli diversi di maturità. Spesso la strategia giusta è usare entrambi: Custom GPT come ingresso e marketing rapido, App come prodotto serio con UI ricco e commerce. Quando lo sviluppatore si aspetta da un Custom GPT capacità di livello Apps SDK o, al contrario, trascina l'Apps SDK dove basterebbe un Custom GPT, si complica soltanto la vita.
GO TO FULL VERSION