Design Lab
Clients point at pictures instead of trying to describe a website
- Client
- lukeduff.co.uk
- Service
- Own product
- Where
- United Kingdom
- Year
- 2026
The live site. Drag inside either one. design-lab-lime.vercel.app

Clients can't describe a website, but they can point at one, so I stopped asking what they want. I send a private link instead. They pick between pairs of pictures, answer a few questions, and land on three designs of their own page. They shape one inside limits I set, where the tool won't let the text become unreadable, then approve it. I get a spec to build from, including their own words on what they never want to see.
What I set out to do
- Get a real brief out of clients who can't put what they want into words.
- End the brief on three designs of the client's own page, not a mood board of other people's.
- Let them shape the design without being able to make it unreadable.
- Hand me a spec I can build from, in the client's own words.
- No accounts to set up: the private link is the login.
What it does
- Picture pairs first, then a few questions
- Three designs of the client's own page
- Six groups of controls and nothing else
- Colours read from a logo that never uploads
- Contrast held to WCAG AA automatically
- Desktop, tablet and phone previews
- Spec export: CSS, Tailwind, Elementor, JSON
How it was built
- Next.js 16 with the App Router, React 19, TypeScript and Tailwind 4, on Vercel.
- No database: each client project is a JSON file in Vercel Blob, drawn by a shared library of 13 section types with 2 to 6 layouts each.
- The preview uses container queries, so the phone view is a real phone layout rather than a shrunk desktop.
- Each saved version claims its number with a conditional create, so a slow write on the storage service can't be overwritten.
- A pasted website is read on the server, behind a guard that refuses private and internal addresses.
- Driven by MYOS, my own operations system, through an admin API. An approved design becomes a build brief for my site builder.
- Around 700 automated checks, including Playwright runs in Chromium and in WebKit at iPhone sizes.
- Built solo: first commit 27 August 2026, live two days later.



