ProductReady v0.2.0 Release Notes 🎉
Credits & Referral System, System Admin Enhancements, and Infrastructure Improvements
Released: 8 Dec 2025
We're excited to announce ProductReady v0.2.0! This release brings a comprehensive credits and referral system, enhanced system admin capabilities, and significant infrastructure improvements.
🌟 Highlights
- Credits & Referral System - Incentivize user growth with virtual credits and referral rewards
- System Admin Enhancements - User management, system logs, and system reviews
- Redemption Codes - Batch generation and management of promotional codes
- Notification Records - Track all email sends with admin visibility
- Testing Infrastructure - Comprehensive auth and API integration tests
✨ New Features
💰 Credits System
A complete virtual currency system for your SaaS:
Credit Sources
referral- Inviting friends to sign uponboarding- Completing onboarding stepsearly_adopter- Early adopter rewardspromotion- Promotional campaignsmanual- Admin-granted creditsredemption- Redeeming promotional codes
User Features
- View credit balance in Account Settings
- Transaction history with filtering
- Real-time balance updates
Admin Features
- Grant credits to any user
- View all transactions across users
- List users with credit balances
// Get user's credits
const credits = await trpc.credits.getMyCredits.query();
// { balance: 1000, totalEarned: 1500, totalUsed: 500 }
// Admin: Grant credits
await trpc.credits.addCredits.mutate({
userId: "user_123",
amount: 500, // $5.00
source: "manual",
description: "Customer support credit",
});🎁 Referral Program
Grow your user base with built-in referral incentives:
How It Works
- Users generate a unique referral code
- Share link:
https://yourapp.com/sign-up?ref=CODE - New user signs up and both receive credits:
- Referrer: $5.00 in credits
- New User: $2.00 in credits
Features
- Unique referral code per user
- Referral stats in Account Settings
- Automatic reward distribution
- Fraud prevention (can't self-refer)
// Generate referral code
const { referralCode } = await trpc.referral.generateReferralCode.mutate();
// Validate code (public)
const { valid, referrerName } = await trpc.referral.validateReferralCode.query({
code: "ABC123",
});🎟️ Redemption Codes
Promotional code system for marketing campaigns:
Features
- Batch code generation (up to 100 at once)
- Configurable credit amounts
- Usage limits per code
- Expiration dates
- Export to CSV
Admin Interface
- Create single or batch codes
- View redemption history
- Disable/enable codes
- Track usage statistics
👤 System Admin Enhancements
Comprehensive platform administration:
User Management
- List all users with search and filtering
- View detailed user profiles
- Manage admin roles
- View user notifications and activity
System Logs
- Audit trail for all admin actions
- Filter by category, entity, action
- User attribution for changes
System Reviews
- Manage customer testimonials
- Featured review ordering
- CRUD operations with audit logging
📧 Notification Records
Track all email communications:
- Record every email send in database
- View in admin user detail page
- Filter by type and status
- Debug delivery issues
🔧 Infrastructure Improvements
Testing Infrastructure
Authentication Tests
- Sign up/sign in flows
- OAuth provider integration
- Session management
- Password reset flows
API Integration Tests
- tRPC router coverage
- Error handling validation
- Authorization checks
Database Improvements
New Tables
user_credits- Credit balancesuser_credit_transactions- Transaction historyredemption_codes- Promotional codesredemption_history- Code usage trackingsystem_reviews- Customer testimonialssystem_logs- Audit trail
Schema Updates
user_profiles- Added referral fieldsspaces- Unified billing fields (provider-agnostic)
Documentation
New Docs
- Credits & Referral System guide
- System Admin documentation
- Email notification records
- Upload and attachments guide
🛠️ Technical Changes
Dependencies
- Next.js 16.0.3 → 16.0.7 (security patch)
- Renamed
packages/sendemail→packages/emaillib
Breaking Changes
Billing Fields Renamed
// Before
spaces.stripeCustomerId
spaces.stripeSubscriptionId
// After (provider-agnostic)
spaces.billingCustomerId
spaces.billingSubscriptionIdMigration Required
Run migrations to add new tables and fields:
pnpm db:generate
pnpm db:migrate📊 API Changes
New Routers
Credits Router
credits.getMyCredits- Get current balancecredits.getMyTransactions- Transaction historycredits.addCredits(admin) - Grant creditscredits.listTransactions(admin) - All transactionscredits.listUsersWithCredits(admin) - Users with credits
Referral Router
referral.getMyReferralInfo- Referral statsreferral.generateReferralCode- Generate codereferral.validateReferralCode- Validate (public)referral.processReferral- Process reward
Redemption Codes Router
redemptionCodes.redeem- Redeem a coderedemptionCodes.list(admin) - List all codesredemptionCodes.create(admin) - Create coderedemptionCodes.createBatch(admin) - Batch createredemptionCodes.update(admin) - Update coderedemptionCodes.delete(admin) - Delete code
🎨 UI Updates
Account Settings Modal
New tabs added:
- Credits - Balance and transaction history
- Referral - Referral link and stats
System Admin Dashboard
New sections:
- User management with detail views
- Redemption code management
- System reviews management
- System logs viewer
📈 Performance
- Optimized database queries with proper indexes
- Added caching for frequently accessed data
- Improved build times with Turbopack
🐛 Bug Fixes
- Fixed space context persistence with cookies
- Fixed agent task creation with proper spaceId
- Fixed artifact panel duplicate creation
- Fixed chat message handling
- Improved space initialization flow
📅 What's Next (v0.3.0)
- Real-time notifications (WebSocket)
- Advanced analytics dashboard
- Email templates with React Email
- Feature flags system
- A/B testing infrastructure
🙏 Acknowledgments
Thanks to all contributors who made this release possible!
Upgrade Instructions
# Update dependencies
pnpm install
# Run migrations
pnpm db:generate
pnpm db:migrate
# Restart development server
pnpm devHappy building! 🚀