84 SHIPPED FEATURES

Built for organizations that need more than a course host.

SSO-gated access, a full Teachable import engine, a rich course builder, real-time progress tracking, and org-level admin tools — every capability described here is live in the product.

[ IMPORT ENGINE / STAGE 01 ]

Move off Teachable without touching a single lesson manually.

The import engine authenticates with your Teachable school, walks every course in the catalog, and extracts the complete curriculum hierarchy — sections, lessons, video embeds, rich text, images, and downloadable attachments. Assets are downloaded from Teachable's CDN and re-uploaded to secure storage under your organization's path prefix. Duplicate assets are detected by content hash so you never store the same file twice.

  • Catalog discovery Crawls every published and draft course in one authenticated pass.

  • Structure extraction Sections, lessons, types, descriptions — all preserved in order.

  • Media re-hosting Images and PDFs migrated to your own storage; original URLs replaced throughout.

  • Content conversion Raw Teachable HTML transformed into structured TipTap editor JSON.

  • Credentials encrypted at rest AES-256 encryption; never logged or surfaced in API responses.

Import job progress monitor showing pipeline stages and migrated asset counts

[ IMPORT ENGINE / HOW IT RUNS ]

A five-stage pipeline. One confirmation click.

  1. STEP 01 — AUTHENTICATE

    Session established

    Admin credentials are encrypted, submitted to Teachable's login endpoint, and a cookie-authenticated session is persisted for the pipeline.

  2. STEP 02 — DISCOVER

    Course catalog snapshot

    All courses and their publication status are fetched and presented for selection before any content is migrated.

  3. STEP 03 — EXTRACT

    Curriculum & content pulled

    Selected courses are walked section-by-section. Lesson HTML, video embeds, and attachment URLs are captured. Rate limiting prevents CAPTCHAs.

  4. STEP 04 — MIGRATE & MATERIALIZE

    Assets re-hosted, content written

    Images and PDFs are downloaded, deduplicated by hash, and stored in your org's asset bucket. Content is then materialized into live course records.

0.1s$ encrypt_credentials --algo aes-256
0.4s→ POST /users/sign_in [200 OK]
0.6ssession established, cookie stored
0.8s$ crawl_catalog --school acme.teachable.com
1.2sfound 14 courses (11 published, 3 draft)
1.5scatalog snapshot saved → selection UI
2.0s$ extract_curriculum --course intro-to-finance
3.1s8 sections / 47 lessons / 23 attachments
3.4sHTML → TipTap JSON ✓
4.0s$ migrate_assets --deduplicate
5.2s19/23 unique (4 deduplicated, 0 failed)
5.8scourse live at /acme/courses/intro-to-finance
Learner course catalog showing enrolled courses with progress indicators

[ LEARNER EXPERIENCE / CATALOG + PLAYER ]

The learner lands, logs in once, and never thinks about credentials again.

After SSO authentication, learners see a branded course catalog scoped to their organization. Enrollment is one click. The lesson player renders video embeds, rich text body, and downloadable attachments — with a persistent sidebar showing every lesson and a real-time completion indicator per section. Previous/next navigation marks lessons complete as learners move through.

  • Branded catalog Org logo and primary color applied to every learner-facing page.

  • Video + rich text + attachments YouTube, Vimeo, Wistia, and Loom embeds alongside formatted lesson bodies.

  • Progress sidebar Visual completion checkmarks on every lesson; resume from exactly where you left off.

  • Mobile-responsive player Curriculum drawer replaces persistent sidebar on phones — no layout breakage.

  • Course completion milestone Completion timestamp recorded when the final lesson is marked done.

[ SSO / IDENTITY LAYER ]

Your identity provider. Your learners. Zero separate passwords.

Each organization connects its own OIDC or SAML 2.0 provider — Okta, Azure AD, ADFS, or any compliant IdP. Sessions expire with the provider token. Stale sessions force re-authentication rather than staying open indefinitely.

OIDC + SAML 2.0

Both protocols supported. Dynamic provider loading per org subdomain or slug means one platform serves every tenant's IdP.

Per-tenant provider config

Entity IDs, metadata URLs, certificate fingerprints, and attribute mappings stored independently per organization — changes in one tenant never affect another.

Session expiry aligned to IdP

Token lifetime from the identity provider drives session duration. No indefinite access via stale cookies.

[ COURSE BUILDER / AUTHORING ]

Build a course from scratch or pick up where the importer left off.

A multi-step creation wizard gets a new course live in minutes. The drag-and-drop curriculum editor lets instructors reorder sections and lessons visually. The TipTap-based lesson editor supports headings, lists, code blocks, inline images, and video embeds from YouTube, Vimeo, Wistia, and Loom. Pre-publish validation checks that the course has at least one published section before it goes live.

  • Rich text editor WYSIWYG with inline image upload.

  • Video embeds Paste any YouTube, Vimeo, Wistia, or Loom URL.

  • Drag-and-drop reorder Optimistic updates for instant feedback.

  • Lesson attachments PDFs and files attached per lesson.

  • Course thumbnail JPEG, PNG, WebP upload with size validation.

  • Publish controls Draft to Published with a pre-publish checklist.

Dashboard overview showing course catalog and learner progress widgets

[ ADMIN TOOLS / REPORTING + MANAGEMENT ]

Admin dashboards that answer the questions you actually ask.

Activity dashboard showing audit log and admin action history
  • Completion summary widget Completion rates, total enrollments, and active learner counts across all courses — one glance at the health of your learning program.

  • Per-course progress table Every enrolled learner's completion percentage, lessons done, and enrollment date. Spot who hasn't started and who finished yesterday.

  • CSV export Learner name, email, enrollment date, completion percentage, and completed lesson list — ready for HR reporting or offline analysis.

  • Enrollment management Manually add or remove individual learners. Bulk-enroll via CSV upload. Search and filter by status.

  • Member directory Every SSO-authenticated user: name, email, last login, enrollment count.

  • Audit log Immutable record of SSO config changes, enrollment edits, course publishes, and import starts.

[ PLATFORM FOUNDATION / INFRASTRUCTURE ]

Multi-tenant by design. Every query scoped to its organization.

Every table is partitioned by organization ID. No query touches another tenant's data. Subdomain and path-prefix routing resolve the correct org context before any request reaches application logic.

Tenant-scoped data isolation

Org ID partition keys on every table. Cross-tenant data leakage is structurally prevented, not just guarded by application logic.

Subdomain + path routing

acme.platform.com or /org/acme — both resolve correctly. True multi-tenant URLs with no per-tenant deployment.

Role-based access control

Org admins and learner members are distinct roles. Course builder, reporting, enrollment management, and SSO config are admin-only surfaces.

Private asset delivery

All downloads served via short-lived signed URLs generated server-side on each page render. No permanent public links for org content.

Background job infrastructure

Inngest-powered async workers handle import pipelines, email delivery, data purge jobs, and webhook dispatch — none blocking the request thread.

GDPR soft-delete + PII purge

Soft deletion for courses, lessons, and users. A scheduled job permanently purges records and stored assets after a configurable retention window.

[ ORG SETTINGS / BRANDING + CONFIGURATION ]

Your organization's name on the door. Your colors on every page.

Upload your org logo, set a primary brand color, and configure your SSO provider — all from a single settings area. The branding applies across the learner catalog, lesson player, and dashboard. The SSO configuration UI walks you through OIDC discovery URL or SAML metadata entry with a connection-test step before saving.

  • Logo + brand color Applied to all learner-facing pages for white-label appearance.

  • SSO configuration UI OIDC or SAML metadata input with a live connection test before committing.

  • Danger zone controls Full org offboarding with mandatory confirmation before data purge.

Team management view showing organization members and their roles

[ PROGRESS TRACKING / LEARNER + ADMIN ]

Progress data that flows from the first click to the final certificate.

LEARNER VIEW

The learner dashboard shows enrolled courses with visual progress bars and a quick-resume button. Each lesson marked complete updates the sidebar completion indicator and the overall course percentage in real time. When the final lesson is done, a completion record is written and the course shows as finished on the dashboard.

  • Lesson completion API Completion timestamp stored on mark; course percentage recalculated immediately.

  • Attachment download tracking Timestamped event logged each time a learner downloads a file.

  • Course completion detection Final lesson triggers enrollment completed_at and a dashboard completion badge.

ADMIN VIEW

Administrators see the same data from the other side. The per-course progress table lists every enrolled learner with their completion percentage, lesson count, and enrollment date. The organization-wide widget gives an instant aggregate view. CSV export covers all fields HR reporting typically needs without a separate BI tool.

  • Per-course progress table Enrollee-level breakdown with percentage and activity date.

  • Org-wide completion widget Rates, enrollment counts, and active learners across all courses.

  • CSV export Name, email, enrollment date, percentage, lesson list — offline-ready.

84
Shipped features
SAML + OIDC
SSO protocols
AES-256
Credential encryption
Multi-tenant
Data architecture

[ FREQUENTLY ASKED ]

Common questions about capabilities.

Ready to move your courses to a platform you own?

Join the waitlist and we'll be in touch. If you have specific questions about a capability, email us at sf-core-org-support-csi-teachable-replacement-app@saas-factory.ai

Email support