Manage Subscription
Let a subscriber see their current plan and change or cancel it from one place.
Pro plan
Active$29/ month
Renews on July 1, 2026
API requests7,400 / 10,000
Example result — your output may vary with your context and the prompt you pass.
# Manage Subscription: Plan Overview
## Context
Flexnative UI intent — a reference solution from the shadcn/ui registry (@flx). The intent frames the problem; the decision is one approach to it.
## Problem
Let a subscriber see their current plan and change or cancel it from one place.
## Decision
- Best for: The default home for an active subscription. One card shows the plan, price, renewal date, and usage, with change and cancel actions a click away.
- Trade-off: It surfaces state but does not perform the change itself, so it always hands off to a change or cancel flow to finish the job.
## Registry Item
@flx/manage-subscription-1
## Stack
- UI: shadcn/ui
- Styling: Tailwind CSS
- shadcn components: Badge, Button, Card, Progress, Separator
- npm: lucide-react
## Registry Source
https://ui.flexnative.com/r/manage-subscription-1.json
## Preview
https://ui.flexnative.com/intents/manage-subscription#1
## Reference Implementation
```tsx
'use client'
import { CalendarClock, Settings2 } from 'lucide-react'
import { Badge } from '@/components/ui/badge'
import { Button } from '@/components/ui/button'
import {
Card,
CardContent,
CardFooter,
CardHeader,
CardTitle,
} from '@/components/ui/card'
import { Progress } from '@/components/ui/progress'
import { Separator } from '@/components/ui/separator'
export function ManageSubscription1() {
const used = 7400
const limit = 10000
const pct = Math.round((used / limit) * 100)
return (
<Card>
<CardHeader>
<div className="flex items-center justify-between">
<CardTitle>Pro plan</CardTitle>
<Badge variant="secondary">Active</Badge>
</div>
</CardHeader>
<CardContent className="flex flex-col gap-4">
<div className="flex items-baseline gap-1">
<span className="text-2xl font-semibold">$29</span>
<span className="text-muted-foreground text-sm">/ month</span>
</div>
<div className="text-muted-foreground flex items-center gap-2 text-sm">
<CalendarClock className="size-4" />
Renews on July 1, 2026
</div>
<Separator />
<div className="flex flex-col gap-2">
<div className="flex items-center justify-between text-sm">
<span className="text-muted-foreground">API requests</span>
<span className="font-medium">
{used.toLocaleString()} / {limit.toLocaleString()}
</span>
</div>
<Progress value={pct} className="h-2" />
</div>
</CardContent>
<CardFooter className="flex flex-wrap gap-2">
<Button className="min-w-32 flex-1">
<Settings2 className="size-4" />
Change plan
</Button>
<Button variant="outline" className="min-w-32 flex-1">
Cancel
</Button>
</CardFooter>
</Card>
)
}
```Paste into your AI tool and adapt it to your context.
Other ways
Reach for these when the context shifts. Each is copyable too.
Change plan
You will be charged a prorated $70 now, then $99/mo.
Change Plan
Stay for 50% off
Before you go, keep Pro at half price for the next three months. No commitment, cancel any time.
Cancel Flow