feat(marketing): say no card where the trial is actually claimed

Three places still carried the old promise. The register form, which is where
the CTA lands and where the trial is granted, said nothing about it at all, so
the landing page's claim had to be taken on faith across a page load. The
comparison profile summary still described the trial without mentioning the
card. And the CtaLink comment quoted a button label that no longer exists.

The hero and closing CTAs now read 'Open dashboard' for a signed-in visitor.
That button already pointed at /dashboard for them, and offering a free trial
to someone who is mid-subscription reads as a bug. The pricing card keeps the
short label because it sits directly under 'No credit card' and the card
narrows to about 230px at the md breakpoint, where the long label would wrap
out of a fixed-height button.
This commit is contained in:
2026-08-18 09:23:21 +03:00
parent 364e60146d
commit 4c0b18e5e4
6 changed files with 31 additions and 11 deletions
+7 -3
View File
@@ -90,6 +90,10 @@ export function LandingPage({ isLoggedIn }: LandingPageProps) {
const rootRef = useRef<HTMLDivElement | null>(null);
const navbarRef = useRef<HTMLElement | null>(null);
const hostedCtaHref = isLoggedIn ? '/dashboard' : '/register';
// Same button, two audiences. Once you are signed in it goes to the dashboard,
// and offering a trial to someone who is already using the product reads as a
// mistake rather than as an offer.
const hostedCtaLabel = isLoggedIn ? 'Open dashboard' : 'Start 7-day free trial, no card required';
useEffect(() => {
const cleanupHandlers: Array<() => void> = [];
@@ -263,7 +267,7 @@ export function LandingPage({ isLoggedIn }: LandingPageProps) {
href={hostedCtaHref}
className="group relative isolate inline-flex h-12 min-w-max items-center justify-center overflow-hidden border border-primary bg-primary px-10 text-sm font-medium whitespace-nowrap text-primary-foreground transition-transform duration-300 hover:scale-[1.02]"
>
Start 7-day free trial, no card required
{hostedCtaLabel}
<MoveRight className="ml-2 h-4 w-4 transition-transform group-hover:translate-x-1" />
</CtaLink>
@@ -722,7 +726,7 @@ export function LandingPage({ isLoggedIn }: LandingPageProps) {
href={hostedCtaHref}
className="mt-auto group relative isolate inline-flex h-12 w-full items-center justify-center overflow-hidden bg-[#06b6d4] font-medium text-black transition-colors hover:bg-[#06b6d4]/90 text-sm"
>
Start free trial
{isLoggedIn ? 'Open dashboard' : 'Start free trial'}
</CtaLink>
</div>
@@ -906,7 +910,7 @@ export function LandingPage({ isLoggedIn }: LandingPageProps) {
href={hostedCtaHref}
className="group relative isolate inline-flex h-12 min-w-max items-center justify-center overflow-hidden border border-primary bg-primary px-10 text-sm font-medium whitespace-nowrap text-primary-foreground transition-transform duration-300 hover:scale-[1.02] md:min-w-[240px]"
>
Start 7-day free trial, no card required
{hostedCtaLabel}
</CtaLink>
</div>
</section>