Area: Admin plane (audit p12) · Surface: mobieusLearn course authoring (activity release rules) · Dimension: ui-ux-opportunity · Severity: minor
Teachable, Thinkific, and LearnWorlds drip content on a per-learner schedule: 'unlock module 2 seven days after this learner enrolls.' This is what makes evergreen (rolling-enrollment) courses work — every learner gets the same paced experience regardless of when they join. mobieus only supports a single fixed calendar date, which forces cohort-style courses where everyone unlocks simultaneously. A creator running an always-open self-paced course cannot pace it, weakening completion and reducing refund risk that paced drip is designed to manage.
Evidence
learn_activities (2026-06-01-learn-phase1.sql:245-247) has release_rule_kind enum('open','date','prerequisite','score') and release_after_at DATETIME. LearnActivitiesController.php:192-193 only reads release_rule_kind and a fixed release_after_at datetime. Grep for 'days_after|after_enrollment|drip_days|days_since' across learn migrations + schema returns nothing — release is a fixed wall-clock date, not relative to each learner's enrollment.
Suggested fix. Add a 'relative' release_rule_kind with a release_after_days int, evaluated against the learner's enrollment date at render/gate time. Keep the existing absolute 'date' rule for true cohort launches. Surface a clear toggle in the activity editor: 'Unlock on a fixed date' vs 'Unlock X days after enrollment'.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus