Frappe Learning
Easy to use, open source Learning Management System
Alternative to: teachable, thinkific, udemy
About
Versions (84)
v2.61.0
2026-07-30What’s Changed
- feat(persona): redesign onboarding as a data-driven card flow by @raizasafeel in https://github.com/frappe/lms/pull/2574
- fix: lesson code blocks render, highlight, and store correctly by @raizasafeel in https://github.com/frappe/lms/pull/2580
- fix(settings): checkbox toggle doesn’t render until another field changes by @raizasafeel in https://github.com/frappe/lms/pull/2581
- fix(styles): import frappe-ui list stylesheet explicitely by @raizasafeel in https://github.com/frappe/lms/pull/2586
- feat: raven membership integration by @raizasafeel in https://github.com/frappe/lms/pull/2591
- fix(lessons): inline pdf.js PDF viewer for iOS Safari + macro fixes by @raizasafeel in https://github.com/frappe/lms/pull/2592
- fix: miscellaneous fixes (sidebar request dedup, popovers, 404 routes, signup, lesson conversion) by @raizasafeel in https://github.com/frappe/lms/pull/2597
- fix(a11y): keyboard operability and semantic html across frontend by @raizasafeel in https://github.com/frappe/lms/pull/2598
- fix: drop the razorpay dependency by @raizasafeel in https://github.com/frappe/lms/pull/2604
- fix(course_lesson): resolve private lesson media whose file_url contains _ or % by @raizasafeel in https://github.com/frappe/lms/pull/2601
- fix(course_lesson): resolve lesson media with the query builder, not raw SQL by @raizasafeel in https://github.com/frappe/lms/pull/2608
- fix: count a coupon redemption once per payment that was actually paid by @raizasafeel in https://github.com/frappe/lms/pull/2602
- fix: broken access control by @raizasafeel in https://github.com/frappe/lms/pull/2607
- fix(settings): seed Google Meet account form on mount by @raizasafeel in https://github.com/frappe/lms/pull/2609
- fix: lesson editor formatting, profile permissions, and Razorpay order creation by @raizasafeel in https://github.com/frappe/lms/pull/2613
- fix: count a coupon redemption once per payment that was actually paid (backport #2602) by @mergify[bot] in https://github.com/frappe/lms/pull/2617
- feat: give every list page one declarative layout by @raizasafeel in https://github.com/frappe/lms/pull/2622
- fix(link): Open link in new tab to avoid context by @Bowrna in https://github.com/frappe/lms/pull/2621
- fix(patches): batch fix_progress_percentage so migrate survives large sites by @raizasafeel in https://github.com/frappe/lms/pull/2623
- fix(billing): accept any casing of an Indian state at checkout by @raizasafeel in https://github.com/frappe/lms/pull/2627
- fix(patches): batch fix_progress_percentage so migrate survives large sites (backport #2623) by @mergify[bot] in https://github.com/frappe/lms/pull/2626
- feat: make student view a real route instead of editor mode by @raizasafeel in https://github.com/frappe/lms/pull/2629
- feat(raven): let Moderators manage the Raven integration by @raizasafeel in https://github.com/frappe/lms/pull/2632
- fix(settings): stop Settings > Raven dumping a traceback when raven_integration is absent by @raizasafeel in https://github.com/frappe/lms/pull/2633
- fix(lessons): serve the inline PDF viewer only on WebKit, and stop it hanging by @raizasafeel in https://github.com/frappe/lms/pull/2631
Full Changelog: https://github.com/frappe/lms/compare/v2.60.1…v2.61.0