JK Fit v2 — ranked findings

Preview: https://preview.james-king-fit.pages.dev · testimonials page also checked

Bottom line up front

Don't scrap it. v2 direction is correct. Anti-funnel aesthetic works, copy is James's own voice, Fraunces serif lands as editorial not "wellness brand," palette is warm and legible. BUT there's one P0 visual defect that makes the whole site read as "something's off" on close inspection, plus a bricked contact path (mailto) that costs leads. Fix those two, ship.

P0 — SHIP-BLOCKER

1. The transformation photo is being CSS-stretched, not naturally portrait.
You flagged it as "very tall (portrait)" but the source image james-transformation.jpg is a square 2048×2048. CSS is forcing it to 445.7×1024 (aspect 0.43 tall) with object-fit: fill. That stretches the image vertically — James is literally taller and thinner in the rendered "after" than reality. For a before/after photo this isn't a style issue, it's a misleading visual — makes the transformation look more dramatic than it is. Ethically sketchy plus visually uncanny on close inspection.

Fix options:
img[src*=transformation] {
  object-fit: cover;          /* was: fill — this is the bug */
  object-position: center;
  /* height: 1024px; <- reconsider; let aspect-ratio drive */
}

P1 — HIGH (fix before ship)

2. Contact form is action="mailto:" — bricks a lot of leads.
Form POSTs to mailto:james@jameskingiiifit.com with encType="text/plain". Problems: Every form submission that fails = a lost lead for a trainer selling 60-min sessions. Real money. Fix (20 min, Wes's CF stack):
Cloudflare Pages Function (functions/contact.ts) that accepts POST, validates, and ships via MailChannels API (free on CF Workers/Pages) or Resend. Form action="/api/contact", gracefully degrades to mailto: for no-JS users. Basin or Formspree work too but CF-native is cleaner.
3. Hero image is ~7× too big.
james-hero.jpg natural 3500×2333 (8.2 megapixels). Rendered at 471×733. Served as-is to mobile = ~2-3 MB over a cell network for an above-the-fold image. Hurts LCP (Core Web Vitals) and costs James's prospects on slow connections.
Fix: resize to 1400×933 (fits Retina at rendered size) and add srcset with 700/1000/1400 variants. 10-min job. Same for transformation photo once P0 is handled.
4. Services card heading repetition.
All three cards repeat "+ Nutrition/Lifestyle Coaching" in the headline (rendered as "·"). The intro paragraph directly above already says "Every option includes an initial lifestyle assessment, weekly review and troubleshooting, a client app to track progress and habits, nutrition and lifestyle coaching..."
Redundant suffix. Trim to: "In-Home Training", "Private Virtual Training", "Semi-Private Virtual Training". Subtitle already shows duration + location, which IS useful. Removing the coaching suffix also lets the headings be heavier/bolder without getting cramped on mobile.

P2 — MEDIUM (polish)

P3 — STYLE & DIAGNOSIS (mostly pass)

Desktop screenshots (1440)

hero

services

voices + contact

testimonials page

Mobile screenshots (iPhone 14, 390×844)

hero

story (transformation photo area)

Punch-list in priority order

P0 (ship-blocker):
  [ ] 1. Unstretch transformation photo: object-fit: cover, drop forced 1024px height

P1 (fix before ship):
  [ ] 2. Replace mailto form with CF Pages Function + MailChannels (or similar)
  [ ] 3. Resize james-hero.jpg to 1400x933 + add srcset
  [ ] 4. Trim "+ Nutrition/Lifestyle Coaching" suffix from all 3 service card headings

P2 (polish):
  [ ] 5. Align H1 wording with service names ("Online Training" vs "Virtual Training")
  [ ] 6. Add 1-line client chip to each testimonials-page entry
  [ ] 7. Set alt text on homepage testimonial avatars
  [ ] 8. "Read more" -> "Read all" / "See every testimonial"

Clippy-Work-1 (Nagatha) · 2026-04-21 · brutal pass per Clippy-Main's ask · no feature-strip anxiety (v2 correctly removed the Hines-Creative funnel apparatus per Wes's direction).