Platform Branding
Customize your platform’s appearance and identity through the admin dashboard.Access Branding Settings
Customizable Elements
Platform Name and Description
- Page titles and meta tags
- Email templates
- Footer text
- Welcome messages
Logos
Upload two versions of your logo:- Light Mode Logo - Displayed on light backgrounds
- Dark Mode Logo - Displayed on dark backgrounds
Recommended size: 200x50px (PNG or SVG format). Transparent backgrounds work best.
Favicon
Upload a custom favicon that appears in browser tabs.Recommended size: 32x32px or 64x64px (ICO, PNG, or SVG format).
Contact Information
- Email templates
- Footer links
- Support references
SEO Configuration
Optimize your platform for search engines:The SEO image (Open Graph image) should be 1200x630px for optimal social media sharing.
Theme Customization
EaseLMS uses Tailwind CSS for styling, making it easy to customize colors and design.Color Scheme
Editapps/lms/app/globals.css to customize colors:
Custom Fonts
EaseLMS uses the Geist font family. To change:- Import your font in
apps/lms/app/layout.tsx:
Payment Integration
EaseLMS supports two payment gateways: Stripe (global) and Flutterwave (African markets).Stripe Integration
Setup Stripe
Create Stripe account
Sign up at stripe.com
Get API keys
- Go to Developers → API keys
- Copy your Publishable key and Secret key
- For testing, use keys starting with
pk_test_andsk_test_
Test Stripe Integration
Use Stripe’s test card numbers:Flutterwave Integration
Setup Flutterwave
Create Flutterwave account
Sign up at flutterwave.com
Get API keys
- Go to Settings → API
- Copy your Public key and Secret key
- Use test keys for development
Multi-Currency Support
EaseLMS supports multiple currencies through:- User-selected currency - Stored in user profile
- Automatic conversion - Using exchangerate-api.com
- Gateway-specific currencies - Stripe and Flutterwave handle local currencies
Configure Currency Exchange
Enrollment Modes
Courses can have different enrollment types:Free Enrollment
One-Time Purchase
Recurring Subscription
Closed Enrollment
By settingenrollment_mode to a custom value or managing enrollment manually through the admin panel.
Email Customization
Configure SendGrid
Set up SendGrid account
- Sign up at sendgrid.com
- Free tier: 100 emails/day
Verify sender
- Go to Settings → Sender Authentication
- Verify your domain or single sender email
- Complete authentication process
Generate API key
- Go to Settings → API Keys
- Create new key with Mail Send permissions
- Copy the key (shown only once)
Email Templates
EaseLMS sends these automated emails: User Emails:- Welcome email on signup
- Course enrollment confirmation
- Course completion notification
- Certificate ready notification
- Payment confirmation
- Payment failure alert
- New enrollment notification
- New payment received
- Course completion alert
Email templates automatically use your platform branding (name, logo, colors) configured in Settings → Brand.
Certificate Customization
Customize certificates for each course.Certificate Settings
Certificate Templates
Edit certificate templates inapps/lms/lib/certificates/:
Feature Flags
Enable or disable features through platform settings.Available Settings
In theplatform_settings table:
Course Settings
Customize learning experience per course:Progress Tracking
Quiz Configuration
Lesson Types
Supported lesson types:- video - Video content with progress tracking
- text - Rich text content (Tiptap editor)
- mixed - Combination of video and text
Custom Components
Extend EaseLMS with custom components:Add Custom Page
Create a new page inapps/lms/app/:
Add to Navigation
Editapps/lms/components/navigation.tsx to add menu items.
Advanced Customization
Modify Database Schema
To add custom fields:- Add column in Supabase SQL Editor:
-
Update TypeScript types in
apps/lms/types/ - Update forms and components to use new fields
Custom Authentication
EaseLMS uses Supabase Auth. To customize:- Modify sign-up flow in
apps/lms/app/auth/ - Add OAuth providers in Supabase dashboard
- Customize email templates in Supabase
Troubleshooting
Branding changes not appearing
- Clear browser cache
- Check that changes were saved in database
- Restart development server
Payment gateway not working
- Verify API keys are correct
- Check webhook configuration
- Review payment gateway dashboard for errors
- Test with provided test cards
Emails not sending
- Verify SendGrid API key
- Check sender email is verified
- Review SendGrid activity log
- Check spam folder
Next Steps
- Review environment variables for all configuration options
- Set up deployment for production
- Explore the codebase to understand component structure