Plug in auth, OTP, and billing with one clean integration layer.
Every integration component is pre-wired for real providers, fully themeable, secure by default, and typed for exceptional developer experience.
# Auth (better-auth)
BETTER_AUTH_SECRET="replace-me"
BETTER_AUTH_URL="http://localhost:3000"
# Stripe
STRIPE_SECRET_KEY="sk_live_..."
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_live_..."
STRIPE_WEBHOOK_SECRET="whsec_..."
# OTP / Email / SMS
RESEND_API_KEY="re_..."
TWILIO_ACCOUNT_SID="AC..."
TWILIO_AUTH_TOKEN="..."
# Optional integrations
POSTHOG_KEY="phc_..."
MAILCHIMP_API_KEY="..."import { SpinkIntegrationsProvider, createBetterAuthAdapter, createStripeAdapter } from '@/lib/integrations';import { authClient } from '@/lib/auth-client';import { createCheckoutSession, listInvoices } from '@/app/actions/billing';const config = { authProvider: 'better-auth', paymentProvider: 'stripe', otpProvider: 'google', auth: createBetterAuthAdapter(authClient), payments: createStripeAdapter({ createCheckoutSession, listInvoices, }),};export function AppProviders({ children }) { return <SpinkIntegrationsProvider config={config}>{children}</SpinkIntegrationsProvider>;}Login
Email and password login pre-configured for better-auth.
Optional callback URL: default provider route
Register
Ship signup in minutes by passing your better-auth client adapter.
Magic Link
Forgot Password
Social Login + Profile
OTP Verification
Email, SMS, or authenticator verification with resend timer and auto-submit.
Verification Patterns
Provider-ready
Developer-friendly
Stripe Pricing
stripeDeveloper License
Annual license for one developer — covers up to 3 projects with full Spink UI access.
CHF 129 / year
- 1 developer, up to 3 projects
- Production-ready components
- Implementation support
Team License
Annual team license for up to 10 members across up to 8 applications.
CHF 499 / year
- Up to 10 team members
- Up to 8 applications
- Priority rollout guidance
Enterprise Terms
Tailored commercial package with onboarding and negotiated support terms.
Custom
- Dedicated onboarding
- Negotiated terms
- Architecture advisory
Stripe Checkout
One-time and recurring billing via Stripe sessions.
Select plan
Payment method
Selected payment method: card
Subscription Management
Manage plan status and cancellation from your dashboard.
No active subscription
Invoice History
List paid and open invoices with downloadable links.
No invoices
Payment successful
Your subscription has been activated.
Newsletter
Resend / MailchimpPresigned Upload
S3 / R2 / SupabaseAssets
Drop files here or browse
Uses presigned URL from your backend adapter.
Progress
Waiting for file...
Streaming AI Chat
SSE / fetch streamNo response yet.