saas · Sep 26, 2026

row.so

We found more conversion tactics here than on 85% of the 323 entry-page SaaS captures we have measured.

5 conversion tactics detected

1 page walked · measured by Roentgen 1.27.0

Walk 3 onward steps matched, but we could not reach them. Everything below is measured from the entry page alone.

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-26. 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 630 entry-page captures, more conversion tactics than 91% of them.

The short version, in 4 parts

  1. Proven on the page

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

    Puts proof in the first viewport
    4.9 from 100+ reviews Loved by 2,500+ creators & marketers
    Offers a free trial or free tier
    free trial
    Shows customer logos or a trusted-by claim
    logos: Row.so, Founder, Brian Rossiter, Alex Nguyen, Tung Le

    + 2 more with evidence

    See all 5

  2. Not seen

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

    FAQ / objection handling
    An accordion / FAQ block answering objections.
    Demo / docs entry
    A "book a demo" or documentation / API entry point.
    Lead-capture form
    An on-page form collecting contact details (email / name / phone) outside a che…

    + 3 more

    See what we looked for

  3. Flagged

    5 of 12 build checks flagged, each with a fix

    Text contrast (WCAG AA)
    82% of measurable text passes WCAG AA. 4+ runs fail.
    Body text size
    Smallest sampled text is 10px, below the 13px floor this check uses.
    Render-blocking resources
    19 stylesheets/scripts in <head> block first paint.

    + 2 more

    See the fixes

  4. In their words

    The headline: Build a directory that makes money.

    Promise
    AI directory website builder with paid listings on every plan from $24/mo — 0% platform fee, Google Sheets 2-…
    Prices shown
    $79 · $4,800 · $100

    Read every quote

Captured Homepage / Lander
Step 1 · Homepage / Lander1 / 4

What we recorded

The funnel, frame by frame

1 step walked

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

measuredextracted directly from the live page. a fact, not an opinion
Homepage / Lander
01

Homepage / Lander

6 tactics

$79 +7 more  ·  subscription  ·  1 proof point

Sticky CTATrust badgesPressFree trialLogo wallPricing tiers

In their own words

39 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
Row.so — AI Directory Website Builder with Paid Listings
Meta description
AI directory website builder with paid listings on every plan from $24/mo — 0% platform fee, Google Sheets 2-way sync, Map Locator, custom domain. No code. Keep 100% of revenue.
Headline
Build a directory that makes money.
Section headings
From prompt to live directory. Watch it happen.Stop building forever. Start collecting listing fees.From idea to live site in three simple steps.Look premium. Get paid. Stay in sync.Real directories, live now.Niches people ship — and charge for.Founders who stopped building and started charging.Simple pricing. Pay for the platform — not a cut of your revenue.+8 more, not shown
Buttons and links
Build directoryAI writing toolsOpen Source AlternativesSaaS boilerplatesStartup directoriesMonthlyYearly −20%Start 7-day free trialWhat is Row.so?Do I need any technical skills?+2 more, not shown
Prices on the page
$79$4,800$100$24$288$39$468$948

Sections

6 identified

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

measuredextracted directly from the live page. a fact, not an opinion
Nav section of row.so
Nav0% down the page
Hero section of row.so
Hero0% down the page
Logos section of row.so
Logos60% down the page
Pricing section of row.so
Pricing66% down the page
FAQ section of row.so
FAQ80% down the page
Footer section of row.so
Footer95% down the page

Elements

1 harvested

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

measuredextracted directly from the live page. a fact, not an opinion
Rating element
Rating“from 100+ reviews”

What we found

5 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

proof3 of 4

Puts proof in the first viewport 4.9 from 100+ reviews Loved by 2,500+ creators & marketers
Shows customer logos or a trusted-by claim logos: Row.so, Founder, Brian Rossiter, Alex Nguyen, Tung Le
Shows press logos or an as-seen-in claim featured on

offer2 of 2

Offers a free trial or free tier free trial
Makes the pricing ladder explicit free, $24/mo, $39/mo, $79/mo

What we didn’t find

6 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 see6 of 11 applicable

FAQ / objection handling 1,541 of the 2,334 funnels we checked
Demo / docs entry 559 of the 1,631 funnels we checked
Lead-capture form 415 of the 1,631 funnels we checked
Us-vs-them comparison 413 of the 2,334 funnels we checked
Usage / adoption proof 272 of the 1,947 funnels we checked
Scarcity / urgency copy 118 of the 2,330 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

12 run · 5 flagged

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

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

5 of 11 measured checks need work1 could not be measured — not counted either way

Text contrast (WCAG AA)

contrast:text-contrast-wcag-aa

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

worst: “Full-fledged directories built in a flash” at 3.2:1 (11px, #0f9f59 on #f6f7f8). 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.

Render-blocking resources

weight:render-blocking-resources

19 stylesheets/scripts in <head> block first paint.

FixDefer non-critical JS (defer/async) and inline only critical CSS.

Oversized images

weight:oversized-images

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

“logo.svg” is 256px wide, displayed at 28px

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

Tap-target size (mobile)

mobile:tap-target-size-mobile

80 of 105 interactive targets are under 44×44px on mobile.

smallest: “Toggle dark mode” at 36×36px

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

Worth knowing3

Line length

6 paragraphs run past ~95 characters per line.

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

type:line-length
Label in name

1 control has 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
Autocomplete hints

No autocomplete attributes across 1 field. browsers cannot autofill.

FixAdd autocomplete="email"/"tel"/"name" to identity fields.

forms:autocomplete-hints

Not measurable1

Page weight

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

weight:page-weight

Clear3

Mobile viewport · Language declared · Image alt text

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#f0fdf4
bg#ffffff
surface#f6f7f8
text#65758b
See the roles applied
accent

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

the roles, doing their job
The quick brown fox52px
Jumps over the lazy dog48px
A subheading in their voice32px

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
15pxAa
16pxAa
20pxAa
26pxAa
32pxAa
48pxAa
52pxAa
WEIGHTS
Aa400
Aa500
Aa600
Aa700
Aa800
FAMILIES
Plus Jakarta Sans
rendered in their own type system · webfont not loaded. system fallback if uninstalled

Measured, found none

1 of 9 layers

layers we ran on this funnel that came back empty

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

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

We ran this pass 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.