Read the PLAYBOOK first. It tells you what we do. This tells you what "done right" means.
Every rule below came from real client work going wrong. Somebody shipped it, a client caught it, and we wrote it down. There are ~90 of these in companies/landersrx/policies/. You don't need to memorize them. You need the nine ideas they add up to, plus the habit of checking before you ship.
One framing makes all of it click: the page is the second half of the ad, and everything on it is a promise. Most of these rules exist because somebody made a promise the product, the cart, or the law couldn't keep.
1. Know what the page is for before you design a pixel
The page archetype is a strategic decision, not a layout preference. Get it wrong and the whole thing gets rebuilt.
- Confirm bridge vs shoppable before designing. A bridge page tells a story and sends people onward. A shoppable page is add-to-cart first. Write the answer in STATUS.md. (landersrx-bridge-vs-shoppable-page-purpose) We built Nimi's 4th of July page collection-style when the client wanted a bridge. Full rework.
- Advertorials are editorial articles. Masthead, byline, read time, real prose, mechanism visual, product as an editorial callout. Never stars, hero CTA, buy box, UGC grid. (landersrx-advertorial-editorial-article-not-dr-lander) An advertorial that reads like an ad stops working as an advertorial.
- Story-led pages sell first. Advertorial, listicle, problem-solution: buy box stays below the fold. Sale and promo pages do the opposite. (landersrx-mobile-dr-page-qa)
- Start from a template, not from scratch. The Lander — Website Inspiration Templates Figma file has fill-in flows for listicles and sales pages, with reference captures beside them. Pick the flow, then fill it in. The same flows live in the page-building skill. Brad's walkthrough: Using Figma Templates for High-Converting Pages.
- When no page type fits, build direct. Don't jam a page into 5RW / 10RW / comparison / quiz to use the template. Read the skill anyway, honor its rules, and say the structural checks were skipped. (landersrx-build-direct-when-page-type-mismatch)
- Adapting a winner: steal the argument, not the design. Mirror its message order, give it our house layout. (landersrx-adapt-source-page-distinct-house-layout)
- One job per section. Two reviews blocks, or a "what we refuse" section restating the comparison table, is padding. Cut it. (landersrx-no-redundant-duplicate-sections)
- Every featured product supports the premise. A "clean ingredients" page doesn't sell retinol, even if retinol is the bestseller. (landersrx-no-products-clashing-with-page-premise)
- Lead-gen pages need an ownable, named mechanism. Men's Wellness got "the read-back": every number on your panel explained to your face the same hour your blood is drawn. Without one, a competitor runs your page unchanged and it converts identically for them. (landersrx-lead-gen-ownable-named-mechanism)
2. Copy that earns the scroll
Every word has to earn its spot, and the headline has to have an opinion.
- The headline takes a position. Name the specific problem this product uniquely solves for this audience, in as few words as possible. "It brightens" isn't a position, because anyone can say it. (landersrx-headline-rules) A generic benefit gives nobody a reason to scroll.
- If the body counts 01 to N, the headline says N. "7 Reasons Why..." goes in the headline nine times out of ten. (landersrx-headline-rules) The number is the breadcrumb trail.
- No decorative eyebrows or kickers. "The Shift" stacked above the real H2 adds nothing. (landersrx-headline-rules)
- No em dashes in client-facing copy. Body, headlines, ad text, buy-box microcopy, quote attributions. Use a period, comma, colon, or parens. (landersrx-no-em-dashes-client-copy) It's the loudest AI tell we have, and on a DR page that's a credibility leak.
- The CTA label must be true to what the button does. "Add to Cart" only if it adds to cart. "Shop Now" for a click-through. A button that only scrolls can't promise it's carrying your answers with it. (landersrx-cta-label-semantics)
- Subscriptions are "Save X% With Auto Ship", default-selected, live re-pricing. Never "Subscribe & Save". (landersrx-autoship-naming-shoppable-offer)
- On a free-offer page, answer "why is it free" out loud. Say why it costs nothing, promise no checkout on the way out, admit some people leave having bought nothing. (landersrx-free-offer-explain-why-free) The free offer itself creates the objection.
- Ingredient and exclusion content goes in a T-chart plus a "we ban N ingredients" count band. Nobody reads the list. The count carries the message. (landersrx-ingredient-exclusion-tchart-pattern)
- Comparison charts: our product first, competitors right, every column named. (landersrx-comparison-chart-our-product-first)
3. Claims: everything traces to a source
The live page is the ceiling for what an ad can claim. The client's own site is the ceiling for what the page can claim. Never invent a fact to fill a gap.
- Never fabricate a number or fact. Especially in a comparison table, which reads as a table of facts. "A generalist managing forty conditions" and "twelve minutes, billed to insurance" both shipped in a first draft and traced to nothing. (landersrx-healthcare-dr-copy-compliance)
- Verify certifications against the client's own site. "Our own CLIA-certified lab, in the building" is not the same as "on-site labs" plus a CLIA badge. Ship the provable version, log the stronger claim as a client question. (landersrx-verify-certification-claims-against-client-site)
- Ad claims come from the current built page, never planning docs or STATUS history. Claims get cut from pages for compliance and survive in the planning trail. If it's not on the page, it's not in the ad. (landersrx-ad-claims-from-built-page-not-planning-docs)
- Our own 58% case study: never say "no new budget." Spend scaled ~78%. The true claims: no new creative, no new offers, ad spend scaled while ROAS held, zero new ads launched. Never "didn't touch a single ad." The column is "Ads launched," not "Ads edited." (landersrx-case-study-no-new-budget-claim-false)
- Verify offer math before promising a free gift. A stacking discount code can pull the cart under the threshold and the checkout denies the gift at the highest-intent moment. Confirm pre- vs post-discount with the client. (landersrx-no-threshold-gift-claims)
- Never sell the free-gift product as also purchasable on the same page. (landersrx-free-gift-not-also-purchasable)
- Get names and SKUs right from the live store. Nimi's "$115 Candace Bundle" is actually the Homestead Tallow Bundle. Prolon's 5-Day is never just "Prolon." (landersrx-nimi-candace-bundle-sku-naming, landersrx-prolon-5day-naming)
Regulated verticals raise the bar
- No diagnostic assertion. Never tell a reader he's medically unwell before an evaluation. "You were not fine" becomes "What if you weren't?" Same punch, no claim. (landersrx-healthcare-dr-copy-compliance)
- No competitor disparagement implying improper conduct. Accusing online TRT services of loose prescribing invites regulators into the client's own vertical. (same)
- Cosmetic products make cosmetic claims. Nimi peptides: "hydration now, peptide support over time." No "stimulates collagen production," no "reverses aging," no "Botox alternative." (landersrx-nimi-peptides-positioning)
- Illustrative results imagery gets labeled a mockup in the client-facing annotation, with the replacement requirement stated. (landersrx-fabricated-results-visual-flag-as-mockup)
4. Proof has to be real
Proof is the one thing you can't design your way around. Go get the real numbers.
- Scrape the live PDP for real review counts and verbatim quotes before writing any social proof. Cite the strongest defensible figure. Skip social proof entirely on weak counts. The Sunshine Bundle had 8 reviews; its hero product had 148. (landersrx-real-social-proof)
- Mine reviews for what people actually praise. Men's Wellness patients barely mention testosterone. They name Ryan in finance and Melissa at the front desk. Named humans are the one asset a national telehealth competitor can't copy. Attribute quotes to the real person, not generically to "Google." (landersrx-mine-reviews-for-named-humans)
- Real screenshots on-site, CSS rebuilds in ads. On the page, use the actual dashboard screenshot and label it with a CSS badge. In a 1080px static, rebuild it in CSS (crisper, no URL leak). (landersrx-dashboard-screenshots-as-css) Believability beats crispness when the visual is the proof.
- Inspect the client's badge assets before placing them. Men's Wellness's HIPAA badge misspells "Portability." Their CLIA badge is pale line art that vanishes next to a solid LegitScript hexagon. Recolor for equal weight. (landersrx-verify-badge-assets-before-placing)
- A live trust widget owns its facts. Delete hand-written copy repeating its counts or vendor name. Two sources drift apart. (landersrx-live-trust-widget-single-source)
- Live-site presence isn't proof of currency. The Nimi Promise section was ported verbatim from their live page and carried their old logos. Confirm anything you port. (landersrx-verify-ported-live-site-sections-current)
5. Imagery and photography
Never crop a person's head. It's the most-repeated client complaint we have.
- Never crop a model's head or forehead out of any photo. Hero, reason sections, lifestyle, trust portraits. Top-anchor the crop at every breakpoint, and verify on the deployed preview URL, not the local file. (landersrx-never-crop-model-heads) Peter at Nimi has asked for this by name across multiple rounds.
- Reason and listicle media are photographs, not CSS graphic cards. No HTML timelines, icon grids, big-number cards. The photo fits the height of its text column and is descriptive of the claim, not decorative. (landersrx-reason-media-photos-not-graphics)
- Zoom-QA every generated image with fresh eyes. Count fingers, look for melted objects and phantom text. An image that fails at zoom fails the page. (same)
- Never AI-composite real branded packshots. The model redraws labels and invents products. Composite the genuine assets deterministically. (landersrx-packshot-compositing)
- No clean asset? Use a labeled placeholder box, not a rough cutout composite. A tidy "[X] photo coming" box reads honest. Overlapping white-background cutouts read broken. (landersrx-placeholder-box-for-missing-imagery)
- A horizontal product lineup can't be cropped to vertical 4:5. You'll clip the end products. Get a real 4:5 composition. (landersrx-horizontal-lineup-cannot-crop-to-4x5) Client CDN images often ship with baked-in white padding too: trim it before it goes in a bordered frame. (landersrx-trim-baked-in-white-padding)
6. Design system fidelity, and the AI tells
Build from the client's approved system. Novelty in the visual language reads as off-brand and forces rework.
- Start from the client's approved sibling pages, never a new visual language. A "fresh" page is a re-composition of approved components and tokens, not a new brand look. Two Nimi mockup rounds were rejected for inventing display type, accent colors, dark panels, and magazine scrims. (landersrx-build-from-approved-design-system-not-new-visual-language, landersrx-reuse-sibling-page-components)
- No vertical accent-bar blockquotes.
border-left: 3px solid {accent} on a quote is a dead AI giveaway. Plain italic quote, small-caps attribution. (landersrx-no-accent-bar-blockquotes)
- No pill or chip badges for non-clickable proof items. Rounded outlined chips read as buttons. Use a borderless small-caps line with a leading dot per item. (landersrx-no-pill-badges-for-proof-items)
- No accent left-bar or top-bar cards anywhere, including internal artifacts. Full 2px ink border instead. (landersrx-internal-artifacts-default-branding)
- Don't cap centered headings so narrow they wrap into skinny towers. Roughly 24 to 40ch for a display serif. Check a real desktop render. (landersrx-fill-heading-width-on-desktop)
- Hold every section to one consistent width. Mismatched widths and a card floated at the screen edge read as unbalanced. (landersrx-content-page-single-centered-container-consistent-width)
7. Mobile is the deliverable
Most DR traffic is mobile. The mobile view is the primary deliverable, not a check at the end.
Full list in landersrx-mobile-dr-page-qa (15 rules). The ones that get flagged:
- Headline above the image. Always. When a two-column section stacks, the order is headline, image, body, CTA. Never image-first. The headline earns the scroll. (rule 10)
- Carousels must feel like carousels. Finger-scrollable, a peek of the next card, position dots. Stacked cards read as lazy. This includes reviews. (rules 2, 13)
- Section images match the text-column width, not the viewport. Full-bleed reason images run wider than the copy and read as broken. (rule 7)
- Comparison charts stay charts. Shrink type, shorten labels, swap long cells for icons. Don't restack into per-row cards: the columns are the argument. (rule 12)
- Interactive toggles must actually work. A subscribe/one-time selector that doesn't re-price live is a defect, not a mockup. (rule 8)
- Buy boxes are standardized: struck-through original, prominent sale price, explicit "Save $X." Same on every card. (rule 6)
- No orphan words. A CTA reassure strip fits on one line at 375px. (rule 15)
8. What the client actually sees
Clients approve what's in front of them. If they never saw it, they never approved it.
- Every Figma push is a desktop AND mobile frame pair, side by side, labeled. Desktop-only is what made fully-approved pages feel "completely different" once the mobile build arrived. The page was never different. The client had just never seen it. (landersrx-figma-push-capture-flow)
- After a push, check the landed frames, not just the live page. The capture ignores
object-fit and center-crops every image, so heads get cut in the exact artifact the client reviews. Fix inline. (same)
- Client deliverables read as strategy, not plumbing. No UTM or link-tracking mechanics in briefs and roadmaps. (landersrx-no-tracking-mechanics-in-client-deliverables)
- Presenter notes are facts, numbers, and asks. No scripts, no "here's your one-liner." Brad presents in his own voice. (landersrx-presenter-deliverables-plain-notes)
- The commentary layer of a pitch deliverable is always LandersRX branding (ink, yellow, boxy, mono). Client colors live only inside "The Page" tab. (landersrx-deliverable-landersrx-branded-commentary)
- Label unadopted strategy docs as brainstorms in the filename, title, frontmatter, and header chip. (landersrx-label-ai-brainstorms-clearly)
- Free spec designs assume no ad-account access. Don't hunt for Motion data. Build from Brad's brief, the brand kit, and the customer-intelligence file. (landersrx-free-design-no-ad-account)
9. Delivery, QA, and where things live
You can't grade your own homework. Get cold eyes on the page before the client does.
- Run the evaluator as fresh cold-eyes subagents that haven't seen the build reasoning, split three ways: claims/compliance, objection/differentiation/audience, structure/line-check/personas. On the Men's Wellness lander, blind auditors caught four fabricated facts and a missing mechanism the builder couldn't see. (landersrx-evaluator-fresh-cold-eyes-subagents)
- Pre-delivery sweep: strip every em dash, strip every Figma capture script. Shared-link builds use
capture: false rather than trusting a post-hoc strip. (landersrx-lander-delivery-checks)
- Use one stable preview slug per page, forever. The URL is a hash of the slug, so a slightly different slug mints a new URL and the link you already sent the client keeps serving the stale page. (landersrx-preview-republish-same-hash) Bust the cache when verifying, or you'll confirm changes that never went live. (landersrx-preview-verify-cache-bust)
- Search the vault before saying "we don't have it." Local-empty is not vault-empty. Most people sync in shared mode, so a file missing from your laptop is usually just a file nobody granted you.
hq files browse work/clients/<client>/ --company landersrx. (landersrx-vault-first-file-access, portable-paths-hq-is-source-of-truth)
- When client feedback arrives, capture the learnings. Client-specific goes in that client's brand kit. General craft becomes a policy. Do it as part of the feedback pass, not later. (landersrx-client-feedback-learnings-capture)
Three guardrails worth knowing exist, even though you probably won't touch them directly: LandersRX artifacts deploy to Cloudflare Pages from the single HQ preview-tool copy, never HQ deploy (landersrx-deploy-target-cloudflare-pages, landersrx-preview-deploy-source). ClickUp work goes through the REST API scoped to the LandersRX team, never the ClickUp MCP, which points at a different company entirely (landersrx-clickup-mcp-offlimits-rest-api-only). And leadership content (comp, financials, exit planning) lives only in work/leadership/, because everything else under work/ is readable by the whole company (landersrx-leadership-content-restricted-folder).
The 10 that will get you in trouble fastest
Ranked by how likely you are to do it in your first month.
- Em dashes in client copy. Every AI draft is full of them. You'll paste one in on day one. Grep before you ship. (landersrx-no-em-dashes-client-copy)
- A claim that traces to nothing. A stat you needed to fill a table cell. If you can't point at the source, it doesn't ship. (landersrx-healthcare-dr-copy-compliance, landersrx-verify-certification-claims-against-client-site)
- Designing before confirming bridge vs shoppable. This one costs a full rework, not an edit. (landersrx-bridge-vs-shoppable-page-purpose)
- A cropped head. It will happen in the Figma frame even when the live page is right, because the capture ignores
object-fit. Check the frame. (landersrx-never-crop-model-heads)
- Pushing desktop-only to Figma. Feels complete. Guarantees a "this looks completely different" reaction later. (landersrx-figma-push-capture-flow)
- Social proof numbers you didn't verify on the live PDP. (landersrx-real-social-proof)
- A headline with no position and no number. The most common weak-page failure. (landersrx-headline-rules)
- AI-tell chrome: accent bars, pill badges, top-bar cards. Brad spots these on sight. (landersrx-no-accent-bar-blockquotes, landersrx-no-pill-badges-for-proof-items)
- Grading your own page. You'll defend your own choices. Get blind eyes on it. (landersrx-evaluator-fresh-cold-eyes-subagents)
- Re-sending a preview link that still serves the old page, or telling someone a file "isn't in HQ" when you only checked your laptop. (landersrx-preview-republish-same-hash, landersrx-vault-first-file-access)
Self-check before you ship anything to a client
- Page purpose (bridge vs shoppable) confirmed and written in STATUS.md.
- Headline takes a position, and carries the count if the body is numbered.
- Zero em dashes. Grep it.
- Every stat, certification, and claim traces to the client's site, their PDP, or a named source.
- Review counts and quotes are real, pulled from the live PDP.
- Every product named on the page supports the page's premise.
- Every CTA label is true to what the button actually does.
- Every person's full head, hairline included, is in frame. Desktop and mobile. On the deployed URL.
- Mobile: headline above image, carousels swipe, comparison chart still a chart, toggles re-price live.
- No two sections do the same job.
- No accent bars, no pill badges, no
<mark> highlights in headlines.
- Figma capture script stripped, or built with
capture: false.
- Figma push landed a desktop AND mobile frame, and you looked at both.
- Cold-eyes evaluator has run and its findings are addressed.
- Preview redeployed under its stable slug, cache-busted, and you opened the live link yourself.