Send us a message and we'll get back to you shortly.
Build a Next.js course storefront for Moodle with Stripe checkout into your own Stripe account: free on a cubite.io subdomain, or on your own domain with Cubite's Growth plan ($290/mo). An alternative to WordPress + WooCommerce for selling Moodle courses.
The Moodle ecommerce stack you actually want: a Next.js storefront with indexable course pages, Stripe checkout paid straight into your own Stripe account, and an SSO plugin that signs students into Moodle with no second login screen. It's free on a cubite.io subdomain; your own domain comes with Cubite's Growth plan ($290/mo or $2,900/yr). No WordPress required. Cubite is one of the options compared here and publishes this guide. If you need recurring subscriptions today, or want checkout to stay inside Moodle, the free paygw_stripe plugin or Edwiser Store may fit you better.
Moodle shows logged-out visitors its course listings and short summaries, but course pages sit behind a login unless you turn on guest access, so Google sees thin catalog pages. Moodle core's built-in payment gateway is PayPal; Stripe needs a third-party plugin such as the free paygw_stripe, and checkout then lives on Moodle's enrollment pages. There's no marketing page builder, its blog is a user blog rather than a marketing blog, and its search settings stop at letting search engines in or keeping them out.
The standard fix is to bolt on a WordPress site, then a WooCommerce store, then Edwiser Bridge to sync the two. You end up maintaining two CMSes, paying for plugin extensions every year, and debugging sync failures every week. Reviews of Edwiser Bridge call out exactly this: sync drift and SSO login loops.
Cubite replaces the entire stack with one Next.js storefront. You switch on Moodle web services, install one Moodle plugin, paste one shared secret, connect your Stripe account, and you're selling.
In your Moodle admin: enable Web Services, enable the REST protocol, create an external service with the eight required functions, generate an API token, then install the open-source auth_cubite plugin (drag-and-drop ZIP), enable it under Manage authentication, and paste the shared secret. Cubite checks the token, confirms all eight functions are in the service, and pulls your course catalog over the standard Moodle REST API.
Your courses, your pricing, your marketing copy, your blog, your SEO metadata: all editable in Cubite's admin and published as crawlable pages Google can index.
When a signed-in student buys a course with Stripe checkout, Cubite creates their Moodle account and enrolls them in the Moodle course.
If you've ever evaluated Moodle ecommerce, you've seen the same prescription: install WordPress, install WooCommerce, install Edwiser Bridge or MooWoodle, configure two databases, sync the user tables, debug the SSO loop, and renew plugin licenses every year. Two CMSes, five moving parts, recurring bills.
Cubite skips the WordPress layer entirely. The storefront is a Next.js app on your cubite.io subdomain, or on your own domain with Cubite's Growth plan ($290/mo). Stripe checkout is built in. Marketing pages are first-class, not retro-fitted. Two pieces of software (Cubite + Moodle), not five.
If you searched "moodle without wordpress," "wordpress moodle integration alternative," or "moowoodle alternative": Cubite is one answer, and the comparison below covers the others.
Your storefront is a Next.js site on your cubite.io subdomain, or on your own domain with Cubite's Growth plan ($290/mo). Course pages have title tags, meta descriptions, OG images, Course schema markup, and clean canonical URLs: the things Google needs and Moodle's /course/view.php?id=42 URLs don't give you.
Edit hero images, FAQ blocks, SEO fields and pricing copy from a clean admin. Run a blog on the same domain. Stack landing pages for paid campaigns. Publish a sitemap.xml that robots.txt points to, and connect Google Search Console to see your search data in Cubite. This is a real website, not a Moodle skin.
auth_cubite is the Moodle SSO plugin we ship with Cubite (and publish open source). When a student clicks "Start Course," Cubite issues a signed JWT (HMAC-SHA256, 60-second expiry), redirects to your Moodle's auth_cubite endpoint, the plugin validates the signature, and complete_user_login() sets the Moodle session. No Moodle login screen in between.
This is not a sync: there's no fragile two-way user table replication and no shared password. Cubite is the identity source of truth, and every sign-in refreshes the student's first and last name in Moodle from Cubite.
Run many storefronts on different domains from one Cubite account, each connected to its own Moodle instance and paid into its own Stripe account. Your reseller business, your white-label partners, your enterprise customers, all from one admin.
Every storefront gets its own random admin bypass link to Moodle's own login form, so one tenant's bypass link does nothing on another tenant's Moodle.
auth_cubite ships with three layers of enforcement built in:
/course/index.php, /course/search.php, /course/index.php?categoryid=N redirect non-admins to your storefront/auth/signin and /auth/signup handle accounts; your Moodle admins get a per-tenant bypass link, and keeping Moodle's self-registration off keeps its own signup page closedMoodle becomes a pure delivery engine. Every sale runs through your storefront's checkout and is paid straight into your own Stripe account; Cubite takes no cut.
Edwiser Bridge users have one recurring complaint: a re-sync overwrites your marketing copy. Cubite's re-sync keeps the cover images, SEO fields and prices you set; course names and summaries still follow Moodle.
The first sync pulls your Moodle catalog. After that, the parts you set in Cubite (cover images, about-page images, SEO titles and descriptions, prices) survive every re-sync; course names, summaries, URL slugs and dates follow Moodle, so edit those in Moodle. You can also build pure-storefront items: native Cubite courses, learning-path bundles and waitlisted pre-launches that don't need a Moodle course behind them.
Feature | Cubite | Edwiser Bridge | Edwiser Store | Enrollait | Moodle + paygw_stripe | Enrolmart |
|---|---|---|---|---|---|---|
| Price | Free on a cubite.io subdomain; Growth $290/mo or $2,900/yr for your own domain | Free base plugin; Bridge Pro $179/yr or $449 lifetime, plus WordPress hosting | $199/yr or $597 lifetime | $34.99-$69.99/mo, or $360-$710/yr billed yearly | Free | Not published |
| No WordPress required | ✓ | ✗ | ✓ | ✓ | ✓ | partial |
| Native marketing site + blog | ✓ | partial (via WP) | ✗ | ✗ | ✗ | partial |
| Real SEO on course pages | ✓ | partial | ✗ | ✗ | ✗ | partial |
| Stripe checkout | ✓ | ✓ (via Woo) | ✓ | ✓ | ✓ | ✓ |
| Recurring subscriptions | ✗ | ✓ | ✓ | ✗ | ✓ | ✗ |
Competitor prices checked 2026-10-19 on each vendor's own pricing page or plugin listing. Pricing and features change, so verify on each vendor's site before citing. If you need subscription billing or B2B seat licensing today, talk to us first.
Edwiser Bridge is a popular WordPress-Moodle integration, with 4,000+ active installs on WordPress.org, and not without problems. The recurring pain in public reviews and Moodle forums:
Head-to-head:
Cubite | Edwiser Bridge | |
|---|---|---|
| Price (checked 2026-10-19) | Free on a cubite.io subdomain; Growth $290/mo or $2,900/yr for your own domain | Free base plugin; Bridge Pro $179/yr or $449 lifetime, plus WordPress hosting |
| Stack | Cubite + Moodle | WordPress + WooCommerce + Edwiser + extensions |
| SSO model | Signed JWT, 60s expiry, no shared session | Session sync (drifts) |
| WordPress required | No | Yes |
| Yearly renewal | None on a cubite.io subdomain; Growth for your own domain renews monthly or yearly | Bridge Pro yearly, or a $449 lifetime license |
If you're paying for the Edwiser stack today, the migration path is straightforward: install auth_cubite, point Cubite at your existing Moodle, sync your courses, freeze your WordPress shop, redirect customers.
Enrollait is a direct rival in positioning: also a storefront layer for Moodle, also Stripe-direct, also no-WordPress. The differences are billing model and breadth.
Cubite | Enrollait | |
|---|---|---|
| Pricing (checked 2026-10-19) | Free on a cubite.io subdomain; Growth $290/mo or $2,900/yr for your own domain | $34.99-$69.99/month, or $360-$710/year billed yearly |
| Native blog + marketing pages | ✓ | ✗ |
| Custom domain | With Growth ($290/mo or $2,900/yr) | Enterprise tier only ($69.99/month or $710/year) |
| Open-source SSO plugin | ✓ | ✗ |
You want to own your platform and keep more of each sale: Cubite takes no cut, while entry plans on hosted course platforms can add a per-sale fee. Moodle is widely used, and it's free, open-source (GPL) software. Cubite is a storefront that makes selling on it as nice as Teachable.
You're paying for WordPress hosting, WooCommerce, Edwiser Bridge Pro, and an admin who fixes sync drift every week. Cubite is one Next.js app and one plugin: free on a cubite.io subdomain, with Cubite's Growth plan ($290/mo or $2,900/yr) for your own domain.
You host Moodle for many customers and need a real branded storefront for each one. Cubite runs many branded storefronts from one account, each connected to its own Moodle.
You already run Moodle internally. You need a public-facing buying experience that your marketing team can actually edit. Cubite gives you that without a six-month integration project.
A Moodle storefront is a separate, public-facing website that markets and sells your Moodle courses and enrolls buyers into Moodle. Moodle shows logged-out visitors its course listings and short summaries, but course pages need a login unless guest access is on, so a dedicated storefront is a practical way to run real marketing, SEO, and ecommerce alongside Moodle.
Cubite is a complete Moodle storefront (Next.js front-end, Stripe checkout, signed-JWT SSO, and a Moodle plugin), free on a cubite.io subdomain, with your own domain and branded sender email on Cubite's Growth plan ($290/mo or $2,900/yr).
Edwiser Bridge connects Moodle to a WordPress site running WooCommerce, so you maintain two CMSes and pay for an Edwiser Bridge Pro license. Cubite replaces the whole stack with one Next.js storefront and one Moodle plugin. No WordPress, no plugin licenses to renew, and no two-way sync drift: Cubite is the source of truth, Moodle is the classroom.
If you're hitting sync errors or login loops with Edwiser, Cubite is built specifically to fix those problems.
No. Cubite is a self-contained Next.js application. The classic "Moodle ecommerce" setup pairs Moodle with WordPress, WooCommerce and a bridge plugin, which means three pieces of software to maintain. Cubite is one.
You keep your existing Moodle. Cubite handles everything in front of it.
Setup is a one-time, ~15-minute process inside your Moodle admin. You'll enable Web Services, enable the REST protocol, create an external service with eight Moodle functions, generate an API token, install the auth_cubite plugin, enable it under Manage authentication, and paste the shared secret. Cubite's connection test confirms all eight functions are in the service before you go live.
The eight required functions are: core_webservice_get_site_info, core_course_get_courses, core_course_get_courses_by_field, core_course_get_categories, core_user_create_users, core_user_get_users_by_field, enrol_manual_enrol_users, core_enrol_get_enrolled_users. If any are missing, the setup wizard tells you which one and where to enable it.
Cubite works with Moodle 4.4 or later, and the plugin's catalog lockdown needs Moodle 4.5 or later, so run Moodle 4.5 LTS or a newer release such as the current 5.3 LTS. The auth_cubite plugin uses Moodle's standard authentication API and the Hooks API.
Cubite issues a signed JWT (HMAC-SHA256) with a 60-second expiry. The student's browser redirects to your Moodle's auth_cubite endpoint, which validates the signature, finds or creates the user by email, and calls Moodle's standard complete_user_login() to set the session cookie. The student arrives in Moodle already signed in and goes straight to the course.
No password is shared: Moodle never sees the student's Cubite password, sign-in tokens expire 60 seconds after they are issued, and Cubite is the identity authority for your storefront's students.
Yes, with Cubite's Growth plan ($290/mo or $2,900/yr): run your storefront on courses.your-brand.com or any custom domain; a free site runs on its cubite.io subdomain. Cubite handles SSL, sitemaps, and canonical URLs, and the Moodle plugin picks up your storefront URL from the SSO token, so each Moodle follows the storefront it is paired with.
Not yet. Today, Cubite sells one-time course purchases and learning-path bundles through Stripe checkout. If you need recurring subscriptions or B2B seat licensing today, talk to us first, and we'll give you a straight answer about timeline.
For one-time course sales, you're set.
Partly. A re-sync keeps the cover image, about-page image, SEO fields and price you set in Cubite, and refreshes each course's name, summary, slug and dates from Moodle, so edit names and summaries in Moodle.
You can also sell native Cubite courses, learning-path bundles and waitlisted pre-launches that have no Moodle course behind them, through the same storefront.
Your Moodle keeps everything: all student data, course content, and progress stays where it lives. To leave, uninstall the auth_cubite plugin, move the users who sign in through Cubite to another authentication method (for example, manual accounts with a password reset), and turn self or guest enrollment back on if you used it. Your storefront content (course copy, blog posts, pages) can be pulled out through Cubite's API, and each public course, blog post and page also has a Markdown version.
We don't lock you in. The storefront is free on a cubite.io subdomain, and Cubite's Growth plan for your own domain is $290/mo billed monthly (cancel anytime) or $2,900/yr. Perpetual ($7,500 once, then $1,500/yr for maintenance and support) and Enterprise (custom, annual) are there if you need a perpetual license or a contract.