๐Ÿ›’ Customer Dashboard (demo)

๐Ÿงช This demo has no real auth wired in โ€” clicking below will correctly show "not authenticated" (see the comment in app/api/billing-portal/route.ts). That's the intended fail-closed behavior, not a bug. Wire in your own session lookup to make it work end-to-end.

Your Subscription

In a real app, this section shows the current plan, status, and renewal date โ€” read live from Stripe via getSubscriptionStatus() in lib/vibe-billing.ts. No local database required.

Opens Stripe's own hosted Billing Portal โ€” change plan, update card, view invoices, and cancel are all handled by Stripe, not custom-built here.