[abcd-themed] Clean A/B/C/D in themed impeccable design; live test B vs D - #22
Conversation
… B vs D Consolidates the landing to four copies, each in impeccable's craft re-skinned onto Knowcap's 4-theme system (the /bt look), theme switcher in the nav: /a Version A (control/mechanism) tracks 'a' — review only /b Version B (outcome + Odoo demo) tracks 'b' — LIVE rotation /c Version C (role-first) tracks 'c' — review only /d Version D (show-the-magic) tracks 'd' — LIVE rotation - New ThemedShell wraps all four (chrome + theme plumbing + constant body sections) so they can't drift; each variant supplies only hero + signature. - middleware: / random-rotates b vs d only; copy is the only variable; theme defaults to baseline, visitor switches via nav. Stale a/c/e/bi/di cookies fall through the guard and get reassigned. - Removes the brass experiment (/bi /di /e), the /bt proof route, and the cream component chain (sections/shared, hero-section-general, etc.). - ruvector.db gitignored. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 50 minutes and 22 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThis PR consolidates a fragmented landing page variant architecture into a unified ChangesLanding Page Architecture Consolidation
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
app/components/version-a.tsx (1)
23-26: ⚖️ Poor tradeoffOptional: extract the shared doc-id + exhibit blocks.
The doc-id chip (lines 23–26) and the exhibit
motion.figurescaffold (lines 46–60) are duplicated verbatim acrossversion-a/b/c/d(only the imagesrc/altdiffer). Consider hoisting a smallHeroExhibit/DocIdhelper intokit.tsxso copy stays the only per-variant variable. Applies to the sibling files too.Also applies to: 46-60
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/components/version-a.tsx` around lines 23 - 26, Extract the duplicated doc-id chip and exhibit scaffold into reusable components (e.g., DocId and HeroExhibit) in kit.tsx and use them from version-a/b/c/d; specifically, move the JSX that renders the motion.div with className "ve-docid" (including Tick and the ve-mono span) into a DocId component and move the motion.figure scaffold (the exhibit wrapper used in lines that vary only by image src/alt) into a HeroExhibit component that accepts props for image src and alt; then replace the inline copies in version-a.tsx (and siblings) with <DocId /> and <HeroExhibit src={...} alt={...} /> to keep per-variant files focused only on the differing image values.app/components/impeccable/themed-shell.tsx (1)
66-66: ⚡ Quick winConsider using explicit types instead of
any.The
themeandonThemeChangeparameters useanytypes, which bypasses TypeScript's type checking. Since bothThemeSwitcheranduseThemeColorsare imported from@/components/theme-switcher, their proper types should be available for import and use here.📘 Example type improvement
+import ThemeSwitcher, { useThemeColors, type Theme } from '`@/components/theme-switcher`' ... -function ThemedHeader({ theme, onThemeChange }: { theme: any; onThemeChange: (k: any) => void }) { +function ThemedHeader({ theme, onThemeChange }: { theme: Theme; onThemeChange: (theme: Theme) => void }) {Note: Adjust based on the actual exported type name from
theme-switcher.tsx.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/components/impeccable/themed-shell.tsx` at line 66, Replace the use of `any` in ThemedHeader by importing and using the concrete types exported from "`@/components/theme-switcher`": import the theme type (e.g., Theme or ThemeType) and the handler type (e.g., ThemeChangeHandler or a typed callback) from that module, then change the signature of function ThemedHeader to use those types (for example: function ThemedHeader({ theme, onThemeChange }: { theme: Theme; onThemeChange: ThemeChangeHandler }) or onThemeChange: (k: Theme) => void), removing `any` and ensuring the types match the actual exported names from ThemeSwitcher/useThemeColors.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@app/components/impeccable/themed-shell.tsx`:
- Line 66: Replace the use of `any` in ThemedHeader by importing and using the
concrete types exported from "`@/components/theme-switcher`": import the theme
type (e.g., Theme or ThemeType) and the handler type (e.g., ThemeChangeHandler
or a typed callback) from that module, then change the signature of function
ThemedHeader to use those types (for example: function ThemedHeader({ theme,
onThemeChange }: { theme: Theme; onThemeChange: ThemeChangeHandler }) or
onThemeChange: (k: Theme) => void), removing `any` and ensuring the types match
the actual exported names from ThemeSwitcher/useThemeColors.
In `@app/components/version-a.tsx`:
- Around line 23-26: Extract the duplicated doc-id chip and exhibit scaffold
into reusable components (e.g., DocId and HeroExhibit) in kit.tsx and use them
from version-a/b/c/d; specifically, move the JSX that renders the motion.div
with className "ve-docid" (including Tick and the ve-mono span) into a DocId
component and move the motion.figure scaffold (the exhibit wrapper used in lines
that vary only by image src/alt) into a HeroExhibit component that accepts props
for image src and alt; then replace the inline copies in version-a.tsx (and
siblings) with <DocId /> and <HeroExhibit src={...} alt={...} /> to keep
per-variant files focused only on the differing image values.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: a03ad4e1-d3ee-42b1-ad11-c3f68bf921da
📒 Files selected for processing (26)
app/.gitignoreapp/app/a/page.tsxapp/app/bi/page.tsxapp/app/bt/page.tsxapp/app/di/page.tsxapp/app/e/page.tsxapp/components/beta-testimonials-section.tsxapp/components/beyond-obvious-section.tsxapp/components/faq-section.tsxapp/components/features-context-section.tsxapp/components/floating-cta.tsxapp/components/hero-section-general.tsxapp/components/how-it-works-section.tsxapp/components/impeccable/themed-shell.tsxapp/components/personal-note-section-general.tsxapp/components/roi-section.tsxapp/components/sections/shared.tsxapp/components/trust-section.tsxapp/components/version-a.tsxapp/components/version-b.tsxapp/components/version-bt.tsxapp/components/version-c.tsxapp/components/version-d.tsxapp/components/version-di.tsxapp/components/version-e.tsxapp/middleware.ts
💤 Files with no reviewable changes (18)
- app/components/trust-section.tsx
- app/components/how-it-works-section.tsx
- app/components/features-context-section.tsx
- app/app/bt/page.tsx
- app/components/beyond-obvious-section.tsx
- app/components/faq-section.tsx
- app/components/personal-note-section-general.tsx
- app/components/version-di.tsx
- app/app/bi/page.tsx
- app/components/hero-section-general.tsx
- app/components/version-bt.tsx
- app/app/di/page.tsx
- app/app/e/page.tsx
- app/components/roi-section.tsx
- app/components/floating-cta.tsx
- app/components/beta-testimonials-section.tsx
- app/components/version-e.tsx
- app/components/sections/shared.tsx
The route pages still held the old cream content importing the deleted
sections/shared (build failed: module not found). Point /b /c /d and the root
fallback at the new themed version-{b,c,d} components. Also fix a stale
/bi /di reference in kit.tsx's header comment.
What
Consolidates the landing to four clean copies, all in the themed impeccable design (impeccable's craft on Knowcap's 4-theme system — the look you picked from
/bt), with the theme switcher in the nav./aa/bb/cc/ddHomepage
/random-rotates b vs d only → copy is the only variable. Theme defaults to baseline; visitor can switch via the nav dots.How
ThemedShellwraps all four (chrome + theme plumbing + constant body sections: Process → Results → Security → FAQ → Close) so the pages can't drift. Eachversion-{a,b,c,d}.tsxsupplies only its hero + signature section.kit.tsxcraft (spacing/scale/layouts) verbatim; re-skins via--t-*theme vars fromtheme-switcher.tsx.Removed (clutter cleanup)
/bi/di/e+version-bi/di/e.tsx/btproof route +version-bt.tsxsections/shared.tsx,hero-section-general,features-context-section,how-it-works-section,roi-section,beta-testimonials-section,beyond-obvious-section,trust-section,faq-section,personal-note-section-general,floating-ctaruvector.dbgitignored31 files: 7 added, 20 deleted, 4 modified. 0 dangling imports.
Test plan
/rotates b↔d (~50/50), URL stays/, sticky per visitor./a/b/c/dall render the themed impeccable design; theme dots switch all 4 themes./bi/di/e/btnow 404 (removed).🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Refactor