Short, focused courses taught in a mentorship voice — like a one-on-one session with your coach. Pick the skill that speaks to you and start right now.
Log into cPanel → File Manager → navigate to public_html → create folder academy → upload index.html AND OneSignalSDKWorker.js into it. Live at baxibull.co.za/academy instantly.
Go to app.netlify.com/drop → drag your project folder (containing both files) → get a free live URL in 60 seconds. Can connect a custom domain like keychi.academy later.
Post the live URL on LinkedIn, your WhatsApp groups and VCR Podcast community. Ask your audience to vote 👍👎 on Coming Soon courses — that's your real demand data.
Go to analytics.google.com → Admin (bottom left) → Create Property → choose Web → fill in your site URL.
After creating the property, find your Measurement ID — it looks like G-XXXXXXXXXX. Copy it.
Open index.html in any text editor (Notepad, VS Code). Press Ctrl+H (Find & Replace) → find REPLACE_WITH_YOUR_GA4_ID → replace with your actual ID → save. That's it.
Custom events fire automatically: course_opened, lesson_started, lesson_completed, vote_cast, push_notification_requested. Find them under Reports → Engagement → Events within 24–48 hours of going live.
course_name) to dimensions for richer filtering in reports.Go to onesignal.com → Sign up free → New App → Web Push → choose "Typical Site".
Enter your live site URL (must be HTTPS). Set the notification icon to your logo. Under "Advanced" set the service worker path to match where you've uploaded the files.
Copy your App ID from OneSignal → in index.html press Ctrl+H → replace REPLACE_WITH_YOUR_ONESIGNAL_APP_ID with your App ID.
The file OneSignalSDKWorker.js must be in the same folder as your index.html. Upload both files together. The bell 🔔 icon in the nav triggers the permission prompt.
Log into OneSignal dashboard → New Push → write your message (e.g. "🎚️ New course: Music Production is LIVE!") → Send to All Subscribers. Free plan covers unlimited subscribers.
Progress (completed lessons, earned tokens) is now saved to the browser's localStorage automatically. Users can close the tab and come back — their progress will still be there.
It's device-specific. If someone switches from their phone to laptop, progress won't follow. For cross-device sync you'll need a backend (Firebase or Supabase — both have free tiers). That's the natural next step once you validate with beta users.
Add a simple email/Google login → store progress in Firestore against the user's UID → progress follows the user across every device. This is a 1–2 day build once you're ready to invest in the platform.
Pick your interest
"Before we build anything online, you need to be comfortable at the keyboard. Let's get your fingers talking."
"Imagine waking up to sales that happened while you slept. Email marketing is that friend who works 24/7."
"Your music deserves a cover that stops thumbs. Fire artwork with free tools — no budget needed."
"You don't need a $10k studio. Audacity is a beast. Record, edit and master from your bedroom."
"A professional email setup is your digital handshake. Configure three clients like a proper IT pro."
Vote to move up the queue 👇
Get found on Google organically. Keywords, on-page SEO, backlinks and local search domination — no ads needed.
Currency markets made clear — candlestick charts, risk management, real trade setups. No hype, just practical skills.
Craft lyrics that hit deep. Hooks, verses, rhyme schemes, melody writing and finding your unique artistic voice.