saas · Sep 30, 2026

ctrlops.io

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

8 conversion tactics detected

4 pages walked · measured by Roentgen 1.28.1

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

Measured by Roentgen 1.28.1 on 2026-09-30. 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 96% of them.

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

The short version, in 5 parts

  1. Proven on the page

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

    Answers buyer objections
    Common Questions
    Puts proof in the first viewport
    Reviews 30+ reviews from developers
    Offers a free trial or free tier
    Free Trial

    + 5 more with evidence

    See all 8

  2. Not seen

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

    Us-vs-them comparison
    A comparison table framing the brand against alternatives.
    Lead-capture form
    An on-page form collecting contact details (email / name / phone) outside a che…
    Scarcity / urgency copy
    Scarcity or time-pressure copy ("only N left", "selling fast", "limited time")…

    See what we looked for

  3. Flagged

    4 of 14 build checks flagged, each with a fix

    Body text size
    Smallest sampled text is 7px, below the 13px floor this check uses.
    Render-blocking resources
    19 stylesheets/scripts in <head> block first paint.
    Oversized images
    188 images are shipped at more than 2x the width shown.

    + 1 more

    See the fixes

  4. Walked

    4 pages walked, Homepage / Lander to Pricing

    Step 1
    Homepage / Lander
    Step 2
    Features
    Step 3
    Compare

    + 1 more step

    Walk it frame by frame

  5. In their words

    The headline: Deploy, Debug, Manage Linux servers with AI.

    Promise
    CtrlOps is a local-first desktop app for Managing Linux servers with an AI-assisted terminal, real-time monit…
    Prices shown
    $0 · $7 · $70

    Read every quote

Captured Homepage / Lander
Step 1 · Homepage / Lander1 / 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
Homepage / Lander
01

Homepage / Lander

▲ strongest
9 tactics

$0 +4 more  ·  subscription  ·  1 proof point

FAQTrust badgesPressFree trialNo cardLogo wallUsage proofPricing tiersDemo / docs
Features
02

Features

5 tactics

$149  ·  subscription

Trust badgesFree trialNo cardLogo wallDemo / docs
Compare
03

Compare

5 tactics

$7 +1 more  ·  subscription

FAQFree trialNo cardPricing tiersDemo / docs
Pricing
04

Pricing

▼ thinnest
5 tactics

$0 +8 more  ·  subscription  ·  1 proof point

Trust badgesFree trialNo cardPricing tiersDemo / docs

In their own words

36 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
CtrlOps - AI-Powered Server Management & DevOps Tool
Meta description
CtrlOps is a local-first desktop app for Managing Linux servers with an AI-assisted terminal, real-time monitoring & SSH access. No agents. Free to start.
Headline
Deploy, Debug, Manage Linux servers with AI.
Section headings
Everything you need to manage serversSame servers. A completely different week.Deploy anywhere. Manage everything.Your Infrastructure. On Your Machine.One hope. No cloud bridge.Why we built CtrlOpsThe Wall of LoveSimple pricing. Unlimited servers.+8 more, not shown
Buttons and links
ResourcesDownloadLinuxBook a DemoSign InStart Free TrialChoose MonthlyChoose YearlyGet Lifetime AccessIs CtrlOps free?+2 more, not shown
Prices on the page
$0$7$70$6$149

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 ctrlops.io
Nav0% down the page
Hero section of ctrlops.io
Hero0% down the page
Logos section of ctrlops.io
Logos9% down the page
Pricing section of ctrlops.io
Pricing64% down the page
FAQ section of ctrlops.io
FAQ73% down the page
Footer section of ctrlops.io
Footer88% down the page

Elements

2 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“4.8 / 5”
No credit card element
No credit card“$0 /1 month No credit card required”

What we found

8 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

objection1 of 2

Answers buyer objections Common Questions

proof4 of 4

Puts proof in the first viewport Reviews 30+ reviews from developers
Shows customer logos or a trusted-by claim trusted by
Puts a number on adoption 700+ engineers
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, $7/user, $70/user, $7/mo

checkout1 of 2

Offers a demo or docs entry point Documentation

What we didn’t find

3 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 see3 of 11 applicable

Us-vs-them comparison 441 of the 2,420 funnels we checked
Lead-capture form 437 of the 1,683 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 · 4 flagged

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

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

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

Body text size

type:body-text-size

Smallest sampled text is 7px, 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

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

“logo.png” is 1676px wide, displayed at 132px

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

Tap-target size (mobile)

mobile:tap-target-size-mobile

400 of 517 interactive targets are under 44×44px on mobile.

smallest: “G2” at 15×18px

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

Worth knowing6

Line length

18 paragraphs run past ~95 characters per line.

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

type:line-length
Image alt text

1 of 203 content images (0%) have no alt attribute.

FixAdd descriptive alt to content images; alt="" for purely decorative ones.

a11y:image-alt-text
Heading levels

1 heading skips 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

8 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
Keyboard reachability

12 elements look clickable but cannot be reached by keyboard.

FixUse <button>/<a>, or add role + tabindex="0" and a key handler.

structure:keyboard-reachability

Not measurable1

Page weight

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

weight:page-weight

Clear3

Text contrast (WCAG AA) · Mobile viewport · Language declared

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#0a1a0a
bg#ffffff
surface#ffffff
text#c9d1d9
See the roles applied
accent

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

the roles, doing their job
The quick brown fox48px
Jumps over the lazy dog20px
A subheading in their voice18px

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
7pxAa
9pxAa
10pxAa
11pxAa
12pxAa
13pxAa
14pxAa
15pxAa
16pxAa
18pxAa
20pxAa
48pxAa
WEIGHTS
Aa400
Aa500
Aa600
Aa700
Aa800
Aa900
FAMILIES
Inter
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.

Similar crawls