Repository navigation
feat(marketing): pricing page and copy improvements - #6355
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughPricing content now reflects updated Free, Pro, and Enterprise features. Pricing cards support CTA notes. The comparison table includes tier prices and revised borders. The pricing page adds trust logos and FAQ structured data. FAQs and software metadata were updated. ChangesPricing marketing updates
Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 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.
No issues found across 3 files
You’re at about 90% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
Architecture diagram
sequenceDiagram
participant SC as Search Engine
participant M as Marketing Site
participant P as Pricing Page
participant F as Features Page
participant MC as constants.ts
participant DL as Download Page
participant WS as Waitlist
participant PC as Paywall Component
Note over SC,M: SEO metadata flow
SC->>M: Crawl / (homepage)
M->>MC: Read Company metadata
MC-->>M: operatingSystem: "macOS"
M-->>SC: JSON-LD with macOS only
Note over P,MC: Pricing page content
P->>MC: Read PRICING_TIERS
MC-->>P: Free tier features
Note over P: Feature list includes "CLI"
P-->>P: Render Free tier CTA
Note over F,MC: Features section content
F->>MC: Read FEATURES array
MC-->>F: Remote Workspaces card
Note over F: Card shows neutral plan copy
F-->>F: Render card without plan claim
Note over DL,WS: Download flow (context)
DL->>DL: User requests macOS download
alt Mac user
DL-->>DL: Show download link
else Windows/Linux user
DL->>WS: Redirect to waitlist
WS-->>DL: Waitlist signup form
end
Note over PC: User clicks Remote Workspaces
PC->>PC: Check plan tier
alt Pro+ user
PC-->>PC: Allow remote workspace
else Free user
PC-->>PC: Show upgrade dialog
end
🚀 Preview Deployment🔗 Preview Links
Preview updates automatically with new commits |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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.
Inline comments:
In `@apps/marketing/src/app/components/FeaturesSection/constants.ts`:
- Line 42: Restore the “on every plan” phrase in the Remote Workspaces
description constant used by FeaturesSection.tsx, preserving the rest of the
existing copy and homepage claim.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: ba381b94-38e5-446a-9e9c-e9e7a589f251
📒 Files selected for processing (1)
apps/marketing/src/app/components/FeaturesSection/constants.ts
| title: "Run workspaces anywhere", | ||
| description: | ||
| "Add any machine as a host, on every plan. Workspaces keep running when your laptop sleeps, and you can check in from wherever you are.", | ||
| "Add any machine as a host. Workspaces keep running when your laptop sleeps, and you can check in from wherever you are.", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Restore the homepage claim that Remote Workspaces are available on every plan.
Line 42 removes on every plan. FeaturesSection.tsx renders this description directly, so the homepage no longer contains the claim required by the PR objective. Restore the phrase, or update the objective if the product requirement changed.
🤖 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 `@apps/marketing/src/app/components/FeaturesSection/constants.ts` at line 42,
Restore the “on every plan” phrase in the Remote Workspaces description constant
used by FeaturesSection.tsx, preserving the rest of the existing copy and
homepage claim.
There was a problem hiding this comment.
2 issues found across 6 files (changes from recent commits).
You’re at about 91% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/marketing/src/app/pricing/components/TrustStrip/TrustStrip.tsx">
<violation number="1" location="apps/marketing/src/app/pricing/components/TrustStrip/TrustStrip.tsx:32">
P3: New TrustStrip largely duplicates the existing TrustedBySection logo-wall component and its logo config, only with a subset of the same logos and heading. Reuse TrustedBySection (or extract shared logo data) so the logo list lives in one place and stays consistent as logos change.</violation>
</file>
<file name="apps/marketing/src/app/pricing/components/ComparisonTable/ComparisonTable.tsx">
<violation number="1" location="apps/marketing/src/app/pricing/components/ComparisonTable/ComparisonTable.tsx:71">
P2: The comparison table shows the yearly Pro price even after the pricing cards are switched to monthly billing, leaving two conflicting prices on the same page. Passing the selected billing cadence into `ComparisonTable` (or removing the cadence-dependent header price) would keep the table synchronized with the cards.</violation>
</file>
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
| return tier.price.display; | ||
| } | ||
| if (tier.price.kind === "variable") { | ||
| return `${tier.price.yearly.display}/user/mo`; |
There was a problem hiding this comment.
P2: The comparison table shows the yearly Pro price even after the pricing cards are switched to monthly billing, leaving two conflicting prices on the same page. Passing the selected billing cadence into ComparisonTable (or removing the cadence-dependent header price) would keep the table synchronized with the cards.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/marketing/src/app/pricing/components/ComparisonTable/ComparisonTable.tsx, line 71:
<comment>The comparison table shows the yearly Pro price even after the pricing cards are switched to monthly billing, leaving two conflicting prices on the same page. Passing the selected billing cadence into `ComparisonTable` (or removing the cadence-dependent header price) would keep the table synchronized with the cards.</comment>
<file context>
@@ -60,6 +63,16 @@ function DesktopTable() {
+ return tier.price.display;
+ }
+ if (tier.price.kind === "variable") {
+ return `${tier.price.yearly.display}/user/mo`;
+ }
+ return "Custom";
</file context>
| { name: "amazon", label: "Amazon", logo: "/logos/amazon.png", height: 20 }, | ||
| ]; | ||
|
|
||
| export function TrustStrip() { |
There was a problem hiding this comment.
P3: New TrustStrip largely duplicates the existing TrustedBySection logo-wall component and its logo config, only with a subset of the same logos and heading. Reuse TrustedBySection (or extract shared logo data) so the logo list lives in one place and stays consistent as logos change.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/marketing/src/app/pricing/components/TrustStrip/TrustStrip.tsx, line 32:
<comment>New TrustStrip largely duplicates the existing TrustedBySection logo-wall component and its logo config, only with a subset of the same logos and heading. Reuse TrustedBySection (or extract shared logo data) so the logo list lives in one place and stays consistent as logos change.</comment>
<file context>
@@ -0,0 +1,52 @@
+ { name: "amazon", label: "Amazon", logo: "/logos/amazon.png", height: 20 },
+];
+
+export function TrustStrip() {
+ return (
+ <div className="flex flex-col items-center gap-6">
</file context>
Summary
Testing
bun run typecheck+bun run lintclean