The step-by-step path from "I picked a vertical" to "my app fires inside ChatGPT", with worksheets.

Companion to The Diff's post on the chat-window app store. Pairs with the Micro-App Idea Library, which gives you the what; this kit is the how. Work top to bottom; every phase ends with a checkbox gate before you move on.

Honest expectation-setting up front: prototype in an afternoon, working app in your own ChatGPT within days, directory review in weeks (the queue is slow right now — that's fine, you'll be testing through the side door the whole time). You cannot yet charge inside the chat, so your funnel runs out to your own product. Build accordingly.


The architecture in 60 seconds

Every ChatGPT app is three parts:

  1. The conversation — ChatGPT reads the user's message and decides whether your app helps. You don't control this directly; you influence it through your tool names and descriptions.
  2. Your MCP server — a backend that exposes tools: plain functions with names, descriptions and typed inputs (evaluate_job_offer, decode_legal_notice). When the model decides a tool fits, it calls your server, your server does the work and returns data.
  3. The widget — a small web UI (usually React) that renders your result inside the chat, in a sandboxed iframe. Inline card, fullscreen takeover, or picture-in-picture.

The model orchestrates; you expose capabilities and render UI. If you've built a web app, you can build this.

One rule that shapes everything: one widget per message. Your app gets a single, atomic, completable action per turn. Design for that from day one.


Phase 0 — Scout the shelf (1 hour)

Competitor sheet (copy per adjacent app you find):

App What it does in-chat Format (inline/FS/PiP) What it does NOT do Your opening

Gate: you can state in one sentence what conversation you'll win that nobody currently owns. If a strong player already owns it, go back to the Idea Library and pick a sharper sub-topic.