Head of Taste.

Methodology

How we make the ranking

Every weight and threshold behind the Taste Score.

Contents

01Which homepages

This edition ranks 98 AI and software homepages: model labs, developer tools, creative tools, productivity tools and AI tool directories. We pick them by hand and add more each month.

We score the homepage only, at https://<domain>/ and wherever it redirects. A site is ranked only when its screenshots show its homepage. If we get a block page, an error page, an overlay we can’t clear or large blank areas, the site sits out the edition with no penalty, and we try again the next month.

To suggest a company, email hello@headoftaste.ai.

02Capture

Our crawler, TasteIndexBot, runs Google Chrome through Playwright and obeys robots.txt. It captures each homepage twice, once as a desktop browser and once as a phone.

Screens
Desktop at 1440 × 900. Phone at 390 × 844, with 2× pixel density, touch and a mobile user agent. The browser asks for reduced motion, a light colour scheme and US English, so a page renders the same way each month.
Waiting
Each load waits up to 45 seconds for the page’s load event, then up to 10 seconds for the network to go quiet, up to 4 seconds for web fonts, and 1.5 seconds more.
Scrolling
The browser scrolls one screen at a time and captures each screen while it is in view, so scroll effects, lazy images and video show up as a visitor sees them. It stitches up to 7,200 px of the desktop page, about eight screens, into one image and shows fixed headers once. On the phone it measures up to six screens and keeps the first two for the judge.
Pop-ups
We hide consent banners from the well-known consent platforms, large or modal dialogues, marketing pop-ups and chat widgets, in our own browser only. Content that belongs to the page, such as a sign-up form, stays.
Speed
Before the captures, each site gets one cold desktop load of its own, with an empty cache and one site at a time. Speed comes from that load, before any scrolling.

03The judge

The judge is Claude, a model made by Anthropic. One model judges every site in an edition. It gets three images: the first desktop screen at full size, the top five desktop screens, and the first two phone screens.

Blind
The judge never sees the domain or the company name. Its instructions tell it to ignore fame, brand and product quality.
Rubric
The judge scores every site against the same rubric, in whole numbers from 1 to 10, for typography, colour, layout, imagery, polish, distinctiveness and mobile, plus one overall score. The rubric describes every step of the scale. It expects a median of 5 to 6 and keeps 10 for work that designers study and save. Pages lose points for defaults, inconsistency, clutter and sloppiness.
Three runs
The judge scores each site three times and we average the runs. A run counts only if it answers in full and confirms that the screenshots show the homepage.
Notes
The judge also writes the verdict, strengths and improvements on each company page. We edit them into plain English and keep the meaning.
Calibration
This edition is the reference. From Edition 02 we plan to re-judge a fixed set of anchor sites each month and adjust scores against them, so a score means the same across months and model upgrades.

04Measurements

The browser takes these from the desktop page, except the phone checks and speed. Between the end points shown, a signal scores on a straight line from 0 to 100. If a signal can’t be measured on a page, for example because the page has too few paragraphs, we leave it out and re-weight the rest of its category.

Measured signals and how they score
SignalWhat is measuredScoring
Typography families 25% · font sizes 35% · readability 40%
Font familiesFamilies that set at least 3% of the text. One monospace face is free, and icon fonts are ignored.2 or fewer → 100; 3 → 65; 4 → 40; 5 or more → 20
Font sizesThe fewest font sizes that cover 95% of the text, and pairs of near-duplicate sizes.5 sizes or fewer → 100; no near-duplicates → 100
Line lengthCharacters per line in paragraphs of more than one line.Share of text at 45–90 characters
Line spacingLine height of body paragraphs relative to font size.Share of text at 1.3–1.9
Body sizeThe main paragraph font size.16 px or more → 100
Colour contrast 55% · palette 30% · neutrals 15%
ContrastWCAG 2 contrast of each piece of text against whatever is painted beneath it.98% of text passing AA → 100; 60% → 0
PaletteHue families among the non-grey colours of text, backgrounds and borders.2 or fewer → 100; 6 or more → 25
NeutralsDistinct greys, blacks and whites in use.6 or fewer → 100; 11 or more → 40
Layout and spacing grid 60% · spacing values 40%
Spacing gridShare of padding, margin and gap values that are multiples of 4 px.92% → 100; 50% → 0
Spacing valuesThe fewest distinct spacing values that cover 90% of uses.10 or fewer → 100; 30 → 0
Mobile overflow 30% · viewport 10% · small text 20% · tap targets 25% · body size 15%
OverflowWhether the page scrolls sideways on a phone.No → 100; yes → 0
ViewportA responsive viewport tag.Present → 100
Small textShare of text under 12 px.2% → 100; 20% → 0
Tap targetsShare of links and buttons at least 24 × 24 px, as in WCAG 2.5.8.95% → 100; 50% → 0
Body sizeThe main paragraph font size on the phone.16 px or more → 100
Performance largest paint 40% · layout shift 20% · weight 30% · requests 10%
Largest paintLargest contentful paint on the cold desktop load.1.5 s → 100; 4.5 s → 0
Layout shiftCumulative layout shift, as in Core Web Vitals.0.05 → 100; 0.35 → 0
Page weightBytes transferred on that load.1.5 MB → 100; 12 MB → 0
RequestsRequests completed on that load.60 → 100; 300 → 0

For contrast, the browser hit-tests each line of text while it is in view, finds everything painted beneath it and composites down to the first opaque layer. The worst point counts. Text over photos, video or canvas can’t be measured reliably, so we leave it out and record the share of text measured. Decorative, hidden and screen-reader-only text doesn’t count.

05The score

Taste Score = 80% × the weighted categories + 20% × the judge’s overall score

Judge scores from 1 to 10 are multiplied by 10. Within each category, the measured and judged parts mix in the split below. If a site is missing one part, the other counts alone. A category with neither is left out and the other weights are re-normalised.

Category weights and where each category comes from
CategoryWeightMeasuredJudged
Typography20%40%60%
Colour12%40%60%
Layout and spacing20%25%75%
Imagery and polish average of imagery and polish15%–100%
Distinctiveness13%–100%
Mobile12%40%60%
Performance8%100%–
Share of a full Taste Score24.5%75.5%

The overall score is the judge’s answer to one question. Would a demanding design lead be proud to ship this page? It is not an average of the other scores.

Scores are shown as whole numbers. Ranks follow the score to one decimal. Equal scores share a rank, shown as 6=, and are listed by domain, A to Z.

06Rules

  • Every homepage gets the same crawl, the same judge and the same weights. We do not change scores by hand.
  • Any company can ask for a re-crawl or for removal.
  • We do not name low scorers in our marketing.
  • Badges are re-issued with each edition. If a homepage later scores under 80, its badge image turns into a neutral “Listed” mark at the same address, so embedded badges keep working.

07Known limits

  • The browser can’t read text drawn inside images or canvas.
  • Text that never scrolls into view is checked against its own backgrounds, which can differ from what is painted behind it. Gradients count as the average of their colour stops.
  • Two close blues can count as two hue families, because the colour model we use spreads blues wider apart than the eye sees them.
  • Text split into one element per line or per word, for animation, does not count as a paragraph. On those pages, line length and line spacing can go unmeasured.
  • Speed comes from one cold desktop load per edition, from one location. Single loads vary. In our tests, loads minutes apart differed by up to 1 s of largest paint, and a first visit transferred up to twice the bytes. That can move the performance score by about 10 points and a Taste Score by less than 1. We plan to take the median of three loads.
  • Animated sites are judged on still frames, captured with reduced motion. Scroll-driven sections can repeat, shift or get cut where screens are stitched together.
  • We match pop-ups by pattern, so an unfamiliar one can stay in a screenshot.
  • The crawler checks robots.txt at the start address and at the final address of each load. Redirect hops in between go unchecked.
  • The judge is a model. It makes mistakes.

08Versions

Any change to a threshold or a definition gets a new version, so every score traces back to the method that produced it.

Crawler
c5
Measured signals
m2
Judge rubric
r2-085042ff a fingerprint of the judge’s full instructions and image preparation
Edition
Edition 01, crawled 4 October 2026