UXM UXMachine Real casesWhat UXMachine isTry it with a URLSign inESEN

Verifiable review

What we checked on this site

https://vercel.com

Declared goal

A general review

This report is written for whoever can change this site. If that is not you, pass it on.

October 11, 2026·evidence captured during the analysis

This is the report we issued on October 11, 2026. We have not edited it since.

Check your own site the same way

We open up to 11 pages of your site in a real browser, on desktop and mobile, and tell you what we observed, with its evidence and its limits.

Check a URL

If you change only one thing

Mark which details in this form are required

When you change it, measure this site again: we will tell you whether we still observe it.

See the full order and why ↓

1

Diagnose

What we were able to measure

We reviewed 11 of the 79 linked pages, at 1280 px and 390 px. Everything we say below comes from these captures, and each statement has the measurement it comes from underneath it.

Screenshot of the first screen of the page, as it looked when we read it, in a 1280×800 window.
Screenshot of the first screen of the page, as it looked when we read it, in a 390×844 window.

First screen at 1280×800 and at 390×844, as it looked when we read it. Where the first screen ends depends on the window size. Open them at full size to see it.

First screen at 1280×800 and at 390×844, as it looked when we read it. Where the first screen ends depends on the window size. Open them at full size to see it.

What you can leave as it isSee
Other things we observed, none of which point to a problem.See
What its forms ask forSee
What we checked and what was left outSee
The measurements, one by oneSee

We ran 6 checks. Complete: 2. Partial: 3. Not measured: 1. With that, we flag 3 changes for you.

2

Decide

What you can decide

Each one is a change you can make, with the measurement it comes from and how to check that it is done. In stage 3 we tell you in what order we would make them.

They are not ordered by urgency. Which one you work on first is a decision this report does not make.

Found in the review, with no demonstrated relation to what you asked for.

  • Act

    Mark whether this field is required

    Why we say this —This form asks for 1 detail, and we did not find it declared as required in a way we can read. It appears on all 11 pages we reviewed.

    Nobody knows what they can leave blank. Neither does the browser, so it cannot warn before sending: the warning comes late or not at all.


    You will know it is done whenthat field, if it is required, is declared as required.

    It appears on 1 of the 11 pages we reviewed.

    Where: /new

    The measurement: We counted what the form asked for when it opened; it may ask for more as you go.

    Confirm it by looking at the form: the required fields stand out at a glance, and in the code they have required

    What we do not know about this check: Complete across the pages we read.

    The evidence

  • Act

    Darken the text that does not reach the minimum against its background

    Why we say this —At least one piece of text on these pages falls below the minimum contrast that applies to it. It appears on 7 of the 11 pages we reviewed.

    In low light, in bright light or with tired eyes, this text blends into the background. Anyone who does not read it, does not read it.

    Lightening the background also works, or changing both. We give you one so you do not have to choose.


    You will know it is done wheneach pair reaches the minimum that applies to it.

    It appears on 7 of the 11 pages we reviewed.

    Where: /contact/sales, /login, /new, /ai-sdk, /ai-gateway, /ship?utm_campaign=ship-sf2026&utm_source=site&utm_medium=homepage, /blog/dockerfile-on-vercel

    The measurement: We measure against the reference the check itself brings: 4.5 to 1 for normal text and 3 to 1 for large text. We did not set it. We do not measure text that sits on an image or a gradient: the check cannot work out the background color, and those cases never get this far.

    Confirm it with the eyedropper in the browser inspector: each of the color pairs listed in the full report now reaches its minimum

    What we do not know about this check: Partial. Visible focus does not show in a still capture, so we did not check it.

    The evidence

  • Act

    Put a main heading on this page

    Why we say this —On these pages we found no h1. It appears on 1 of the 11 pages we reviewed.

    Anyone navigating by headings with a screen reader has no starting point. And you lose the clearest signal of what the page is about.


    You will know it is done whenthe page declares a main heading.

    It appears on 1 of the 11 pages we reviewed. · at both widths

    Where: /new

    The measurement: We found no <h1> on those pages.

    Confirm it in the page code: the main title is inside an h1 tag

    What we do not know about this check: Partial. Visible focus does not show in a still capture, so we did not check it.

    The evidence

What gets in the way most

Computed accessibility

  • Let this page be zoomed in on a phone

    This site asks the browser not to allow zooming in on a phone.

    The viewport tag declares maximum-scale=1. Some browsers ignore that request and others respect it.

    Anyone who needs to zoom in to read cannot do it on their phone.

    It appears on 11 of the 11 pages we reviewed. Among them: /, /oss, /ai. Plus 8 more.

    at both widths

    It is in the viewport tag, in maximum-scale=1 or in user-scalable=no.

3

Act

What to do, and in what order

3 changes, in the order we would make them. If you are only going to change one thing, change the first one.

Where this order comes from: three things we measured — how much it overlaps with what you asked us for, whether we could check it fully or only partly, and on how many of the 11 reviewed pages it appears. What we checked fully goes before what we checked partly. We do not measure how much each change costs, so if the first is expensive and the third is one line, start with the third.

Mark which details in this form are required

How to check it: Confirm it by looking at the form: the required fields stand out at a glance, and in the code they have required

1 of the 11 pages · the card

Raise the contrast of this text against its background

How to check it: Confirm it with the eyedropper in the browser inspector: each of the color pairs listed in the full report now reaches its minimum

7 of the 11 pages · the card

Declare the main heading of this page

How to check it: Confirm it in the page code: the main title is inside an h1 tag

1 of the 11 pages · the card

There is one more step

Declare the description of this page

How to check it: Confirm it in the page head: the meta description tag appears with its text

2 of the 11 pages · the card

What you can leave as it is

None of the checks we completed lets us say that something should stay as it is. That does not mean it is wrong: it means we do not have a complete check that certifies it.

Other things we observed, none of which point to a problem.

There are 11 facts.

  • We counted 277 images on the pages we reviewed. 131 of them are declared as decorative.
  • The main heading of / says: “Agentic Infrastructure”.
  • The main heading of /oss says: “Open Source Software”.
  • The main heading of /ai says: “Build frontier agents and AI apps on Vercel”.
  • And 7 more.

What its forms ask for

A form without a title inside the form itself. If there is a heading just above it but outside it, we do not count it.

  • A form without a title of its own asks for 6 details. 5 of them are required. It is on /contact/sales.
  • A form without a title of its own asks for 1 detail, and it is required. It is on /login.
  • A form without a title of its own asks for 1 detail; we found no mark we can read that says whether it is required. It is on /new.

Why it matters: Every detail asked for before getting an answer is one more decision for whoever fills it in.

We counted what the form asked for when it opened; it may ask for more as you go. We only see the forms the page declares as forms.

What we checked and what was left out

This report looks at this site at 390 pixels wide, with the same checks we run on desktop. There are three things specific to mobile that we do not check yet: the size of what has to be tapped, whether the phone zooms in on the page when a field is tapped, and what text size is left afterwards. That we do not name them does not mean they are fine: it means we have not looked at them.

We read 11 pages on desktop, and all of them could also be read on mobile.

Consent notice: we could not determine whether there was one on 11 of the 11 pages of this review. On those pages, what we describe is what loaded before we responded to anything; if the notice exists, content that only appears afterwards may be missing.

We read 11 of the 79 pages we found linked from the one you gave us. We start with the pages in the main navigation; footer links go last. Besides the page you gave us, we read up to 10 more pages per diagnostic. Here we reached that limit.

What we did and on what

We read 11 pages on October 11, 2026. We have 6 findings, in 4 groups. There is 1 more that we only show with its evidence.

How we chose which pages to read. We followed the links on vercel.com and found 167 anchors. 77 were repeated and 12 pointed outside the site.

We ran 6 checks. Complete: 2. Partial: 3. Not measured: 1.

  • https://vercel.com/
  • https://vercel.com/oss
  • https://vercel.com/ai
  • https://vercel.com/for/retail
  • https://vercel.com/contact/sales
  • https://vercel.com/login
  • https://vercel.com/ship?utm_campaign=ship-sf2026&utm_source=site&utm_medium=homepage
  • https://vercel.com/blog/dockerfile-on-vercel
  • https://vercel.com/new
  • https://vercel.com/ai-sdk
  • https://vercel.com/ai-gateway

We ran 6 checks. Complete: 2. Partial: 3. Not measured: 1.

With that, we flag 3 changes. In no case do we hold back.

Where we did not look

Each abstention with its cause and its scope. Absence of observation is not absence of the problem.

  • Computed accessibility

    Partial. Visible focus does not show in a still capture, so we did not check it.

  • Navigation and links

    Partial. We checked links with no declared destination, but we did not follow any, so we do not detect a link that leads to a page that does not exist.

  • First screen and calls to action

    Not measured. A fixed layer sat over the first screen, and we cannot separate what is underneath.

  • Third parties and consent

    Partial. This check only covers the domains the page called while loading. We do not judge whether what the page does with those domains is lawful.

  • Comparison with a reference population

    We do not yet compare this site with any reference corpus.

LIMITS OF THIS REVIEW

  • These observations are limited to the reviewed pages listed above.

  • The pages we did not read are not in these observations: nothing this report says refers to them.

  • What we count as a link or button: links, buttons, controls that submit a form, and anything that declares a link or button role. If something acts as a control without declaring itself one, we do not see it.

  • We measure contrast against the reference the check itself comes with: 4.5 to 1 for normal text and 3 to 1 for large text. It is not a threshold of our own. We do not measure text placed over an image or a gradient: the check cannot determine the background color, and those cases do not reach these observations.

  • This review looked at the site in its light version. If the site changes its appearance when the computer or phone is in dark mode, that version has not been looked at, and what we say here about contrast does not apply to it.

  • This review was done from the Netherlands, within the European Union. A visitor from outside the European Union may not see the same thing: some sites change depending on where they are requested from.

  • Fixed layers are measured in each of the windows used in this review. At another window size, the part of the first screen that is covered changes, and a layer that covers nothing in one window may cover something in another.

  • We do not count images declared as decorative: an image is declared decorative with alt="", and that is a choice made by whoever put it there. We trust that declaration; we do not check whether the image really is decorative.

  • When we review the declared type of a field, we go by its name and its label. We do not check what is typed into it, so a field whose name does not announce what it expects can go by without us flagging it.

  • You wrote “A general review” as your goal. We could not relate what you wrote to what we know how to check, so we ordered the report without taking it into account. That is a limit on our side.

  • This review abstains on 5 points. Each one, with its cause and its scope, is under “Where we did not look”.

The measurements, one by one

One form asks for a single detail, and we found nothing that says whether it is required.

F3 · Observed forms

Why it matters: Whoever fills it in does not know what they can leave blank until they try to send it.

It is on /new.

We counted what the form asked for when it opened; it may ask for more as you go.

Where it is

Contact Form§url:git-url

If you decide to change it: Mark each required field in its label, and declare it on the field itself with the required attribute. We have not tested the change, so we do not know what else is affected.

This site asks the browser not to allow zooming in on a phone.

F1 · Computed accessibility

The viewport tag declares maximum-scale=1. Some browsers ignore that request and others respect it.

It appears on 11 of the 11 pages we reviewed. Among them: /, /oss, /ai. Plus 8 more.

at both widths

It is in the viewport tag, in maximum-scale=1 or in user-scalable=no.

Where it is

meta[name=viewport]

About this check: Partial. Visible focus does not show in a still capture, so we did not check it.

If you decide to change it: Remove that value from one line. We have not tested the change, so we do not know what else is affected.

On 7 of the 11 pages we reviewed, there are pieces of text that barely stand out from their background.

F1 · Computed accessibility

Why it matters: It is hard to read against the color behind it.

It appears on 7 of the 11 pages we reviewed. Among them: /contact/sales, /login, /new. Plus 4 more.

We measure against the reference the check itself brings: 4.5 to 1 for normal text and 3 to 1 for large text. We did not set it. We do not measure text that sits on an image or a gradient: the check cannot work out the background color, and those cases never get this far.

The measured colors, with their page

  • 3.94The text is #7d7d7d on #fafafa · 5 times on https://vercel.com/contact/sales · it says “80% YoY growth on Black Friday with zero downtime”
  • 4.25The text is #0072f5 on #fafafa · once on https://vercel.com/login · it says “Sign Up”
  • 2.27The text is #a8a8a8 on #fafafa · 2 times on https://vercel.com/login · it says “Terms”
  • 4.11The text is #7d7d7d on #ffffff · 5 times on https://vercel.com/new · it says “You can also drag and drop your project, or choose a file or a folder.”
  • 4.44The text is #0072f5 on #ffffff · 2 times on https://vercel.com/new · it says “file”
  • 3.09The text is #8f8f8f on #fafafa · 2 times on https://vercel.com/ai-sdk · it says “AI SDK UI”
  • 2.37The text is #a8a8a8 on #ffffff · 7 times on https://vercel.com/ai-gateway · it says “Vercel provides a workflow to develop, deploy, and host websites, apps, and serverless fun”
  • 3.09The text is #8f8f8f on #fafafa · 18 times on https://vercel.com/ai-gateway · it says “01”
  • 1.56The text is #2f2f2f on #000000 · 5 times on https://vercel.com/ship?utm_campaign=ship-sf2026&utm_source=site&utm_medium=homepage · it says “Guillermo Rauch”
  • 1.54The text is #2e2e2e on #000000 · 10 times on https://vercel.com/ship?utm_campaign=ship-sf2026&utm_source=site&utm_medium=homepage · it says “Founder and CEO, Vercel”
  • 2.37The text is #a8a8a8 on #ffffff · 11 times on https://vercel.com/blog/dockerfile-on-vercel · it says “10”
  • 4.11The text is #7d7d7d on #ffffff · once on https://vercel.com/ai-sdk · it says “generate-text.ts”
  • 2.27The text is #a8a8a8 on #fafafa · 8 times on https://vercel.com/ai-gateway · it says “OpenAI”
  • 1.49The text is #cfcfcf on #fafafa · 5 times on https://vercel.com/ai-gateway · it says “02”
  • 2.53The text is #9f9f9f on #fafafa · 11 times on https://vercel.com/ai-gateway · it says “Install dependencies”
  • 1.96The text is #b5b5b5 on #fafafa · 4 times on https://vercel.com/ai-gateway · it says “Install the AI SDK and development dependencies.”
  • 2.47The text is #9f9f9f on #f7f7f7 · 2 times on https://vercel.com/ai-gateway · it says “.env.local”

About this check: Partial. Visible focus does not show in a still capture, so we did not check it.

If you decide to change it: Change one color in the stylesheet. We have not tested the change, so we do not know what else is affected.

We found no main heading on 1 of the 11 pages we reviewed.

F1 · Computed accessibility

We saw no level 1 element that says what the page is about.

It is on /new.

at both widths

We found no <h1> on those pages.

The count for each page

  • https://vercel.com/new · 1

Where it is

body

About this check: Partial. Visible focus does not show in a still capture, so we did not check it.

If you decide to change it: One tag around the title that already exists. We have not tested the change, so we do not know what else is affected.

We found no search engine description on 2 of the 11 pages we reviewed.

F5 · Metadata and shareability

Why it matters: Google chooses on its own which snippet to show under the title.

It appears on 2 of the 11 pages we reviewed. Among them: /login, /new.

at both widths

We found no <meta name="description"> tag on those pages.

The count for each page

  • https://vercel.com/login · 1
  • https://vercel.com/new · 1

Where it is

head

If you decide to change it: One line in the page head. We have not tested the change, so we do not know what else is affected.

On all 11 pages we reviewed, there are external domains that load before anyone touches anything. On the page with the most, there are 3.

F6 · Third parties and consent

They showed up in the first load. We could not determine whether this page shows a consent notice, so we do not know whether any of this would have changed after answering it. If that matters for what you are going to decide, check it by hand before acting.

Among them: lishhsx6kmthaacj.public.blob.vercel-storage.com, o205439.ingest.us.sentry.io, fvqcrhkhgatlyl2m.public.blob.vercel-storage.com. Plus 4 more.

It appears on 11 of the 11 pages we reviewed. Among them: /, /oss, /ai. Plus 8 more.

at both widths

The count for each page

  • https://vercel.com/ · 2
  • https://vercel.com/oss · 3
  • https://vercel.com/ai · 1
  • https://vercel.com/for/retail · 1
  • https://vercel.com/contact/sales · 1
  • https://vercel.com/login · 2
  • https://vercel.com/ship?utm_campaign=ship-sf2026&utm_source=site&utm_medium=homepage · 1
  • https://vercel.com/blog/dockerfile-on-vercel · 1
  • https://vercel.com/new · 1
  • https://vercel.com/ai-sdk · 1
  • https://vercel.com/ai-gateway · 3

Where it is

network

About this check: Partial. This check only covers the domains the page called while loading. We do not judge whether what the page does with those domains is lawful.

No fix proposed: this is a decision worth consulting on.

The headings on each page skip levels once.

F1 · Computed accessibility

Why it matters: Anyone navigating by headings loses the thread of the document.

It appears on 3 of the 11 pages we reviewed. Among them: /oss, /ai, /ship?utm_campaign=ship-sf2026&utm_source=site&utm_medium=homepage.

at both widths

We look at the order of the heading levels (h1, h2, h3…) as they appear in the document, and here there is a skip between levels. We do not judge what each heading says.

Where it is

h1..h6

About this check: Partial. Visible focus does not show in a still capture, so we did not check it.

If you decide to change it: Change the level of the tag, not how it looks. We have not tested the change, so we do not know what else is affected.

All cases

The other cases: Airbnb · Atlassian · Attio · Basecamp · Calendly · Dropbox · Duolingo · GitHub · Intercom · Linear · Loom · Miro · Notion · Paddle · PostHog · Shopify · Simple Analytics · Typeform · Umami · Zoom

Check your own site the same way

We open up to 11 pages of your site in a real browser, on desktop and mobile, and tell you what we observed, with its evidence and its limits.

Check a URL

Provenance

The instrument this review was written with.

Artifact versionartifact.v15
Resolution baseCaptured
CapturedOctober 11, 2026, 13:15 UTC
Page setcs-c46cc94b-4d7d-4f7a-8f63-85c50b36548d
Instrumentcopy-familias.v32 · spine seis-secciones.v1 · surface superficie:47f340120276a76a
Field definitioncenso-de-formularios.v1 · we do not count: hidden, submit, button, reset, image and the anti-spam tokens · the fields marked aria-hidden · the search fields: they do not ask for details about the person; they are a navigation control · the fields that appear while typing or in later steps: they are not guessed
Selection rulenot recorded

These versions identify the instrument, not the exact wording: the same version can cover later wording corrections.

Requested addresshttps://vercel.com
Final addresshttps://vercel.com/
ReadingRead on October 11, 2026. Sites change.

Examples made on public home pages. They imply no commercial relationship, engagement, validation or approval on the part of the brands analyzed.

If you own one of these sites and do not want its report here, write to us and we will take it down the same day. You do not have to explain why.

UXMachine would like to use Google to measure visits and which ads bring them. Without your permission, we do not load those tools. Details

Settings