Turn one idea into a week of content. ContentCascade is an AI-powered SaaS application that repurposes your content into optimized posts for LinkedIn, Twitter/X, and TikTok.
- AI Content Generation — Paste any text and instantly get platform-optimized posts
- Multi-Platform Support — LinkedIn posts, Twitter threads, and TikTok scripts
- A/B/C Variants — Three creative variations per platform for testing
- Hook Generator — AI-suggested hooks to maximize engagement
- Tone Presets — Professional, Viral, Storytelling, Educational, Controversial, Minimalist
- Usage Dashboard — Browse and copy all your previously generated content
- Subscription Billing — Free, Creator ($15/mo), and Pro ($29/mo) plans via Stripe
- Next.js 14 (App Router, TypeScript)
- TailwindCSS for styling
- Supabase for database and auth (email/password + Google OAuth)
- Stripe for subscription billing
- OpenAI for content generation (gpt-4o-mini)
npm installCopy .env.example to .env.local and fill in your credentials:
cp .env.example .env.localRequired environment variables:
NEXT_PUBLIC_SUPABASE_URL— Your Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY— Your Supabase anonymous keySUPABASE_SERVICE_ROLE_KEY— Your Supabase service role key (for webhooks)OPENAI_API_KEY— Your OpenAI API keySTRIPE_SECRET_KEY— Your Stripe secret keySTRIPE_WEBHOOK_SECRET— Your Stripe webhook signing secretNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY— Your Stripe publishable keySTRIPE_CREATOR_PRICE_ID— Stripe price ID for the Creator planSTRIPE_PRO_PRICE_ID— Stripe price ID for the Pro planNEXT_PUBLIC_STRIPE_CREATOR_PRICE_ID— Same as above (exposed to client)NEXT_PUBLIC_STRIPE_PRO_PRICE_ID— Same as above (exposed to client)NEXT_PUBLIC_APP_URL— Your app URL (e.g.,http://localhost:3000)
Run the SQL schema from supabase/schema.sql in your Supabase project's SQL editor.
- Create two subscription products in your Stripe dashboard: Creator ($15/mo) and Pro ($29/mo)
- Copy the price IDs to your
.env.local - Configure a webhook endpoint pointing to
{your-url}/api/stripe/webhookwith events:checkout.session.completedcustomer.subscription.updatedcustomer.subscription.deleted
npm run devOpen http://localhost:3000 in your browser.
Deploy to Vercel with all environment variables configured. Make sure to update NEXT_PUBLIC_APP_URL to your production URL and configure your Stripe webhook endpoint accordingly.