saas · Sep 23, 2026

mermaid.js.org

We found more conversion tactics here than on 10% of the 1,350 multi-step SaaS funnels we have measured.

3 conversion tactics detected

4 pages walked · measured by Roentgen 1.27.0

Put this x-ray to work Brief your AI X-ray your funnel
How this was measured

Measured by Roentgen 1.27.0 on 2026-09-23. A capture is read once and its measurements freeze there, so the stamp says which ruleset read this one.

This is detection coverage, not a verdict — it counts the conversion tactics we could prove are present, out of the 11 that apply to a saas funnel. A low count means we did not detect those patterns, not that the funnel is weak.

Against all 1,781 multi-step funnels, more conversion tactics than 20% of them.

Walk 87 links on the entry page, 74 walkable. 3 matched a funnel step; we captured 4 pages in all, this one included.

The short version, in 5 parts

  1. Proven on the page

    3 conversion tactics detected, each backed by text on the page

    Offers a free trial or free tier
    Start free
    Shows customer logos or a trusted-by claim
    logos: Mermaid, Build CI Status, NPM, Coverage Status, CDN Status
    Offers a demo or docs entry point
    documentation

    See all 3

  2. Not seen

    8 of 11 applicable tactics we checked for and did not see

    FAQ / objection handling
    An accordion / FAQ block answering objections.
    Pricing tiers
    Named plan tiers with per-month / per-seat pricing.
    Press / "as seen in"
    Media logos or an "as seen in / featured in" claim borrowing publication credib…

    + 5 more

    See what we looked for

  3. Flagged

    6 of 14 build checks flagged, each with a fix

    Text contrast (WCAG AA)
    90% of measurable text passes WCAG AA. 4+ runs fail.
    Body text size
    Smallest sampled text is 10px, below the 13px floor this check uses.
    Line height
    Body line-height is 1.2×, tight enough to hurt readability.

    + 3 more

    See the fixes

  4. Walked

    4 pages walked, Intro to Syntax Reference.Html

    Step 1
    Intro
    Step 2
    Syntax
    Step 3
    Getting Started.Html

    + 1 more step

    Walk it frame by frame

  5. In their words

    The headline: About Mermaid ​

    Promise
    Create diagrams and visualizations using text and code.

    Read every quote

Captured Intro
Step 1 · Intro1 / 4

What we recorded

The funnel, frame by frame

4 steps walked

see their whole funnel without clicking through it. scored step by step

measuredextracted directly from the live page. a fact, not an opinion
Intro
01

Intro

▲ strongest
4 tactics

10% off  ·  1 proof point

Trust badgesFree trialLogo wallDemo / docs
Syntax
02

Syntax

▼ thinnest
2 tactics

19.95EUR  ·  10% off  ·  1 proof point

Free trialDemo / docs
Getting Started.Html
03

Getting Started.Html

3 tactics

10% off  ·  1 proof point

Free trialLogo wallDemo / docs
Syntax Reference.Html
04

Syntax Reference.Html

3 tactics

10% off  ·  1 proof point

Free trialLogo wallDemo / docs

In their own words

26 quoted

the entry page’s own title, headline, buttons and prices — quoted, never paraphrased

measuredextracted directly from the live page. a fact, not an opinion
Page title
About Mermaid | Mermaid
Meta description
Create diagrams and visualizations using text and code.
Headline
About Mermaid ​
Section headings
What are you looking for?📔 Introduction📊 Diagram Syntax📚 Ecosystem⚙️ Deployment and Configuration🙌 Contributing📰 Latest NewsDiagram Types ​+8 more, not shown
Buttons and links
Just exploring, skip for nowSearch Ctrl K12.0.0Get startedCtrl + Enter | Run ▶Run ▶Edit this page on GitHub

What we found

3 tactics

conversion tactics we could prove are present, with the on-page text that evidences each

measuredextracted directly from the live page. a fact, not an opinion

proof1 of 4

Shows customer logos or a trusted-by claim logos: Mermaid, Build CI Status, NPM, Coverage Status, CDN Status

offer1 of 2

Offers a free trial or free tier Start free

checkout1 of 2

Offers a demo or docs entry point documentation

What we didn’t find

8 of 11 applicable

applicable tactics we checked for and did not see on any step we reached

measuredextracted directly from the live page. a fact, not an opinion

What we didn’t see8 of 11 applicable

FAQ / objection handling 1,615 of the 2,420 funnels we checked
Pricing tiers 873 of the 1,673 SaaS funnels we checked
Press / "as seen in" 642 of the 2,417 funnels we checked
Us-vs-them comparison 441 of the 2,420 funnels we checked
Lead-capture form 437 of the 1,683 funnels we checked
Proof above the fold 381 of the 2,420 funnels we checked
Usage / adoption proof 289 of the 2,043 funnels we checked
Scarcity / urgency copy 125 of the 2,417 funnels we checked

Absence is a measurement, not a recommendation: we do not know why a tactic is missing, whether it belongs here, or whether adding it would change anything. Where a walk stopped early, a tactic living deeper would also read as not detected.

How well it’s built

14 run · 6 flagged

contrast, mobile, typography, accessibility, weight — each with what would fix it

measuredextracted directly from the live page. a fact, not an opinion

6 of 13 measured checks need work1 could not be measured — not counted either way

Text contrast (WCAG AA)

contrast:text-contrast-wcag-aa

90% of measurable text passes WCAG AA. 4+ runs fail.

worst: “Start” at 1.61:1 (16px, #cccccc on #ffffff). needs 4.5:1

FixRaise text/background contrast to ≥4.5:1 (≥3:1 for large text), especially on CTAs and body copy.

Body text size

type:body-text-size

Smallest sampled text is 10px, below the 13px floor this check uses.

FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.

Line height

type:line-height

Body line-height is 1.2×, tight enough to hurt readability.

FixSet body line-height to ~1.4-1.6×.

Named controls

a11y:named-controls

5 buttons/links have no accessible name (icon-only, no aria-label).

FixAdd aria-label to icon-only buttons and links.

Oversized images

weight:oversized-images

9 images are shipped at more than 2x the width shown.

“book-banner-post-release.DBlRGW2R.jpg” is 2560px wide, displayed at 688px

FixServe responsive sizes (srcset/sizes) matching the rendered width.

Tap-target size (mobile)

mobile:tap-target-size-mobile

32 of 405 interactive targets are under 44×44px on mobile.

smallest: “Skip to content” at 32×16px

FixGive tappable controls a ≥44×44px hit area. the touch minimum.

Worth knowing3

Line length

8 paragraphs run past ~95 characters per line.

FixCap measure at ~60-75ch for comfortable reading.

type:line-length
Heading levels

34 headings skip a level (e.g. <h2> followed by <h4>). Screen-reader users navigate by this outline.

FixStep heading levels one at a time; use CSS for size, not a deeper level.

a11y:heading-levels
Label in name

4 controls have an aria-label that does not contain its visible text, so voice-control users cannot activate it by saying what they see.

FixMake the accessible name start with the visible label text.

a11y:label-in-name

Not measurable1

Page weight

At least 3.0 MB across 84 measurable resources, but 167 cross-origin resources did not expose a size. The true weight cannot be determined from the page.

weight:page-weight

Clear4

Mobile viewport · Language declared · Image alt text · Render-blocking resources

Brand kit

5 colour roles

palette by on-page usage · type rendered live

measuredextracted directly from the live page. a fact, not an opinion
full palette ordered by on-page usage %
accent#070916
bg#f6f6f7
surface#ffffff
text#3c3c43
See the roles applied
accent

Body copy in their text role, on a surface card.

the roles, doing their job
The quick brown fox34px
Jumps over the lazy dog32px
A subheading in their voice24px

Body copy set at their measured paragraph size. This is how their product reads to a first-time visitor. same family, same scale, same weight.

  • List item one, at body scale
  • List item two
  • List item three
Type scale, weights & families
SIZE SCALE
10pxAa
11pxAa
12pxAa
13pxAa
14pxAa
16pxAa
18pxAa
20pxAa
24pxAa
32pxAa
34pxAa
WEIGHTS
Aa300
Aa400
Aa500
Aa600
Aa700
FAMILIES
Inter
rendered in their own type system · webfont not loaded. system fallback if uninstalled

Measured, found none

3 of 9 layers

layers we ran on this funnel that came back empty

measuredextracted directly from the live page. a fact, not an opinion

Sections — structural bands identified on this funnel, cropped from its own capture

Elements — the atomic pieces — price anchors, ratings, guarantees — with their verbatim on-page text

Playbook match — which funnel play this page runs — measured, evidence-quoted

We ran these passes on the pages we captured and found nothing to show. That is a measurement of this funnel, not a recommendation — and it is a different statement from a layer we never ran, which does not appear here at all.

Similar crawls