Coursio
Coursio is a multi-school recorded-course platform you can run as your own SaaS for isolated, branded creator schools.
Coursio is a platform for running many isolated, branded creator schools on one recorded-course engine. You — the operator — own the instance. Each school owns its brand, its domain, its courses and its learner relationships. It is deliberately not a public cross-creator marketplace: every school is its own storefront and cannot see another school's data.
Every school stays distinct while the platform stays operable.
When several creator businesses share one installation, trust can fail in two directions at once. A school sees branding or learner activity that belongs elsewhere, while the platform team loses a reliable view of what is happening across the whole estate. The first failure turns a shared platform into a privacy and ownership concern. The second turns every intervention into a support investigation. Growth then creates more ambiguity instead of leverage: operators hesitate to onboard another school, creators question who can see their work, and routine questions about ownership take longer than the work they were meant to resolve.
- Branded creator schools
- Learner access
- Buyer control plane
Creators move from curriculum to measurable learner completion.
A course business stalls when authoring, release, assessment, and progress live as separate chores. Lessons go out in the wrong order, learners cannot tell what comes next, and a creator has no dependable way to distinguish confusion from disengagement. The damage accumulates quietly: support fills with questions, incomplete courses remain indistinguishable from abandoned ones, and each new program adds another manual checklist. A coherent learning operation matters because the creator needs to improve the course while it is running, and the learner needs a clear sense that every session advances toward a finish.
- Course builder
- Drip content
- Basic assessments
- Advanced analytics
Commercial intent stays explicit before payment rails go live.
Course revenue becomes hard to operate when a price is only a number on a page. The business cannot explain which market it was for, what access it promised, or why an old order differs from today's offer. That ambiguity becomes expensive before the first dispute: creators improvise regional pricing, support cannot reconstruct what the learner accepted, and finance treats every exception as a manual case. A product that is honest about unfinished payment setup gives the operator room to choose the right provider and transaction model without pretending that recording an order is the same thing as collecting money.
- Course commerce
- Multi-currency offers
- Regional offers
Course completion becomes proof learners can carry forward.
Finishing a course is valuable only while another person can understand what was completed and whether the record still stands. Without durable proof, the learner leaves with a screenshot, the school answers verification emails by hand, and any later change to a course blurs what the original achievement meant. The cost is not just administrative. Weak verification makes a certificate feel promotional instead of earned, while unclear revocation leaves schools choosing between deleting history and endorsing a record they no longer stand behind. A trustworthy completion record should remain legible after the learning session ends.
- Certificate issuance and verification
The platform underneath the product — counted in this product's own source, not claimed from a template. Where a row carries a list, open it to read the names behind the number.
Hover a table to isolate what it touches; click one to read its relationships. The big nodes are what everything else hangs off. organizations is referenced by 75 tables because every single record in this product belongs to an organization, and that is what makes tenant isolation a property of the database rather than something the application has to remember on every query.
all 88 tables, as text
active_boosts · admin_notifications · affiliate_attributions · affiliate_commissions · affiliate_links · affiliate_partners · analytics_daily · analytics_events · analytics_funnels · announcement_dismissals · announcements · api_key_logs · api_keys · assistant_actions · assistant_conversations · assistant_messages · assistant_usage · audit_logs · automation_log · automation_templates · certificate_issuances · certificate_policies · certificate_status_events · community_comments · community_moderation_actions · community_threads · course_coupons · course_instructors · course_modules · course_offers · course_orders · course_payment_events · courses · coursio_daily_metrics · coursio_idempotency_keys · coursio_outbox · credit_balances · credit_transactions · currencies · data_exports · data_imports · drip_releases · drip_rules · enrollments · faq_categories · faq_items · feature_flags · inbound_webhook_events · inbound_webhooks · languages · lesson_blocks · lesson_progress · lessons · marketing_audience_members · marketing_audiences · notification_log · notification_rules · notifications · organization_limit_overrides · organizations · plans · platform_secrets · platform_settings · product_purchases · products · provider_prices · push_devices · quiz_answers · quiz_attempts · quiz_questions · report_templates · roles · scheduled_tasks · school_domains · school_learner_profiles · school_profiles · seo_meta · subscriptions · theme_page_sections · theme_section_library · theme_sections · translations · user_sessions · users · video_assets · video_usage_daily · webhook_logs · webhooks
The chassis, and anything particular to this product. 4 required, 2 optional.
Runs Next 16.2.10 with React 19.2.3; the product does not declare a Node engine version.
Supabase is present as the data and authentication backend.
Five jobs are declared in `vercel.json`; another host must schedule the same work.
Provider implementations ship for Brevo, Mailgun, Resend, SendGrid and SMTP.
Optional service configuration is declared in `.env.example`.
Optional monitoring configuration is declared in `.env.example`.
Already built — plug and play
Every provider integration in this list ships wired into the product. You bring your own keys, connect them in the admin, and go live — there is no integration code to write. Nothing is resold through us: the ongoing cost is whatever these providers charge you. Capabilities marked plan-gated elsewhere on this page unlock by plan, not by extra code.
What exactly do I receive after purchase?
The complete source repository behind the live demo — 241,544 lines across the application and its database, 88 tables defined by 112 migrations that the shipped scripts apply for you, plus the seed data, the demo accounts and the setup documentation. Not a subset and not a scaffold: the same code that runs the demo you just used.
Is the live demo the same product whose source I receive?
Yes. The Coursio demo runs the delivered release (v1.0.0), and the build figures on this page are measured from that same source — not from a showcase build kept separately.
Can I test every account role before buying?
Yes — all 5 of them: Instructor, School owner, Learner, Platform operator, Platform owner. Each one is seeded in the live demo and reachable from the role board above, so you can inspect the product from the customer's side, the agent's side and the administrator's side before you decide.
Is this a complete product or a starter template?
Complete. 108 page modules and 531 HTTP operations, with authentication, roles, billing, an administration panel, background jobs and seeded demo data all wired and running. A template gives you the shape of an application; this is one you can deploy and start operating.
Can I rebrand and modify it?
Yes, without asking. The name, identity, copy, styling and code are yours to change. Rebranding and operating it as your own service is exactly what the licence is for.
What does the licence allow?
A perpetual, worldwide, non-exclusive, non-transferable licence to the product you bought and to every update released for it. The Standard licence covers one business — yours. If you deploy for clients, the Client licence covers up to five. You can modify it, rebrand it, deploy it and charge your own customers.
Can I resell the source code?
No. Reselling, redistributing, sublicensing or giving away the source itself is not permitted under either licence. You build and deliver products with it — the code stays with you.
What services and ongoing costs are required?
You bring your own accounts, so we never mark anything up and there is no ongoing cost to us beyond the purchase. Required: Node.js host, Supabase, Scheduled job runner, Email delivery. Optional: Upstash, Sentry. The table above says exactly what stops working without each one; most have usable free tiers at low volume.
How difficult is deployment?
Two ways, and most buyers use the first. The installer in your saascode dashboard walks it: you create free accounts at Vercel and Supabase, connect them, and it provisions the database, applies 112 migrations, seeds the data, deploys and verifies the result — you watch the steps go green. Or take the source and do it yourself with the shipped scripts and docs, which is the same sequence run by hand.
What updates and support are included?
Updates to that product for as long as we maintain it — no renewal fee and no expiry date on your access. Support covers download problems, defects in the code as shipped, questions about what the product does and how it is structured, and licence questions. It does not cover debugging your own modifications, building features for you, or setting up your hosting and third-party accounts.
Why does a complete codebase cost $249?
Because it was built once and is distributed many times. SaaSCode builds each product and ships the same finished release through the catalog, so the price reflects repeatable distribution — not a reduced codebase, an unfinished template, or what the same work would cost commissioned.
Do I need to be a developer?
No, for the normal path. You create free accounts at Vercel and Supabase, connect them to the installer in your saascode dashboard, and it does the deployment for you — provision, migrate, seed, deploy, verify. What it asks of you is creating two accounts and copying a token, not writing code. If you would rather deploy it yourself, or host it somewhere else, the full source and the scripts are yours to do that with. Running the product day to day needs no technical skill at all: that happens through its own interface, which is what the demo shows.
