Skip to content
DurkBench

DesignBench

We gave seven paid models the same landing-page brief and kept what each one wrote. Every page here is real. You can open it.

What we asked for

One brief. The same words, letter for letter, for every model. All seven started at the same moment.

The job
Build a one-page site for a made-up consultancy. One file of code. Nine sections in a set order, ending with a contact form.
The stack
A Next.js page written in TypeScript and styled with Tailwind CSS classes. Nothing pulled from the web: no icon packs, no fonts, no photos. Draw your own or go without.
The rules
No scripts on the page. It has to hold up from a narrow phone to a wide monitor, read correctly in light and dark, and meet the plain accessibility rules.
On its own
No tools, no web, no peeking at our files, and a fresh empty folder for every run.
Effort
The Claude and Codex models ran at high effort. Grok ran at xhigh, its top setting.
The clock
Each model had up to 20 minutes. Start to finish counts the whole time its app was running, not just the part where words appeared.
Retries
A rate limit means come back later, so we wait and ask again. Anything the model itself did — a refusal, a broken file, running out of time — is written down once and never retried.

We opened all seven in a browser at 360, 768 and 1440 pixels wide. Every one drew with no errors in the console, and none of them spilled off the side of the screen. Six of the seven also switch to a dark version when the screen asks for one.

The brief, word for word

This is the whole thing, exactly as each app received it.

Read the brief
Build a landing page.

CONTEXT
Orrery Systems is a fictional consultancy that designs AI systems for other companies: agent architectures, evaluation harnesses, retrieval pipelines, and the operational plumbing around them. Nine people, based in Lisbon, working remotely. Their line is "We design the systems behind the systems."

TASK
Write the complete code for a one-page marketing site for Orrery Systems.

OUTPUT CONTRACT
- Output ONE file of code and nothing else. No explanation, no notes, no commentary before it or after it.
- Do not wrap the code in markdown fences.
- The file is `app/page.tsx` in a Next.js App Router project. It must be a self-contained, default-exported React function component written in TypeScript. Any helper components, data arrays, and types live in the same file.

TECHNICAL RULES
- Tailwind CSS v4 utility classes only. No CSS files, no `<style>` tags, no inline style objects unless a utility genuinely cannot express the thing.
- No imports except from `react` and `next/*`. No icon packs, no animation libraries, no webfonts from a CDN, no images from a URL. If you want an icon or a graphic, hand-write inline SVG.
- It must work as a server component: no "use client", no hooks, no event handlers. Any interactivity comes from plain HTML and CSS (`<details>`, `:hover`, `:focus-visible`, anchor links).
- Responsive from 360px to 1536px. Build the small screen first, then refine with `sm:` / `md:` / `lg:`.
- Accessible: exactly one `<h1>`, correct heading order, real landmarks (`header`, `nav`, `main`, `footer`), text that meets WCAG AA contrast on its own background, visible focus styles, labels on every form control, and `aria-hidden="true"` on decorative SVG.
- Correct in light and dark mode using Tailwind's `dark:` variants.

CONTENT RULES
- Write real, specific copy in the voice of a small senior consultancy. No lorem ipsum, no filler, no placeholder text of any kind.
- Invent concrete details: named services, named (fictional) clients, named people with real-sounding roles.
- Keep every paragraph under 45 words.

REQUIRED SECTIONS, in this order
1. Sticky header: wordmark, four anchor links, one call-to-action.
2. Hero: the h1, a one-sentence subhead, two buttons, and one piece of proof (a stat row, or a client strip built from inline SVG or set type).
3. Services: four offerings, each a title plus two sentences.
4. How we work: a numbered process of four steps.
5. Case studies: three cards, each with the client, the problem, what was built, and one measurable outcome.
6. Team: four people with name, role, and one line each.
7. FAQ: five question-and-answer pairs.
8. Closing call to action with a contact form (name, email, message) that is fully labelled and needs no JavaScript.
9. Footer: nav links, a fictional Lisbon address, and a copyright line.

QUALITY BAR
Aim for the visual quality of a real agency site: a deliberate type scale, generous spacing, a restrained palette you actually commit to, and at least one memorable layout idea instead of nine identical stacked bands. It will be judged side by side with other studios' attempts at this same brief.

Begin the file now. Output code only.

Brief v1 · fingerprint 19506ecf082b860e

The seven pages

A picture only shows the top of a page. Open one to get the real thing, drawn by your own browser at your own screen size.

How to read this

Start to finish is how long the app ran. File size is the page the model handed back. Neither number says the page is any good — this bench collects the pages, and judging them is a separate job we have not published yet. Open a page and decide for yourself.

How to read this

If a page opens dark, that is the model's own work: the brief asked for light and dark support, so six of the seven pages follow your device's setting.

The top of the landing page Opus 4.6 wrote

Opus 4.6

Anthropic · run in Claude Code

Start to finish
10m 18s
File size
28.5 KB
Lines of code
626

What we noticed

  • It broke none of the rules we check for.
The top of the landing page Opus 4.7 wrote

Opus 4.7

Anthropic · run in Claude Code

Start to finish
2m 24s
File size
30.4 KB
Lines of code
498

What we noticed

  • It broke none of the rules we check for.

What we saw on screen

  • On a screen under 640 pixels wide the headline runs two words together. The only gap between them is a line break that small screens hide, and nothing takes its place.
The top of the landing page Opus 4.8 wrote

Opus 4.8

Anthropic · run in Claude Code

Start to finish
1m 56s
File size
28.0 KB
Lines of code
685

What we noticed

  • It broke none of the rules we check for.
The top of the landing page Opus 5 wrote

Opus 5

Anthropic · run in Claude Code

Start to finish
2m 48s
File size
36.0 KB
Lines of code
808

What we noticed

  • It broke none of the rules we check for.
The top of the landing page Fable 5 wrote

Fable 5

Anthropic · run in Claude Code

Start to finish
1m 51s
File size
26.7 KB
Lines of code
568

What we noticed

  • It broke none of the rules we check for.
The top of the landing page Grok 4.6 wrote

Grok 4.6

xAI · run in Grok Build

Start to finish
9m 11s
File size
34.2 KB
Lines of code
904

What we noticed

  • It reached for a tool 2 times. Every reach was blocked, so it still worked alone.
  • It typed a sentence before the code. We cut the sentence and kept the file.
The top of the landing page GPT-5.6 Sol wrote

GPT-5.6 Sol

OpenAI · run in Codex

Start to finish
4m 7s
File size
38.6 KB
Lines of code
363

What we noticed

  • The brief named Orrery Systems. That name appears nowhere in this page.
  • It marked the page "use client", so the page ships scripts. The brief asked for a page with none.
  • Its app has no way to print a file to the screen, so it answered through a JSON field instead.

What we saw on screen

  • It answered a different brief. The page sells an app for organising work, not the consultancy we described.
  • Its menu button opens and closes, and its form swaps to a confirmation message when you send it. Both need code running in the browser, which is why the page marks itself "use client".
  • It styles itself with a block of plain CSS instead of the Tailwind classes the brief called for, and it has no dark version.

Run 2026-08-20T05-02-20-550Z-v1 · brief v1 (19506ecf082b860e) · method v6 · test kit v6 · n = 7 · Aug 20, 2026