feat(marketing): proof CTAs linking to /proof dashboard per sim24 pricing pushback#55
feat(marketing): proof CTAs linking to /proof dashboard per sim24 pricing pushback#55
Conversation
…24 pricing pushback Add secondary hero CTA (See the 192-trial ablation), link under KPI row on landing, and contextual proof card in how-it-works after the graduation stages. All point to site.proofUrl (app.gradata.ai/proof) so skeptical visitors can reach the live A/B data one click from landing. Co-Authored-By: Gradata <noreply@gradata.ai>
There was a problem hiding this comment.
Gradata has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.
📝 Walkthrough
WalkthroughThe PR introduces proof-of-concept call-to-action elements linking to an A/B test proof page across multiple marketing pages. A new Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested labels
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@marketing/app/how-it-works/page.tsx`:
- Line 106: The user-facing copy in marketing/app/how-it-works/page.tsx contains
the lowercase token "qwen14b"; update that string to the normalized product
casing "Qwen14B" in the sentence "192 trials across Sonnet, DeepSeek, qwen14b,
and Gemma4." and scan the same file for any other occurrences of "qwen14b" to
change them to "Qwen14B" so casing is consistent across the page copy.
In `@marketing/src/components/Hero.tsx`:
- Around line 35-40: Replace the plain anchor in the Hero component with Next.js
client-side navigation: import Link from 'next/link' and swap the <a
href="/how-it-works/"> element for a <Link href="/how-it-works/"> that carries
the same className and text content so the styling and behavior remain; ensure
you remove the raw anchor and let Link handle the navigation (in Next.js 13+ you
can put the className directly on Link).
In `@marketing/src/lib/site.ts`:
- Line 5: Replace the hard-coded proofUrl with a derived value computed from
appUrl so the CTA never drifts; locate the exported constants (appUrl and
proofUrl) in site.ts and set proofUrl by deriving its origin/path from appUrl
(e.g., using URL or string concat) instead of a separate literal, ensuring any
change to appUrl automatically updates proofUrl.
🪄 Autofix (Beta)
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: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 801625f3-dbf8-40ab-b0b4-d6488779649b
📒 Files selected for processing (4)
marketing/app/how-it-works/page.tsxmarketing/app/page.tsxmarketing/src/components/Hero.tsxmarketing/src/lib/site.ts
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: test (3.13)
- GitHub Check: test (3.11)
- GitHub Check: test (3.12)
- GitHub Check: Cloudflare Pages
🔇 Additional comments (1)
marketing/app/page.tsx (1)
36-43: Good CTA insertion and URL centralization.This cleanly adds the proof entry point and correctly uses
site.proofUrlas the shared source.
| <GlassCard className="p-6"> | ||
| <div className="font-heading text-lg font-semibold">See the ablation data</div> | ||
| <p className="mt-2 text-sm text-[color:var(--color-muted-foreground)]"> | ||
| 192 trials across Sonnet, DeepSeek, qwen14b, and Gemma4. Blind Haiku 4.5 judge. |
There was a problem hiding this comment.
Normalize model naming in user-facing copy.
Line 106 uses qwen14b; use consistent product casing (e.g., Qwen14B) to avoid credibility friction in marketing claims.
✏️ Proposed copy fix
- 192 trials across Sonnet, DeepSeek, qwen14b, and Gemma4. Blind Haiku 4.5 judge.
+ 192 trials across Sonnet, DeepSeek, Qwen14B, and Gemma4. Blind Haiku 4.5 judge.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| 192 trials across Sonnet, DeepSeek, qwen14b, and Gemma4. Blind Haiku 4.5 judge. | |
| 192 trials across Sonnet, DeepSeek, Qwen14B, and Gemma4. Blind Haiku 4.5 judge. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@marketing/app/how-it-works/page.tsx` at line 106, The user-facing copy in
marketing/app/how-it-works/page.tsx contains the lowercase token "qwen14b";
update that string to the normalized product casing "Qwen14B" in the sentence
"192 trials across Sonnet, DeepSeek, qwen14b, and Gemma4." and scan the same
file for any other occurrences of "qwen14b" to change them to "Qwen14B" so
casing is consistent across the page copy.
| <a | ||
| href="/how-it-works/" | ||
| className="inline-flex w-full items-center justify-center rounded-md px-5 py-2.5 text-sm font-medium text-[color:var(--color-muted-foreground)] transition-colors hover:text-[color:var(--color-foreground)] sm:w-auto" | ||
| > | ||
| How it works | ||
| </a> |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Use next/link for the internal /how-it-works/ navigation.
Line 36 is an internal route; using <Link> preserves client-side navigation/prefetch behavior and avoids full page reloads.
⚡ Proposed Next.js-idiomatic change
+import Link from "next/link";
import { site } from "@/lib/site";
import { CodeBlock } from "./CodeBlock";
@@
- <a
- href="/how-it-works/"
+ <Link
+ href="/how-it-works/"
className="inline-flex w-full items-center justify-center rounded-md px-5 py-2.5 text-sm font-medium text-[color:var(--color-muted-foreground)] transition-colors hover:text-[color:var(--color-foreground)] sm:w-auto"
>
How it works
- </a>
+ </Link>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@marketing/src/components/Hero.tsx` around lines 35 - 40, Replace the plain
anchor in the Hero component with Next.js client-side navigation: import Link
from 'next/link' and swap the <a href="/how-it-works/"> element for a <Link
href="/how-it-works/"> that carries the same className and text content so the
styling and behavior remain; ensure you remove the raw anchor and let Link
handle the navigation (in Next.js 13+ you can put the className directly on
Link).
| name: "Gradata", | ||
| url: "https://gradata.ai", | ||
| appUrl: "https://app.gradata.ai", | ||
| proofUrl: "https://app.gradata.ai/proof", |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Derive proofUrl from appUrl to avoid URL drift.
Line 5 duplicates the origin from Line 4. If appUrl changes later, this can silently desync CTA targets.
♻️ Proposed refactor
+const appUrl = "https://app.gradata.ai";
+
export const site = {
name: "Gradata",
url: "https://gradata.ai",
- appUrl: "https://app.gradata.ai",
- proofUrl: "https://app.gradata.ai/proof",
+ appUrl,
+ proofUrl: `${appUrl}/proof`,
docsUrl: "https://github.com/Gradata/gradata",
tagline: "AI that learns the corrections you keep making.",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@marketing/src/lib/site.ts` at line 5, Replace the hard-coded proofUrl with a
derived value computed from appUrl so the CTA never drifts; locate the exported
constants (appUrl and proofUrl) in site.ts and set proofUrl by deriving its
origin/path from appUrl (e.g., using URL or string concat) instead of a separate
literal, ensuring any change to appUrl automatically updates proofUrl.
Summary
/proofroute (shipped by PR feat(cloud): honest A/B proof — /public/proof endpoint + ablation export #44).proofUrlcentralised inmarketing/src/lib/site.ts.Motivation
Sim24: ~40% of agents pushed back on $50/user/month pricing. Most-liked comment (VP Eng): "Hard to justify without proof." The
/proofendpoint + dashboard route exists; marketing wasn't linking to it.Numbers used (ablation v4 closer)
Test plan
Co-Authored-By: Gradata noreply@gradata.ai