Yesterday I promised the Billing UI and Paywall Interceptor. Today the Billing UI is done and I went further - integrated the full Stripe Customer Portal.
What's shipped:
-Real-time billing dashboard (credits balance, transaction history, usage breakdown)
-Smart plan management button ("Manage Subscription" opens Stripe Portal for upgrades/downgrades/cancellations)
-Flexible credit purchases (custom quantity input, min 10 credits, real-time price calculation)
-Secure checkout flow from landing page (authenticated users → direct Stripe checkout, unauthenticated → /login?plan=xxx → auto-redirect after login)
-Stripe Customer Portal configured (proration, plan switching, invoice downloads all working)
Key decisions:
Customer Portal over custom UI: Stripe's native portal handles upgrades/downgrades/cancellations with proration. No need to reinvent the wheel.
Auth-aware navigation: Landing page buttons change based on login state (Login/Dashboard, Get Started/Logout)
What's left:
Paywall Interceptor (global 402 handler) - moved to tomorrow
10 days to launch.