The Complete Prompt Chain: Customize LaunchKit with AI in 30 Minutes
A step-by-step prompt chain for Claude Code, Cursor, and Copilot users to transform LaunchKit into a production-ready SaaS. Copy, paste, ship.
Building tools for makers

You bought LaunchKit. Now you want to transform it into your SaaS product without spending hours figuring out what to change and where.
This guide gives you a complete prompt chain — copy-paste prompts you can use with Claude Code, Cursor, GitHub Copilot, or any AI coding assistant to customize LaunchKit in about 30 minutes.
Each prompt is designed to be self-contained. Run them in order, and you'll have a production-ready SaaS with your branding, pricing, and legal pages configured.
Before You Start
Make sure you have:
- LaunchKit cloned to your local machine
- Your AI coding assistant ready (Claude Code, Cursor, etc.)
- Your business details: company name, domain, pricing, legal entity
- Stripe account with price IDs for your products
- Supabase project created
Phase 1: Core Configuration
Prompt 1: Update App Identity
Start by updating your app name, domain, and contact details.
Update config.ts with these values:
- appName: "[YOUR_APP_NAME]"
- appDescription: "[ONE_LINE_DESCRIPTION]"
- domainName: "[yourdomain.com]"
- crisp.id: "" (leave empty unless using Crisp chat)
Update email settings:
- fromNoReply: "[YOUR_APP_NAME] <noreply@[yourdomain.com]>"
- fromAdmin: "Team at [YOUR_APP_NAME] <hello@[yourdomain.com]>"
- supportEmail: "hello@[yourdomain.com]"
Keep all other config values unchanged.Prompt 2: Configure Stripe Pricing
Set up your pricing tiers with your actual Stripe price IDs.
Update the stripe.plans array in config.ts with my pricing:
Plan 1 (Standard):
- name: "[PLAN_NAME]"
- description: "[SHORT_DESCRIPTION]"
- price: [PRICE_NUMBER]
- priceAnchor: [ANCHOR_PRICE or remove if none]
- priceId: Read from process.env.NEXT_PUBLIC_STRIPE_PRICE_ID
- features: [LIST_YOUR_FEATURES]
- isFeatured: false
Plan 2 (Premium) - if applicable:
- name: "[PREMIUM_PLAN_NAME]"
- description: "[SHORT_DESCRIPTION]"
- price: [PRICE_NUMBER]
- priceId: Read from process.env.NEXT_PUBLIC_STRIPE_PRICE_ID_PREMIUM
- features: [LIST_YOUR_FEATURES]
- isFeatured: true
Remove any plans I don't need.Prompt 3: Set Up Environment Variables
Create my .env.local file from .env.example with these values:
NEXT_PUBLIC_APP_URL=https://[yourdomain.com]
# Supabase (I'll fill these from my Supabase dashboard)
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
# Stripe (I'll fill these from my Stripe dashboard)
STRIPE_PUBLIC_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
NEXT_PUBLIC_STRIPE_PRICE_ID=[my_price_id]
NEXT_PUBLIC_STRIPE_PRICE_ID_PREMIUM=[my_premium_price_id]
# Resend
RESEND_API_KEY=
# Admin
ADMIN_EMAILS=[my_email@domain.com]
Leave all other optional variables empty for now.Phase 2: Legal Pages
Prompt 4: Update Terms of Service
Update app/tos/page.tsx with my legal details:
- Company/Legal Entity: [YOUR_LEGAL_ENTITY_NAME]
- Contact Email: hello@[yourdomain.com]
- Governing Law: [YOUR_JURISDICTION, e.g., "United Kingdom"]
- Product Type: SaaS template / digital product (one-time purchase)
- Refund Policy: [YOUR_POLICY, e.g., "7-day refund if not satisfied"]
Replace all placeholder text like [Company Name] and [Your Company]
with my actual business details. Keep the legal structure intact.Prompt 5: Update Privacy Policy
Update app/privacy-policy/page.tsx with my details:
- Company Name: [YOUR_LEGAL_ENTITY_NAME]
- Contact Email: hello@[yourdomain.com]
- Domain: [yourdomain.com]
Third-party services we use:
- Supabase (authentication, database)
- Stripe (payments)
- Resend (transactional email)
- [ADD_ANY_ANALYTICS: Google Analytics, PostHog, etc.]
Include GDPR section if targeting EU customers.
Replace all [placeholders] with actual values.Phase 3: Marketing Content
Prompt 6: Update Hero Section
Update components/Hero.tsx with my product messaging:
Badge text: "[YOUR_HOOK, e.g., 'Ship your SaaS in days']"
Headline: "[YOUR_MAIN_HEADLINE]"
- Should be benefit-focused
- Use config.appName for product name reference
Subheadline: "[YOUR_VALUE_PROPOSITION]"
- 1-2 sentences explaining what the product does
- Focus on the outcome for the user
Keep the existing CTA buttons pointing to /#pricing.
Update the tech stack pills if needed.Prompt 7: Update Problem Section
Update components/Problem.tsx with my target audience's pain points:
Main headline: "[THE_PROBLEM_YOU_SOLVE]"
Pain points (3-4 items):
1. [PAIN_POINT_1]
2. [PAIN_POINT_2]
3. [PAIN_POINT_3]
4. [PAIN_POINT_4]
These should resonate with my target customer and set up
why they need my solution.Prompt 8: Update Features
Update components/FeaturesListicle.tsx with my product features:
Feature 1:
- Title: "[FEATURE_NAME]"
- Description: "[WHAT_IT_DOES_AND_WHY_IT_MATTERS]"
Feature 2:
- Title: "[FEATURE_NAME]"
- Description: "[WHAT_IT_DOES_AND_WHY_IT_MATTERS]"
[Continue for 4-8 features]
Focus on benefits, not just features.
"Save 10 hours/week" beats "Automated reporting".Prompt 9: Update FAQ
Update components/FAQ.tsx with questions my customers actually ask:
Q1: "[COMMON_QUESTION]"
A1: "[HELPFUL_ANSWER]"
Q2: "[PRICING/REFUND_QUESTION]"
A2: "[CLEAR_ANSWER_ABOUT_PRICING]"
Q3: "[TECHNICAL_QUESTION]"
A3: "[ANSWER_THAT_BUILDS_CONFIDENCE]"
Q4: "[COMPARISON_QUESTION]"
A4: "[HONEST_DIFFERENTIATION]"
Include 6-10 FAQs. Put the most common objections first.Prompt 10: Update Testimonials
Update components/Testimonials3.tsx with social proof:
If I have real testimonials:
- Quote: "[ACTUAL_CUSTOMER_QUOTE]"
- Name: "[CUSTOMER_NAME]"
- Title: "[THEIR_ROLE_OR_COMPANY]"
If I don't have testimonials yet:
- Remove or comment out the testimonials section
- OR use placeholder text clearly marked as examples
Never use fake testimonials with real-sounding names.Phase 4: Final Polish
Prompt 11: Update Meta & SEO
Update SEO metadata across the site:
In app/layout.tsx, update the metadata:
- title: "[YOUR_APP_NAME] - [VALUE_PROP]"
- description: "[COMPELLING_META_DESCRIPTION_155_CHARS]"
Update Open Graph images if you have custom ones:
- app/opengraph-image.png (1200x630)
- app/twitter-image.png (1200x600)
Update favicon and icons:
- app/favicon.ico
- app/icon.png
- app/apple-icon.pngPrompt 12: Clean Up Blog Content
Review app/blog/_assets/content.tsx:
Option A - Keep and customize:
- Update author info to match my brand
- Modify articles to be relevant to my product
- Update categories if needed
Option B - Start fresh:
- Remove all existing articles
- Keep the structure for future content
- Add 1-2 articles relevant to my product
Option C - Remove blog entirely:
- Remove /blog routes
- Remove blog link from header navigation
- Keep the code for later if neededPrompt 13: Verify Build
Run these commands to verify everything works:
1. npm run build
- Fix any TypeScript or ESLint errors
- Ensure all imports are valid
2. npm run dev
- Check homepage renders correctly
- Test navigation links
- Verify pricing section shows correct plans
3. Test critical paths:
- Can you reach the login page?
- Does the pricing button work?
- Do legal pages render?Phase 5: Deploy
Prompt 14: Pre-Deployment Checklist
Before deploying, verify:
[ ] All placeholder text replaced
[ ] Config.ts has correct values
[ ] Legal pages have real company info
[ ] Pricing shows correct amounts and price IDs
[ ] .env.example updated (no secrets!)
[ ] Build passes without errors
[ ] Favicon and OG images updated
[ ] Analytics IDs ready (optional)
Create a commit:
git add -A
git commit -m "Configure [APP_NAME] for production"
git pushPrompt 15: Vercel Deployment
Deploy to Vercel:
1. Import your repo at vercel.com/new
2. Add all environment variables from .env.local
3. Deploy
Post-deployment:
1. Set up custom domain in Vercel dashboard
2. Configure Stripe webhook endpoint:
https://[yourdomain.com]/api/webhook/stripe
3. Test a complete purchase flow
4. Verify emails are sendingBonus Prompts
Add Analytics
Add analytics tracking to my LaunchKit site:
Set these environment variables:
NEXT_PUBLIC_GA4_ID=[my_ga4_id]
NEXT_PUBLIC_POSTHOG_KEY=[my_posthog_key]
The analytics are already integrated in config.ts,
just need the IDs to activate them.Customize Color Theme
Update the color theme in app/globals.css:
I want a [DESCRIBE_YOUR_BRAND_COLORS] color scheme.
- Primary: [HEX_OR_DESCRIPTION]
- Accent: [HEX_OR_DESCRIPTION]
- Base/Background: [HEX_OR_DESCRIPTION]
Update the DaisyUI theme configuration to match.
Keep both light and dark mode consistent.Add Custom Landing Page
Create an A/B test variant of the homepage:
1. Create app/b/page.tsx as a copy of app/page.tsx
2. Update the hero copy to test: "[ALTERNATIVE_HEADLINE]"
3. Keep everything else the same
4. I'll use analytics to compare /a vs /b performanceTips for Best Results
- Be specific: Replace the bracketed placeholders with your actual content before pasting the prompt.
- Run prompts in order: Later prompts may reference changes from earlier ones.
- Review each change: AI assistants are good but not perfect. Always review the diff before committing.
- Test locally: Run
npm run devafter each major change to catch issues early. - Commit often: Small commits make it easier to rollback if something breaks.
The 30-Minute Launch
Following this prompt chain, you can go from a fresh LaunchKit clone to a deployed, branded SaaS in about 30 minutes:
- 5 min — Core configuration (Prompts 1-3)
- 5 min — Legal pages (Prompts 4-5)
- 10 min — Marketing content (Prompts 6-10)
- 5 min — Final polish (Prompts 11-13)
- 5 min — Deploy (Prompts 14-15)
That's the power of starting with a production-ready foundation and using AI to accelerate the customization work.
Ready to ship faster?
LaunchKit gives you auth, payments, CRM, and everything you need to launch your SaaS in days, not months.
Get LaunchKitWritten by
LaunchKit TeamWe're a small team passionate about helping developers and entrepreneurs ship products faster. LaunchKit is our contribution to the maker community.
Related Articles

LaunchKit x Cursor: A Match Made in Vibe Coding Heaven
Why combining LaunchKit's production-ready foundation with Cursor's AI pair programming creates the ultimate SaaS development workflow.

Stripe Webhooks in LaunchKit: Complete Setup Guide
Set up Stripe webhooks for local development and production. Handle checkout.session.completed, verify signatures, and debug common issues.

LaunchKit Environment Variables: The Complete Setup Guide
Every environment variable explained. Where to get credentials, how to configure them, and the gotchas that trip up most developers.