saas · Sep 30, 2026

codetrain.ai

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

5 conversion tactics detected

2 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 54% of them.

Walk 39 links on the entry page, 27 walkable. 1 matched a funnel step; we captured 2 pages in all, this one included.

The short version, in 5 parts

  1. Proven on the page

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

    Answers buyer objections
    Does CodeTrain write code for you?
    Offers a free trial or free tier
    free tier
    Makes the pricing ladder explicit
    free, $24/mo

    + 2 more with evidence

    See all 5

  2. Not seen

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

    Trusted-by logo wall
    Customer/company logos or a "trusted by / used by" claim.
    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…

    + 3 more

    See what we looked for

  3. Flagged

    5 of 16 build checks flagged, each with a fix

    Body text size
    Smallest sampled text is 9px, below the 13px floor this check uses.
    Named controls
    21 buttons/links have no accessible name (icon-only, no aria-label).
    Oversized images
    19 images are shipped at more than 2x the width shown.

    + 2 more

    See the fixes

  4. Walked

    2 pages walked, Homepage / Lander to Compare

    Step 1
    Homepage / Lander
    Step 2
    Compare

    Walk it frame by frame

  5. In their words

    The headline: Learn any codebase by writing it.

    Promise
    CodeTrain is a Socratic AI coding tutor: it asks questions, reviews what you write, and runs your tests, but…
    Prices shown
    $0 · $24 · $32

    Read every quote

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

What we recorded

Progress

2 scans

this funnel’s coverage score across measured re-scans

measuredextracted directly from the live page. a fact, not an opinion
1 more tactic detected 4 → 5 across 2 scans since 2026-08-05. The ruleset changed in this window, so part of this may be our detection improving rather than the page changing.
  1. 4 tactics 2026-08-05
  2. 5 tactics 2026-09-30

The funnel, frame by frame

2 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
4 tactics

$0 +2 more  ·  1 proof point

FAQFree trialPricing tiersDemo / docs
Compare
02

Compare

▼ thinnest
2 tactics
Free trialDemo / docs

In their own words

34 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
AI Coding Tutor That Never Writes Your Code | CodeTrain
Meta description
CodeTrain is a Socratic AI coding tutor: it asks questions, reviews what you write, and runs your tests, but never writes the code for you. Free to start.
Headline
Learn any codebase by writing it.
Section headings
Try it right here. No account, no install.What is CodeTrain?The skill is quietly leaving the buildingLearn by doing, on the code that mattersFor teams onboarding people into a real codebasePricingQuestions, answeredStop shipping code your team can't explain+8 more, not shown
Buttons and links
DarkStart free✕Try a lesson now, no accountRunResetReferenceAskBuild a lesson▶ Watch a real lesson, start to finish 1:05 · narrated+2 more, not shown
Prices on the page
$0$24$32

Sections

5 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 codetrain.ai
Nav0% down the page
Pricing section of codetrain.ai
Pricing68% down the page
FAQ section of codetrain.ai
FAQ81% down the page
CTA section of codetrain.ai
CTA90% down the page
Footer section of codetrain.ai
Footer94% down the page

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

objection1 of 2

Answers buyer objections Does CodeTrain write code for you?

proof1 of 4

Shows press logos or an as-seen-in claim AS SEEN ON LAUNCHED ON Tiny Startups tinystartups

offer2 of 2

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

checkout1 of 2

Offers a demo or docs entry point docs link

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

Trusted-by logo wall 1,484 of the 2,043 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

16 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 15 measured checks need work1 could not be measured — not counted either way

Body text size

type:body-text-size

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

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

Named controls

a11y:named-controls

21 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

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

“featured-on-listbulb-dark.svg” is 720px wide, displayed at 96px

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

Landmark regions

structure:landmark-regions

No <main> or <header> landmark. screen-reader users cannot jump between regions.

FixWrap the page in <header>, <main> and <footer> (or matching ARIA roles).

Tap-target size (mobile)

mobile:tap-target-size-mobile

110 of 131 interactive targets are under 44×44px on mobile.

smallest: “✕” at 20×22px

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

Worth knowing5

Line length

26 paragraphs run past ~95 characters per line.

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

type:line-length
Form labels

1 form field relies on placeholder text as the only label.

FixBack placeholders with a real <label>. placeholder text vanishes on input.

a11y:form-labels
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
Render-blocking resources

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

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

weight:render-blocking-resources

Not measurable1

Page weight

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

weight:page-weight

Clear5

Text contrast (WCAG AA) · Mobile viewport · Language declared · Image alt text · Inline validation

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 %
primary#39aaaa
accent#39aaaa
bg#05070a
surface#05070a
text#98a3b3
See the roles applied
accent

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

the roles, doing their job
The quick brown fox40px
Jumps over the lazy dog38px
A subheading in their voice20px

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
18pxAa
19pxAa
20pxAa
38pxAa
40pxAa
WEIGHTS
Aa400
Aa500
Aa600
Aa700
Aa800
FAMILIES
Fraunces · -apple-system
rendered in their own type system · webfont not loaded. system fallback if uninstalled

Measured, found none

2 of 10 layers

layers we ran on this funnel that came back empty

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

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