Beta Launch Preparation Guide¶
Date: November 5, 2025 Status: Ready for Beta Launch Week (Nov 11-15) Version: 20251105.17:40
TL;DR - Your Action Items¶
✅ Already Complete¶
- Terms of Service & Privacy Policy - Fully deployed and GDPR-compliant
- Security Hardening - A- rating (production-ready)
- Team Features - All working (invitations, roles, billing)
- Database Backups - Configured on Neon
- Stripe Integration - Payment processing ready
🎯 To-Do This Week (Before Beta Launch)¶
- Payment Testing - Verify with real card (see Section 1 below)
- Email Setup - Configure support@codeslick.dev (see Section 2)
- Email Service - Integrate Resend.com (see Section 3)
- Beta Candidates - Identify 10-15 people (see Section 4)
- User Testing - Test full flows on codeslick.dev (see Section 5)
Section 1: Payment Testing Checklist ✅¶
Status: You mentioned you already did this. Verify these items:
Quick Verification Checklist¶
Did you test these scenarios?
- Test 1.3: Complete payment with test card
4242 4242 4242 4242 - Redirected back to CodeSlick after payment?
-
Success message displayed?
-
Test 1.4: Verify database updates
- Team plan upgraded to "team"?
- Subscription created with status "active"?
-
Invoice recorded as "paid"?
-
Test 1.5: Verify UI updates
- Billing tab shows "Team Plan" badge?
- "Manage Billing" button visible?
-
Member limit increased to 5?
-
Test 2.1: Access Stripe Customer Portal
- Click "Manage Billing" redirects to Stripe portal?
-
Can view invoices and payment methods?
-
Test 2.4: Cancel subscription
- Cancellation works?
- Shows "Cancels on [date]" warning?
If You Haven't Tested These Yet¶
Run these quick tests on localhost:
# Terminal 1: Start dev server
npm run dev
# Terminal 2: Start Stripe webhook listener
stripe listen --forward-to localhost:3000/api/billing/webhook
# Browser:
1. Sign in with GitHub
2. Install GitHub App
3. Go to team settings → Billing tab
4. Click "Upgrade to Team Plan"
5. Use test card: 4242 4242 4242 4242
6. Verify success message
7. Check database for subscription
8. Click "Manage Billing" to test portal
Database Queries (on Neon dashboard):
-- Check if subscription was created
SELECT
t.name AS team_name,
t.plan,
s.status,
s.current_period_end,
i.amount,
i.status AS invoice_status
FROM teams t
LEFT JOIN subscriptions s ON s.team_id = t.id
LEFT JOIN invoices i ON i.team_id = t.id
WHERE t.id = 'YOUR_TEAM_ID';
Expected Result: plan = 'team', subscription status = 'active', invoice amount = 9900
Section 2: Set Up support@codeslick.dev Email¶
You have 2 options for email:
Option A: Google Workspace (Recommended for Production)¶
Cost: €6/month per user Time: 15 minutes setup
Steps: 1. Go to Google Workspace 2. Start 14-day free trial 3. Add domain: codeslick.dev 4. Verify domain ownership (add DNS TXT record) 5. Create email: support@codeslick.dev 6. Set up email forwarding to your personal email
DNS Records (add to your domain registrar):
Option B: Email Forwarding Only (Free, Quick)¶
Cost: Free Time: 5 minutes
Steps: 1. Log in to your domain registrar (e.g., Namecheap, GoDaddy) 2. Find "Email Forwarding" settings 3. Add forwarding rule: - From: support@codeslick.dev - To: your-personal-email@gmail.com
Limitation: Can only receive emails, not send from support@codeslick.dev
Option C: Resend.com (Best for Beta)¶
Cost: Free up to 100 emails/day Time: 10 minutes
Steps:
1. Sign up at resend.com
2. Verify domain codeslick.dev (add DNS records)
3. Create API key
4. Add to .env.local:
DNS Records (add these to your domain):
Type: TXT
Name: _resend
Value: [Provided by Resend after signup]
Type: CNAME
Name: resend._domainkey
Value: [Provided by Resend]
Recommendation: Use Option C (Resend.com) - it solves both receiving AND sending emails, which you'll need for invitations.
Section 3: Integrate Resend.com Email Service¶
Purpose: Send team invitation emails automatically
Time: 30 minutes
Step 1: Sign Up and Configure¶
- Go to resend.com and sign up
- Verify your domain:
- Dashboard → Domains → Add Domain
- Enter: codeslick.dev
- Add DNS records (TXT + CNAME) to your domain registrar
- Wait for verification (5-10 minutes)
Step 2: Get API Key¶
- Dashboard → API Keys → Create API Key
- Name: "CodeSlick Production"
- Permission: "Sending access"
- Copy the key:
re_xxxxxxxxxxxxx
Step 3: Add to Environment Variables¶
File: .env.local
# Email Service (Resend.com)
RESEND_API_KEY=re_xxxxxxxxxxxxx
RESEND_FROM_EMAIL=support@codeslick.dev
RESEND_FROM_NAME=CodeSlick
Step 4: Install Resend SDK¶
Step 5: Create Email Service Helper¶
File: src/lib/email/resend-client.ts
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
export async function sendTeamInvitationEmail({
to,
teamName,
inviterName,
invitationUrl,
}: {
to: string;
teamName: string;
inviterName: string;
invitationUrl: string;
}) {
try {
await resend.emails.send({
from: `${process.env.RESEND_FROM_NAME} <${process.env.RESEND_FROM_EMAIL}>`,
to: [to],
subject: `You've been invited to join ${teamName} on CodeSlick`,
html: `
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
<h2>You've been invited to ${teamName}</h2>
<p>${inviterName} has invited you to join their team on CodeSlick.</p>
<p>CodeSlick provides automated security reviews for your GitHub pull requests.</p>
<p>
<a
href="${invitationUrl}"
style="background: #4F46E5; color: white; padding: 12px 24px; text-decoration: none; border-radius: 6px; display: inline-block;"
>
Accept Invitation
</a>
</p>
<p style="color: #666; font-size: 14px;">
This invitation will expire in 7 days.
</p>
<hr style="border: none; border-top: 1px solid #eee; margin: 24px 0;" />
<p style="color: #999; font-size: 12px;">
CodeSlick - Automated Security Reviews for GitHub PRs<br />
<a href="https://codeslick.dev">codeslick.dev</a>
</p>
</div>
`,
});
console.log(`✅ Invitation email sent to ${to}`);
return { success: true };
} catch (error) {
console.error('❌ Failed to send invitation email:', error);
return { success: false, error };
}
}
export async function sendWelcomeEmail({
to,
userName,
}: {
to: string;
userName: string;
}) {
try {
await resend.emails.send({
from: `${process.env.RESEND_FROM_NAME} <${process.env.RESEND_FROM_EMAIL}>`,
to: [to],
subject: 'Welcome to CodeSlick!',
html: `
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
<h2>Welcome to CodeSlick, ${userName}!</h2>
<p>Thanks for signing up. You're all set to start securing your code.</p>
<h3>Next Steps:</h3>
<ol>
<li>Install the CodeSlick GitHub App</li>
<li>Create or join a team</li>
<li>Open a pull request to see CodeSlick in action</li>
</ol>
<p>
<a
href="https://codeslick.dev/teams"
style="background: #4F46E5; color: white; padding: 12px 24px; text-decoration: none; border-radius: 6px; display: inline-block;"
>
Get Started
</a>
</p>
<p>Need help? Reply to this email or check our <a href="https://codeslick.dev/help">documentation</a>.</p>
</div>
`,
});
console.log(`✅ Welcome email sent to ${to}`);
return { success: true };
} catch (error) {
console.error('❌ Failed to send welcome email:', error);
return { success: false, error };
}
}
Step 6: Update Invitation Endpoint¶
File: src/app/api/teams/[id]/members/route.ts
Add at the top:
Replace the console.log invitation with actual email (around line 180):
// BEFORE (console logging)
console.log(`Invitation link: ${invitationUrl}`);
// AFTER (send real email)
if (process.env.RESEND_API_KEY) {
await sendTeamInvitationEmail({
to: email,
teamName: team.name,
inviterName: session.user.name || 'A team member',
invitationUrl: invitationUrl,
});
} else {
// Fallback to console for development
console.log(`Invitation link: ${invitationUrl}`);
}
Step 7: Test Email Sending¶
Test on localhost:
# Start dev server
npm run dev
# Browser:
1. Go to team settings → Members
2. Click "Invite Member"
3. Enter email: your-test-email@gmail.com
4. Submit
5. Check inbox for invitation email
Expected: Email arrives within 1-2 seconds with invitation link
Section 4: Identify 10-15 Beta Candidates¶
Use the templates from BETA_INVITATION_TEMPLATE.md to recruit beta users.
Target Audience¶
Who to invite: - DevOps engineers - Security engineers - Tech leads / Engineering managers - Startup CTOs - Developer teams (2-5 people)
Where to find them: 1. Personal Network (warmest leads) - Former colleagues - LinkedIn connections - GitHub followers - Twitter/X followers
- Professional Communities
- LinkedIn groups (DevOps, Security)
- Reddit: r/devops, r/security, r/programming
- Hacker News (Show HN post)
-
Dev.to, Hashnode
-
Cold Outreach
- Companies using GitHub (check job boards)
- Startups on Product Hunt
- Open source project maintainers
Candidate Tracking Template¶
Create a spreadsheet with these columns:
| Name | Company | Channel | Date Sent | Status | Notes | |
|---|---|---|---|---|---|---|
| John Doe | Acme Inc | john@acme.com | Nov 6 | ⏳ Sent | CTO, uses Python | |
| Jane Smith | Tech Co | jane@tech.co | Nov 6 | ✅ Interested | Wants call |
Goal: 15 invitations sent → 8-10 responses → 5 signed up
Email Templates to Use¶
Warm Leads (people you know): - Use Template 1 from BETA_INVITATION_TEMPLATE.md - Personalize the intro - Reference specific project/tech stack
LinkedIn Connections: - Use Template 2 from BETA_INVITATION_TEMPLATE.md - Keep it professional but casual - Highlight B2B value (team features)
Reddit/HN: - Use Template 4 or 5 from BETA_INVITATION_TEMPLATE.md - Focus on technical details - Be transparent about solo founder status
Sample Personalized Email¶
Subject: CodeSlick Beta - Free Security Analysis for Your PRs
Hi [Name],
I noticed we're connected on LinkedIn and saw you're working at [Company].
I'm launching a beta for CodeSlick - automated security reviews that run on every GitHub PR. Think of it as having a security engineer on every code review, but automated.
What it does:
- Detects 79+ vulnerabilities (SQL injection, secrets, XSS, etc.)
- Posts findings as PR comments
- AI-powered fix suggestions
- Team dashboard & analytics
Beta offer:
✅ 4 weeks free (normally €99/month)
✅ Then 50% off for 3 months
✅ No credit card required
I'm looking for 5-10 teams to try it out. Since you're working on [specific tech], I thought CodeSlick might save your team some security headaches.
Interested? 5-min setup: https://codeslick.dev
Or reply with questions - happy to answer!
Best,
[Your Name]
Section 5: User Testing on CodeSlick.dev¶
Test these end-to-end flows as a real user:
Test Flow 1: New User Onboarding (15 min)¶
- Sign Up:
- Go to https://codeslick.dev
- Click "Sign in with GitHub"
- Authorize CodeSlick GitHub App
-
Redirected to team selector page
-
GitHub App Installation:
- Select repository to install CodeSlick on
- Grant permissions
- Team auto-created
-
Redirected to team dashboard
-
Verify Team Dashboard:
- See team name and plan (Free)
- See "0 PRs analyzed" counter
- Navigation works (Dashboard, Settings, Audit)
Test Flow 2: Team Upgrade & Payment (10 min)¶
- Upgrade to Team Plan:
- Go to Settings → Billing tab
- Click "Upgrade to Team Plan"
- Redirected to Stripe Checkout
- Enter test card: 4242 4242 4242 4242
- Complete payment
-
Redirected back with success message
-
Verify Upgrade:
- Badge shows "Team Plan"
- Member limit increased to 5
- "Manage Billing" button visible
Test Flow 3: Team Invitation (10 min)¶
- Invite Team Member:
- Go to Settings → Members tab
- Click "Invite Member"
- Enter email address
- Select role (Member)
- Click "Send Invitation"
- Success message shown
-
Invitation appears in pending list
-
Accept Invitation (use incognito window):
- Check email inbox
- Click invitation link
- Sign in with GitHub (different account)
- Accept invitation
- Added to team successfully
- Can see team dashboard
Test Flow 4: Code Analysis (5 min)¶
- Analyze Code:
- Go to "Analyze Code" page
- Team selector shows current team
- Paste vulnerable code (use example)
- Click "Analyze"
- Results appear within 2-3 seconds
- Issues displayed with severity badges
- Export report works (HTML, Markdown)
Test Flow 5: PR Analysis (15 min)¶
- Create Pull Request:
- Go to GitHub repository with CodeSlick installed
- Create a new branch
- Add vulnerable code (SQL injection, XSS, etc.)
- Open a pull request
-
Wait 10-15 seconds for CodeSlick to analyze
-
Verify PR Comments:
- CodeSlick bot posts PR comment
- Comment shows security findings
- Issues categorized by severity
- OWASP Top 10 mapping visible
- Fix suggestions provided
Test Flow 6: Cancel Subscription (5 min)¶
- Cancel & Reactivate:
- Go to Billing → Click "Manage Billing"
- In Stripe portal, click "Cancel subscription"
- Confirm cancellation
- Back in CodeSlick, see "Cancels on [date]" warning
- Click "Reactivate Subscription"
- Cancellation removed
Test Flow 7: Role Management (5 min)¶
- Change Member Role:
- Go to Settings → Members
- Click "Change Role" on a member
- Change from Member → Admin
- Save changes
- Verify role updated in list
- Log in as that member (verify admin access)
Expected Total Time: ~65 minutes¶
Section 6: Final Checklist Before Beta Launch¶
Technical Readiness¶
- All 570 tests passing (run
npm test) - Production build successful (run
npm run build) - Environment variables configured on Vercel
- Stripe live mode configured (webhook, products, prices)
- Database backups enabled on Neon
- PostHog analytics working
- GitHub App approved and published
Legal & Compliance¶
- Terms of Service deployed at
/terms - Privacy Policy deployed at
/privacy - GDPR compliance verified
- Cookie consent banner (optional for beta)
Email & Support¶
- support@codeslick.dev email configured
- Resend.com API key configured
- Test invitation email sent successfully
- Welcome email template ready
Beta Program¶
- 10-15 beta candidates identified
- Invitation emails drafted (personalized)
- Beta pricing configured (50% off for 3 months)
- Feedback process defined (15-min calls)
Monitoring & Analytics¶
- PostHog dashboard accessible
- Vercel Analytics working
- Error tracking configured (Vercel logs)
- Stripe dashboard monitored daily
Section 7: Beta Launch Timeline¶
Monday, Nov 11¶
- Final payment testing with real card
- Verify all systems operational
- Send Batch 1 invitations (5 users)
Tuesday, Nov 12¶
- Monitor signups and onboarding
- Respond to support questions
- Fix any critical bugs
Wednesday, Nov 13¶
- Send Batch 2 invitations (5 users)
- Schedule Week 1 feedback calls
Thursday-Friday, Nov 14-15¶
- Conduct feedback calls
- Iterate based on feedback
- Prepare Week 2 improvements
Week 2-4 (Nov 18 - Dec 6)¶
- Continue beta testing
- Address feedback items
- Begin payment conversion conversations
- Target: 2-3 paying customers
Section 8: Success Metrics¶
Beta Launch Success¶
Target by Nov 30: - ✅ 5-10 beta users signed up - ✅ 3-5 teams with GitHub App installed - ✅ 20+ PRs analyzed - ✅ 2-3 paying customers (€98-245 MRR) - ✅ 80% positive feedback on UX - ✅ < 5 critical bugs reported
Key Metrics to Track¶
Weekly: - New signups - GitHub App installations - PRs analyzed - Team invitations sent - Active users (DAU/WAU)
Monthly: - Conversion rate (free → paid) - Churn rate - Monthly Recurring Revenue (MRR) - Average Revenue Per User (ARPU)
Section 9: Support Resources¶
Documentation Links¶
- Payment Testing:
PAYMENT_TESTING_CHECKLIST.md(650 lines, 26 tests) - Beta Invitations:
BETA_INVITATION_TEMPLATE.md(480 lines, 7 templates) - User Guide:
TEAM_MEMBER_GUIDE.md(380 lines) - Beta Launch:
BETA_LAUNCH_CHECKLIST.md(750 lines, 8 phases)
Contact Information¶
Your Email: support@codeslick.dev (once configured) Website: https://codeslick.dev GitHub: https://github.com/codeslick Analytics: PostHog dashboard
Section 10: Quick Action Summary¶
TODAY (Nov 5-6): 1. ✅ Verify payment testing complete (Section 1) 2. 🚀 Set up support@codeslick.dev email (Section 2 - Option C recommended) 3. 🚀 Integrate Resend.com (Section 3 - 30 min) 4. 🚀 Identify 10-15 beta candidates (Section 4 - 1 hour)
THIS WEEK (Nov 7-10): 5. 🚀 Test CodeSlick.dev end-to-end (Section 5 - 65 min) 6. 🚀 Draft personalized beta invitation emails 7. 🚀 Final production checklist review (Section 6)
BETA LAUNCH WEEK (Nov 11-15): 8. 🚀 Send Batch 1 invitations (5 users) 9. 🚀 Monitor onboarding and support 10. 🚀 Send Batch 2 invitations (5 users) 11. 🚀 Conduct feedback calls
Document Created: November 5, 2025 Phase: Beta Launch Preparation Status: Ready for Action 🚀 Next Milestone: First paying customer (Nov 2025)