Features
Every feature in one place.
Build courses, track completion, and prove it, without stitching together five tools.
Courses & content
Build structured courses with the content types your learners actually need.
Text blocks
A rich-text editor with headings, lists, quotes and inline formatting. Authored safely, no raw HTML leaks.
Video
MP4 and WebM. Duration + thumbnail extracted automatically on upload.
Documents
PDF, Word, and PowerPoint. Office files are automatically converted so every learner sees the same thing, regardless of device.
Quizzes
Single- and multi-choice questions with configurable pass percentage. Passing advances the course.
Modules
Group related blocks into modules. Reorder with drag.
Completion rules
Four modes: all required, all blocks, minimum time, or percentage of blocks.
Assignments & deadlines
Pick a course, pick who, set a deadline. The rest happens on its own.
Target users or departments
Individual assignments. Department fan-out expands automatically to every member.
Deadlines
Set a due date per assignment. Show urgency on learner dashboards with green/amber/red chips.
Automatic reminders
Reminders fire at 7, 3, and 1 days before the deadline, in your tenant's configured timezone, at 09:00 local.
Bulk CSV invite
Upload a CSV with name, email, role, and department. Per-row success or failure in one screen.
Course prerequisites
Block a course until the learner has completed its prerequisites.
Department hierarchy
Nested departments. Assign to a parent, reach every child.
Attention enforcement
A "completed" badge that means watched, not clicked through.
Auto-pause on focus loss
Videos pause the moment the tab is hidden, the window blurs or the browser is minimised. Cross-checked every two seconds as a safety net for browsers that throttle visibility events.
Forward-skip lockout
Dragging the timeline past the furthest naturally-watched moment snaps back. The "+15 s" controls in Picture-in-Picture and system media controls rewind instead of jumping ahead. Free seek returns once the video is finished.
Per-page dwell
Per-block minimum-seconds-per-page on PDF and slide blocks. Next only unlocks once every page has been on screen long enough, with a live countdown so learners see exactly what's left.
Per-block reading time
Set a minimum reading time on text blocks. The viewport observer waits the configured number of seconds before crediting the block, with a counter that updates every half second.
Required vs optional
Mark a block optional and Next unlocks immediately, no clutter, no enforcement. Mark it required and all the gates apply. The audit log records which path each learner took.
End-of-content gating
Videos only flag complete when the playhead is genuinely at the end of the media. Tab teardown, source aborts and partial loads can't falsely trip completion.
Progress & certificates
Every block view is tracked. Every completion is provable.
Type-aware tracking
Text blocks unlock once the configured reading time elapses. Videos require play-through. PDF and slide blocks require dwell on every page.
Auto-completion
The moment completion criteria are met, the course flips to completed and the audit log records it.
PDF certificates
Generated on completion, landscape A4, with a unique verification code. Stored privately, downloadable by the learner.
Verification codes
Every certificate carries a 12-character code so it can be cross-checked independently.
Progress dashboards
Per-learner + per-course percentage. Realtime updates as learners move through content.
Retake quizzes
Quiz not passed? Retry. Only passing attempts mark the block as viewed.
Reports & audit
The data an auditor actually wants, ready to export.
Course completion report
Every learner for a course with status, progress %, started/completed dates, and due date.
Team transcript
Per-user rollup across every course: assigned, completed, overdue, average %.
Streaming CSV exports
UTF-8 with BOM so Excel opens them cleanly. No row limits on paid plans.
Append-only audit log
27 event types from invites to certificate issuance. Model-level guards prevent updates or deletes.
Role-scoped audit viewer
Company admin sees everything; course manager sees course events; employee sees only their own.
Platform audit (super admin)
Tenant suspensions, activations, and impersonations land in a separate platform-level log.
Passkey security
Passkeys are a feature of the product, not a checkbox.
Passkey sign-in
Face ID, Touch ID, Windows Hello, or a security key, whichever your team already uses.
Multiple devices
Register as many passkeys as you need. Revoke any lost one from /me/devices.
Magic-link recovery
Lost every device? 30-minute single-use sign-in link, rate-limited 3/hour per email and 10/day per IP.
Email verification
Signed URLs with 60-minute TTL. Email change invalidates old links automatically.
Optional OAuth
Google + Microsoft sign-in for existing users, when you want it. Passkey-first either way.
No passwords anywhere
No password column. No reset flow. Nothing to phish.
Team administration
Roles, departments, and tenant settings that stay out of your way.
Four roles
Company admin, course manager, employee, plus platform-level super admin for LearnLedger staff.
34 permissions
Fine-grained access control with union-based resolution across multiple roles per user.
Departments
Hierarchical, nested, soft-delete safe. Used for assignments, reporting, and reminders.
Invite flow
Signed URLs (72h). Invitee accepts, lands on the dashboard with the right role.
Tenant branding
Upload a logo and pick a primary colour. Applied to sidebar, emails, and certificates.
Tenant timezone
Reminders and digests dispatch at 09:00 local, not 00:00 UTC.
Public API
REST endpoints for the integrations your team actually builds.
Personal access tokens
Mint tokens from the in-app settings page. Each call is scoped to your tenant.
/api/v1/courses
List + detail. Filtered by assignment for learners, full catalog for admins.
/api/v1/progress
Per-course progress rollup. The shape your BI tool expects.
/api/v1/certificates
Issued certificates with verification codes + download URLs.
Slack webhooks
Drop a Slack incoming-webhook URL in settings. Completions post into your channel.
Automated invoices
Subscription invoices are generated and reconciled automatically, your finance team gets clean records, every month.