Skip to content
§
§ · case study

EdTech, $40K to $310K MRR on hybrid LMS.

This archetype comes from real Shopify + custom LMS builds we have shipped for course businesses. Shopify runs checkout. The custom LMS runs learning. One customer identity ties the two together.

§ 01 · archetype · course platform

A course business grew from $40K to $310K MRR by refusing the all-in-one LMS.

A course business grew from $40K to $310K MRR by unbundling its all-in-one LMS into Shopify plus a custom learning platform. Teachable, Thinkific, Kajabi, and Podia all sell one promise: checkout, billing, course player, community, and email under a single login.

This brand ran on Teachable for six months. Then it hit the ceiling every all-in-one eventually hits. The checkout works, but not at Shopify level. The player works, but not at custom-brand level. The community is an afterthought. And the data sits in four separate dashboards.

So we unbundled it. Shopify kept checkout and billing. A custom Next.js LMS ran the learning experience. Klaviyo ran email. Yes, this architecture has more moving parts. The MRR curve says it was the right call.

MRR growth
7.7x

$40K at month 1. $310K at month 18. Enrollment volume (+240%) and pricing power from the certificate tier drove growth in equal parts.

completion rate
62%

Above the industry 12-15% average. Completion is the single biggest driver of referral and subsequent course purchase.

churn
3.2%

Monthly churn on the membership tier. Certificate-track users churn at 1.8%; course-only users at 4.6%.

metric rise · $40K → $310K MRR · 7.8x in 18 months
§ 02 · the challenge

All-in-one works until the all-in-one becomes the ceiling.

All-in-one platforms work beautifully at the start, then they cap you. This founder had spent a year teaching small cohorts on Zoom. The content was strong. Completion was strong. NPS was strong. Teachable made a sensible first home: it bundled checkout, hosting, and course delivery from day one. Then, at $40K MRR, the cracks showed.

Start with checkout. Teachable converted 22% worse than Shopify on the same traffic. The reason is Shop Pay: it saves 40 percent of returning buyers at the account creation step.

The course player had its own limits. It was fine for a lecturer. But it could not ship a certificate, run proctored quizzes, or host a community without awkwardly bolting on Circle or Discord.

The unbundle decision came down to one question. Which single improvement would move the MRR curve the most? The answer was enrollment conversion rate, and that is a checkout problem.

Shopify has the best checkout in the world. Moving checkout there put customer records, payment, refunds, and subscription billing in one system. Every other function became downstream of that.

The real risk was fragmentation: two systems, two databases, two admin surfaces, two failure modes. The architecture below is how we kept that from becoming the founder's problem.

§ 03 · the hybrid architecture

Two systems. One customer.

EdTech archetype hybrid architecture: Shopify (checkout, billing, customer) bridged via webhooks to a custom LMS (player, certificates, community)
Fig. 1 · the hybrid architecture · two systems, one customer identity
shopify handles
  • Checkout and Shop Pay (22% conversion lift vs Teachable)
  • Subscription billing via Shopify Subscriptions for membership tier
  • Customer record and order history (the system of record)
  • Refunds, dunning, retention flows
  • Marketing site and course catalog pages (Shopify Online Store 2.0)
custom LMS handles
  • Course player with chapter navigation, video transcripts, notes
  • Progress tracking across chapters, quizzes, assignments
  • Certificate issuance (PDF + shareable URL + LinkedIn credential)
  • Community layer (threads, comments, instructor Q&A)
  • Admin dashboard for instructor course authoring
§ 04 · the webhook bridge

Two databases. One source of truth for access.

Shopify is the authoritative customer record. The LMS holds a mirror customer table synced via webhook. The LMS computes access entitlements, but it sources them from Shopify order tags and metafields.

When a subscription lapses in Shopify, a webhook revokes LMS access within 60 seconds. When a refund fires in Shopify, the LMS archives that customer's course history. The logic is boring on purpose.

  1. Customer creates account on Shopify → webhook fires → LMS creates mirror user with customer_id reference
  2. Customer purchases course → Shopify order webhook → LMS grants entitlement keyed by Shopify product_id
  3. Customer completes chapter → LMS stores progress locally; no Shopify round-trip
  4. Customer requests refund → Shopify order refund webhook → LMS revokes entitlement + archives progress
  5. Customer cancels subscription → Shopify subscription cancellation webhook → LMS revokes membership access at period end
  6. Instructor publishes new course → LMS admin → push product record to Shopify via API for sale
§ 05 · the stack

What actually runs the platform.

checkout

Shopify Plus with Shop Pay, Apple Pay, Google Pay. Subscription tier via Shopify Subscriptions.

LMS frontend

Next.js 16 App Router with Server Components. Deployed to Vercel edge.

LMS database

Postgres on Neon. Users, courses, progress, certificates, community threads.

video

Mux for video hosting and adaptive playback. DRM on premium courses.

webhook bridge

Inngest for Shopify webhook → LMS entitlement sync with retries.

certificates

Custom PDF generator (PDFKit) + LinkedIn credential integration + unique verification URL.

Eighteen months of compounding MRR.

EdTech course platform archetype MRR growth: $40K to $310K across 18 months with inflections at certificate tier (m3), community (m9), enterprise plan (m15)
Fig. 2 · the MRR ladder · 18 months, three inflection points
from the founder · archetype composite
"Teachable was good enough to start. It was not good enough to scale. The hybrid architecture felt like more work up front, and it was. The MRR curve paid it back in six months."
Composite quote
Patterns from multiple course-business founder conversations

Running a course business past the all-in-one ceiling?

The hybrid architecture is 12 to 20 weeks to ship, depending on course catalog depth. Checkout migration first, LMS second, certificate layer third. Scoped quote in 48 hours.

Published · Last updated .

Online now

Talk to a Developer Now

Reply