"use client";
import { useState } from "react";
import Link from "next/link";
import { ArrowRight, Check, Minus, Plus } from "lucide-react";
import { GaugeChart } from "@/components/charts/GaugeChart";
import { ProgressBar } from "@/components/ui/ProgressBar";
import { CountUp } from "@/components/ui/CountUp";
import { LeafMark } from "@/components/ui/Logo";
import { prices } from "@/lib/data";
const mono = "font-mono text-[10px] uppercase tracking-[.25em]";
function Eyebrow({ children }: { children: string }) {
return
{children}
;
}
/* ---------- Product showcase — live UI, not screenshots ---------- */
export function ProductShowcase() {
const [activeCard, setActiveCard] = useState(0);
const cardCount = 3;
useEffect(() => {
const interval = setInterval(() => {
setActiveCard((i) => (i + 1) % cardCount);
}, 5000);
return () => clearInterval(interval);
}, []);
const cards = [
{
title: "Flex budget",
mono: "Flex budget",
label: "$93 safe to spend today",
content: ,
heading: "One number, not thirty categories.",
description: "Income − fixed costs − goals. What's left is truly yours to spend.",
gradient: "from-[#123B2E] to-[#0C1512]",
bgLight: "bg-[#0E1F19]/80"
},
{
title: "Guardrails",
mono: "Category guardrails",
label: "Warnings before the overspend",
content:
,
heading: "Warnings before the overspend.",
description: "Green under 80%, amber to 100%, red past it — and a nudge before it happens.",
gradient: "from-[#3B2E12] to-[#15120C]",
bgLight: "bg-[#1F1A0E]/80"
},
{
title: "Credit",
mono: "FICO 8 · real score",
label: "+21 in 90 days",
content: <>
+21 in 90 days
“Pay $410 on your Chase card before the 28th to likely gain ~9 points.”
>,
heading: "Credit coaching with zero bias.",
description: "We never earn referral fees, so the advice is only ever for you.",
gradient: "from-[#221C46] to-[#100E1C]",
bgLight: "bg-[#161230]/80"
}
];
return (
The product
Track everything. Feel everything.
These aren't screenshots — they're the real components, running live.
Budgets that breathe, credit that explains itself, goals that feel close.
{cards.map((card, idx) => (
{card.mono}
{card.content}
{card.heading}
{card.description}
))}
);
}
/* ---------- Stats band ---------- */
export function StatsBand() {
const stats: [number, string, string, string][] = [
[100, "k+", "", "members across the US"],
[312, "", "$", "average saved per month"],
[4.8, "★", "", "member rating"],
[0, "", "$", "referral fees. Ever."],
];
return (
{prices.map(([name, price, body]) => {
const popular = name === "Plus";
return (
{popular ? (
Most popular
) : (
)}
{name}
{price}
{body}
Get started
);
})}
);
}
/* ---------- FAQ ---------- */
const faqs: [string, string][] = [
["What does subscription-only actually mean?", "Your subscription is our only revenue. No ads, no referral fees, no selling your data. When Aartha recommends a card or an action, there is no financial incentive behind it — that's structural, not a promise."],
["Is my bank data safe?", "Connections run through Plaid and MX with bank-grade encryption. Aartha never sees or stores your bank credentials, and your data is never sold or shared."],
["Is this real financial advice?", "Aartha's AI coach provides educational financial information, not regulated financial advice. It explains what it noticed, why it matters, and a suggested action — you decide."],
["What happens if I cancel?", "Cancel in two taps — no guilt screens. Your data stays exportable for 90 days, then it's deleted. We tell you the exact date."],
["How is this different from Monarch or Credit Karma?", "Monarch shows you your money; Credit Karma is paid to recommend products. Aartha actively coaches you toward your goals and is structurally unable to profit from biased advice."],
];
export function FAQ() {
const [open, setOpen] = useState(0);
return (