CSI Teachable Replacement App
BlogContactFAQFeaturesHow it worksIntegrationsSecurityUse cases
Join the waitlist
CSI Teachable Replacement AppJoin the waitlist
CSI Teachable Replacement App
HomeBlogContactFAQFeaturesHow it worksIntegrationsSecurityUse cases
Join the waitlist
CSI Teachable Replacement App
BlogContactFAQFeaturesHow it worksIntegrationsSecurityUse cases
TermsPrivacyData Processing

© 2026 CSI Teachable Replacement App

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.

console
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
84
Shipped features
SAML + OIDC
SSO protocols
AES-256
Credential encryption
Multi-tenant
Data architecture

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
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.

[ 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.

[ 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.

[ ADMIN TOOLS / REPORTING + MANAGEMENT ]

Admin dashboards that answer the questions you actually ask.

Activity dashboard showing audit log and admin action history

[ 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.

[ 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.

[ 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.

[ FREQUENTLY ASKED ]

Common questions about capabilities.

  • 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.

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.

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

    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.

  • 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.

    Team management view showing organization members and their roles
    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.

    Less painful than you might expect. The import pipeline authenticates with your Teachable school, crawls your full course catalog, and lets you select which courses to bring over before a single byte moves. It extracts section and lesson hierarchy, scrapes full lesson content (video embeds, rich text, images, attachments), re-hosts every asset under your organization's private storage, and replaces all Teachable CDN URLs with the new ones automatically. A real-time progress monitor shows you exactly which pipeline stage is running, how many assets have migrated, and flags any partial failures — without aborting the whole job if one file hits an error. Your credentials are encrypted with AES-256 at rest and never appear in logs or API responses.
    Each organization connects its own identity provider independently — configurations for one tenant never touch another. The platform supports both OIDC and SAML 2.0, covering Okta, Azure AD, ADFS, and any standards-compliant IdP. Admins configure their provider through a dedicated UI that accepts a discovery URL or SAML metadata, maps attributes, and runs a connection test before saving. Sessions expire in alignment with your IdP's token lifetime; when a token goes stale, learners are forced to re-authenticate rather than coasting on an indefinite session.
    No on both counts. Every learner-facing page performs an org-membership check and redirects anyone outside the organization to the SSO login flow before a course title is rendered. The multi-tenant data model partitions every table by organization ID, so queries are structurally scoped to the authenticated tenant — there is no query path that reaches across organizations. Asset downloads are served via short-lived signed URLs generated server-side on each page render, so there are no permanent public links to share or guess. Role-based access control keeps the course builder, enrollment management, and reporting pages off-limits to non-admin members.
    Admins get three layers of visibility. First, an organization-wide dashboard widget showing total enrollments, completion rates, and active learner counts across all courses — a quick health check without opening individual reports. Second, a per-course progress table listing every enrolled learner with their completion percentage, lessons completed count, and enrollment date, so you can spot who is stuck or inactive. Third, a full CSV export of that learner progress data for offline analysis or HR reporting. On top of that, an immutable audit log records significant admin actions — SSO config changes, enrollment edits, course publishing, import job starts — giving you an accountability trail for compliance reviews.
    Video embeds from YouTube, Vimeo, Wistia, and Loom are explicitly allowed via Content Security Policy headers on lesson pages; iframe sources outside those providers are blocked. For downloadable files — PDFs, images, any lesson attachment — every download is served through a server-side signed URL with a short expiration window, so there are no permanent public asset links. The platform also records a timestamped event each time a learner downloads an attachment, giving admins visibility into which resources are actually being accessed rather than just uploaded.
    Organization admins can upload a logo and set a primary brand color that applies across all learner-facing pages: the course catalog, lesson player, and dashboard. Routing supports either a subdomain (yourcompany.platform.com) or a path prefix without requiring a separate deployment per tenant. Course URLs are built from auto-generated slugs derived from course titles, with uniqueness enforced per organization and support for custom slug overrides. Deep white-label theming beyond logo and brand color is not currently listed as a shipped feature — contact us for details on roadmap plans.