Jim Bramlett

An executive coach's site selling a ten-module leadership programme to business owners and managers, alongside his book and free self-scoring diagnostic tools.

jimbramlett.com/courses
Jim Bramlett: The ten-module syllabus

What they came with

One person sells several different things here. There is a ten-module programme with three ways in, a book, a discovery call and a set of free diagnostics, and each arrives from a different kind of visitor. A single enquiry form cannot tell them apart. The programme itself has ten modules that each have to argue their own case before anyone commits to the set. And the diagnostics that qualify a lead are not brochure pages; they are instruments that must produce a result the visitor believes in.

What the build had to do

A syllabus that argues module by module

Each of the ten modules carries the same three-part structure: the pain, the fix, the outcome. Holding that shape across every card, on the home page and again on the course page, makes the module the unit of content rather than the page layout, and lets the modules be grouped into phases without rewriting them.

Three ways into one programme

The course is sold as a free first module, as the full set of ten, and as a discovery call for anyone who cannot choose. The enrolment page has to keep those offers distinct without letting the free one read as the whole product.

Diagnostics as first-class pages

A growth audit and two quizzes each run as their own multi-step interface rather than a form dropped onto a marketing page. The audit asks for an email before scoring begins, so an address is captured whether or not the visitor reaches the end.

A podcast type, not a blog

Interviews live in a registered `podcast` post type with its own archive and a `podcast_category` taxonomy. That lets one appearance carry a permalink of its own while the same records are pulled onto the about page.

Lead capture split across two systems

Enrolment and the newsletter run on a HighLevel funnel at a separate subdomain, the book checkout goes to Stripe and the discovery call to Calendly, while site enquiries stay in Contact Form 7 on WordPress. Every call to action has to route to the right one, and the set has to read as a single site.

Technical detail

Scoring runs in the browser, results post twice

The competitor audit totals each criterion group in jQuery and normalises it with `Math.round((total / count) * 100)`, skipping the total and score rows so they cannot feed themselves. Those values are written into hidden fields on a Contact Form 7 form and posted with `fetch(formElement.action, ...)`, while jsPDF and AutoTable build the report client-side from the same numbers, chaining `doc.lastAutoTable.finalY` so tables flow down the page.

HTML cached at the edge

Pages return a long public `cache-control` max-age with `cf-cache-status: HIT`, sitting over an origin page cache that reports its own hit and miss state in `x-gateway-cache-status`. That puts the whole document out of reach of per-visitor logic, so form posts, quiz state and enrolment all have to live on paths that bypass the cached page rather than inside it.

Scroll reveals against a split stylesheet

Almost every block on the home page carries an AOS trigger with a staggered delay, and the responsive rules sit in `responsiveness.css`, separate from the base `styles.css`. Elements that animate in have to hold their space while still hidden, or the stagger plays against a page that is still settling.

The stack

Platform

WordPressCustom themeElementorContact Form 7

Front end

BootstrapjQueryAOSSlick CarouselBootstrap Icons

Tools and output

jsPDFjsPDF AutoTable

Delivery and capture

CloudflareHighLevelCalendlyStripe Checkout
Sector
Executive leadership education
Audience
Owners, executives, managers
Shape
Marketing site plus assessment tools
Platform
WordPress, custom theme
Jim Bramlett on a phone
jimbramlett.com
Jim Bramlett: Home hero
jimbramlett.com/assessment
Jim Bramlett: The diagnostic tools