docs: add comprehensive Stripe billing guide
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 4s

Covers architecture, configuration steps, user flows, API routes,
webhooks, pricing, testing with Stripe CLI, production checklist,
and troubleshooting.
This commit is contained in:
Antigravity
2026-05-16 21:10:26 +00:00
parent aa12d2226f
commit bb75b2e763
36 changed files with 2099 additions and 735 deletions

View File

@@ -40,7 +40,7 @@ function getActionLabel(action: string, t: (key: string) => string | undefined):
function timeAgo(dateStr: string, t: (key: string) => string | undefined): string {
const diff = Date.now() - new Date(dateStr).getTime()
const mins = Math.floor(diff / 60000)
if (mins < 1) return t('brainstorm.justNow') || 'just now'
if (mins < 1) return t('brainstorm.justNow')
if (mins < 60) return `${mins}m`
const hours = Math.floor(mins / 60)
if (hours < 24) return `${hours}h`
@@ -63,7 +63,7 @@ export function ActivityFeed({ activities, isOpen, onToggle, t }: ActivityFeedPr
<div className="flex items-center gap-2">
<Activity size={14} className="text-orange-500" />
<h3 className="text-[10px] font-bold uppercase tracking-[0.2em] text-foreground">
{t('brainstorm.activityTitle') || 'Activity'}
{t('brainstorm.activityTitle')}
</h3>
</div>
<button
@@ -78,7 +78,7 @@ export function ActivityFeed({ activities, isOpen, onToggle, t }: ActivityFeedPr
{activities.length === 0 ? (
<div className="p-6 text-center">
<p className="text-xs italic text-muted-foreground">
{t('brainstorm.noActivity') || 'No activity yet'}
{t('brainstorm.noActivity')}
</p>
</div>
) : (

View File

@@ -289,7 +289,7 @@ export function BrainstormPage() {
</motion.div>
<div className="flex-1">
<h1 className="text-4xl font-serif font-medium text-foreground tracking-tight">
{t('brainstorm.title') || 'Waves of Thought'}
{t('brainstorm.title')}
</h1>
<div className="flex items-center gap-2 mt-1">
<span className="w-8 h-px bg-brand-accent/40" />