Hosting the lesson is the easy part. The hard part is the student reaching the last one.
Video on a CDN, player, upload, a folder of modules. That's the product's foundation, not its argument. The argument is the next step: how many students finish, and at which step the ones who didn't finish stopped.
A student who stopped at lesson 3 doesn't show up in any support queue. They show up on a step of the track's funnel, and only there. This page is about the five things the product does with that number: measure where the student stops, control the pace at which they receive content, demand a response instead of an audience, count study days instead of isolated sessions, and give those who finish somewhere to land. Each section also states what it doesn't do.
You know how many bought. You don't know which lesson they stopped at.
Each track has its own analytics screen. It doesn't show views: it shows, step by step, how many students completed each lesson, quiz, live event, or track milestone.
The drop-off shows up at a specific step. It stops being "people vanish somewhere in the middle" and becomes "almost everyone completes step 4, and the drop is at step 5." Then you look at step 5 and decide what to do with it.
Next to the funnel: total and active enrollments, completed, abandoned, completion rate, and the average time in days between starting and finishing. On each student's profile: the last lesson they studied, progress in each course, which tracks they're on, and which certificates they already have.
At the community level there's a dedicated retention lens, with study-streak distribution and the list of who stopped showing up.
The step-by-step funnel belongs to the track. A course published outside a track has per-student progress, not a step-by-step breakdown.
You decide what the student can open today.
The track is the layer that holds content back. Each step has an unlock rule: sequential, always available, after a specific step, or starting on a date. A scheduler runs hourly and releases whatever has come due — you don't have to remember to open module 3 on Monday.
Steps can be optional. A track can require another track, or another course, as a prerequisite. A track has draft, publish, version number, and duplication: the next edition starts from a copy of the previous one, instead of starting over.
When the sale is by class, the class has a start date, an end date, and a limited number of seats — the limit is checked at enrollment. The scheduler flips the class from scheduled to in progress at the start time and closes it once the end date passes.
The class release schedule exists in the scheduler and the API, but the class form in the dashboard only creates name, dates, and seats. Building the step-by-step schedule today is an API call.
Four of the nine lesson types demand a response.
The quiz has a question bank reusable across courses, with attempts, submissions, and abandonment logged, a history of their own attempts for the student, and a report of where each quiz is being used.
In the assignment, the student submits text, a file, or a link. The submission moves through four states — submitted, under review, approved, needs revision — with the grader's note and a record of who graded it and when. It's the grader who closes the state, not the student.
The discussion lesson points to a feed space. The conversation happens in the community, where other students see it, not in a comment field below the player.
The live lesson points to an event, with the Zoom meeting created through OAuth and attendance logged on the lesson itself.
The other five do the groundwork: video, text, download, external link, and milestone — with attachments per lesson and a free sample lesson for when you want the course to sell itself.
Studying today and tomorrow counts differently than cramming it all into one Saturday.
Learning XP is configurable per action, and per lesson type: lesson completed, text lesson, download, external link, discussion, milestone, module, course started, course completed, quiz passed, assignment approved, track step, track completed, event attendance. Each with its own value, and most with their own on/off switch. You decide what earns points in your operation instead of inheriting someone else's rule.
The daily cap is a single one, for the whole community — not a cap per action.
The study streak tracks consecutive days and a record, with configurable day counts and bonuses.
There's no automatic reminder for a stalled lesson: the daily email carries highlights and upcoming community events, and no notification type is tied to a lesson, course, or track. Whoever vanished mid-track shows up in the previous section's report, but no message goes out to them from here.
The student finished. Now they have something to show.
When the student completes a track with certificates enabled, the system issues it on its own. A unique serial number, the student's name, and the track's title are stored in the record, and there's a page at /certificados/[serial] that anyone can open without logging in.
They send the link. HR, the client, or the next cohort verifies it at the source. It isn't a file that circulates as an attachment. You can also issue one by hand when you need to.
On your side, completion generates another kind of proof: the course review is only unlocked for whoever passed a minimum progress threshold, set by you. A rating from whoever studied, not whoever just opened it.
The certificate is issued on track completion, not course completion — to certify a course, create a track inside it. It's a verification page, not a file with its own design: there's no template editor and no PDF generation, and revocation exists in the service but isn't yet exposed through a route or a screen.
Continues in
Who enrolls isn't you. Your gateway's notice turns into course access: 01 · Sales →
They enrolled and stopped at lesson 4. Where that shows up with a name, a lesson, and a date: 05 · Retention →