
ChatGPT Sites entered public beta on July 9, 2026, and at the time of writing it is available on ChatGPT Plus and Pro and in Business and Enterprise workspaces, though not on Free or Go. You start in ChatGPT Work on the web, or in Work or Codex in the desktop app, describe the site, and keep adjusting it by message rather than by dragging anything. OpenAI then hosts it at a URL.
The mechanic is the review. A conversational builder inherits every weakness of a conversational prompt, which means the page is precisely as considered as the sentence that produced it. Type "make it look premium" and you get the category median, assembled quickly.
The short call: it is a reasonable way to stand up a one-page site if you already pay for ChatGPT, and the first message is where the design happens. Bring values, not adjectives, and Thanor writes the values.
What a first message full of values describes looks like these three one-page sites, whose prompts decided everything before any model saw them:
A hero film of hands with glossy colored nails on hot pink, then a scrolling one-page site with sticky sections.
Open the prompt →A grumpy 3D cat toy in an orange hoodie before a huge "BAD MOOD" headline; the visitor switches figurines.
Open the prompt →A sunlit marigold shelf of twelve painted hardbacks in 3D: pull a book out and open it.
Open the prompt →What ChatGPT Sites is#
A builder that lives in the chat window. You describe a change, review the preview, and publish when it is right, so every design change is a sentence.
That produces a specific working pattern:
- The first message sets the structure, and later messages nudge it.
- Adjustments are described rather than selected, so vocabulary is the interface.
- A vague adjustment gets a vague change, then you spend three more messages recovering the thing you liked.
- Precision compounds: an exact value stated once tends to survive the next four edits.
Since the beta opened, OpenAI has added custom domains, co-editing inside a workspace, view-only sharing with people outside it and scheduled updates, according to its help center. Building or editing a Site counts toward your Codex usage. Hosting is included with Plus and Pro at the time of writing, and OpenAI's Sites docs say hosting usage above a plan's monthly allowance is due to be billed from January 1, 2027. A Site can also be more than a page: OpenAI's own examples include dashboards and resource hubs.
None of the above changes the central fact about generated pages. Leave the typeface, the neutral, the radius and the reveal unnamed and all four arrive from the middle of the distribution, which is why so many generated sites rhyme with each other.
Editing by description cuts both ways, and it is worth understanding before you start. A canvas lets you nudge a padding value without articulating why. A conversation makes you name the value, which is slower on the first pass and far more durable afterwards, because the reason ends up written down instead of living in a slider position nobody can explain a month later.
What it does with a design brief#
The difference between two first messages, in the same tool, on the same day.
| Slot | "Make it look premium" | A stated value |
|---|---|---|
| Ground | #FFFFFF on #F9FAFB | #0B0B0F page, #14141A raised |
| Neutral | #6B7280 | #8A8577, hue pulled toward amber |
| Accent | a blue, or a violet gradient | #D8492B, one element per section |
| Type | 16px, browser leading | 17px at 1.62, ratio 1.26, five steps |
| Radius | 8px everywhere | 2px controls, 14px cards |
| Reveal | translateY(20px), 300ms | cubic-bezier(0.22, 1, 0.36, 1), 620ms |
Six rows, under eighty words, and the right-hand column is a page nobody can place. The left-hand column is a page a visitor has seen forty times this month without noticing it.
The accent row does the most work per character typed. "One element per section may carry #D8492B" caps the color, and a cap is the kind of decision no generator volunteers, because more is always easier to justify than less.
The type row is the one to state as a ratio rather than a list. Five steps from 17px at 1.26 gives real contrast between the display and the body, where four hand-picked sizes usually end up within a few pixels of each other and two of them doing the same job. A ratio is also easier to hold over four refinement messages than a list of numbers is.
Paste values, not adjectives#
Front-load the conversation. The first message should read like a specification sheet, and it should end with the refusals. It is the same translation from a feeling into values that vibe design asks for.
- Surfaces and borders.
#0B0B0Fpage,#14141Araised,#1C1C24overlay, borders1px solid rgba(242,239,233,0.08), no shadows anywhere. - Type as a system.
17pxbody at1.62, measure64ch, ratio1.26over five steps to86px, two weights,-0.025emon the top step alone. - Spacing as a ramp.
4 / 8 / 12 / 20 / 32 / 52, and no value off it. - Motion as two curves and a limit. Reveal
cubic-bezier(0.22, 1, 0.36, 1)over620ms, responsecubic-bezier(0.32, 0.72, 0, 1)over240ms, stagger90mscapped at four, first viewport only. - Sections, numbered. Statement, proof strip, asymmetric
7/5argument, one signature moment, accordion objections, plain price, one-line close. - Refusals. No gradient. No gray on the neutral axis. No third typeface. No icon set. No testimonial carousel.

Refinement messages work the same way. "Tighten the hero" is a coin flip; "reduce the hero padding to the 52 step and raise the display to 86px" lands exactly once. A conversational builder rewards a vocabulary of values, and that vocabulary is portable to a prompt-to-prototype tool without a single edit.
Who it fits#
Three cases where the conversational shape is genuinely the right one.
- A one-page site, fast. A launch page, an event page, a personal site. Seven named sections and a token block, in one message, refined in four.
- Somebody who does not want a canvas. For a business owner who never intends to learn a builder interface, describing changes in words removes the whole learning curve.
- A first draft to react to. Some people cannot specify a page from a blank sheet and can specify it instantly once something wrong is on screen. Generate, then correct in values.
Where it gets uncomfortable is a design you have to defend line by line to a client, because every decision lives in a conversation rather than in a document. The repair is to keep the specification in a file outside the chat, paste it in, and treat the page as the output of that file.
That also fixes the revision problem. A client asking why the hero moved gets an answer from a file you can diff, rather than a search through forty messages for the one where you said "a bit tighter" and something changed.
That habit also makes the work reusable. One document, pasted into ChatGPT Sites this week and into GPT-6 Astra, a Claude artifact or another engine next month, gives you the same decisions rendered twice, which is the argument the whole cluster keeps arriving at.
The verdict on ChatGPT Sites#
Worth using if you already pay for ChatGPT Plus or Pro, or work in a Business or Enterprise workspace, and want a one-page site standing up this afternoon. The conversational loop is quick, the refinement cycle is honest, and there is nothing to learn before you start.
The judgment to make is about the first message rather than the product. A builder driven entirely by language gives back exactly the precision you put in, so the same tool produces a template for one person and a directed page for another on the same afternoon. That is a fair deal, and it is an unusually transparent one.
What decides whether the result looks designed:
- The first message. Tokens, type as a ratio, two curves, seven sections, three refusals.
- The vocabulary of your edits. Values land; adjectives cost you three messages.
- A copy of the specification kept outside the chat, so the decisions survive the conversation; a tokens file is one durable form.
Everything on that list is a document, and the document works in GPT-6 Astra unchanged.
Thanor writes those documents: full art direction per design, in exact values, from the palette in hex to the easing curves and the section order, with the media the page uses, for personal and client work. Free accounts open the designs marked free, and the plans open the rest.
Open Vesperion and copy its prompt; it is free with an account. Send it to Sites as your first message rather than a sentence about how the page should feel. The reply will tell you which of the two the builder was ever able to act on, and the library holds the rest when you want a different world.
Questions this raises
What is ChatGPT Sites?
OpenAI's builder for websites and lightweight apps inside ChatGPT. It entered public beta on July 9, 2026 and, at the time of writing, is available on Plus and Pro accounts and in Business and Enterprise workspaces, not on Free or Go. You describe the site in ChatGPT Work or Codex, refine it by message, then publish it to a URL.
Is ChatGPT Sites any good?
It assembles a working responsive page quickly and refines by conversation, which suits a one-page site. The look of the result is decided by the values in your message: adjectives return the category median, and named hex codes, a type scale and an easing curve return those.
What should I write in the first message?
The tokens. Surfaces and borders as hex and `rgba()`, a neutral with its hue bias stated, one accent with a cap on appearances, a type scale in px with a ratio, a spacing ramp, one easing curve with a duration, the section order, and three refusals.
Does it work with GPT-6 Astra?
Sites runs inside ChatGPT Work and Codex, and which models you can pick there depends on your plan. OpenAI's release notes mention `GPT-6 Astra`, its flagship since September 3, 2026, alongside `GPT-6.1 Sol` and `GPT-6.1 Terra` in Work and Codex. The specification you write does not change between them.
Why does my ChatGPT Sites page look like everyone else's?
Because the parts nobody specified were filled from the middle of the distribution: a neutral geometric sans, a gray on the neutral axis, an `8px` radius on every corner, and a fade plus `translateY(20px)` at roughly `300ms`. Naming those four is a ninety second change.
Part of
Every model, on design
Each new model put on the same job, designing a website, and judged on what it actually produces. Which one to reach for, and the part of the result that does not depend on the model at all.
