Menu

Three ways in, and one set of rows underneath them.

A course is written once and read wherever it is needed. What changes between these three is where the person is standing, not which database they are reading.

One

Embed the course frame in your own app.

Install the SDK, wrap the part of your product that shows training in one provider, and drop the frame where you want it. The learner never leaves your page and never sees a second sign-in. Register a component for a block kind we have never heard of and the frame draws your screen, live, with the rail and the buttons around it unchanged.

import "@rocketrudder/lms-embed/styles.css";
import { CourseFrame, LmsProvider, registerBlockKind } from "@rocketrudder/lms-embed";

// Your own component, for a block kind the service has never heard of.
const CANVAS = registerBlockKind("canvas-overlay", TrainingPractice);

// getToken is YOUR function, calling YOUR server, where your private key lives.
// The SDK never holds a key and never mints a token.
<LmsProvider tenant="archetric" getToken={mintOnOurServer} blocks={[CANVAS]}>
  <CourseFrame course="seats-and-holders" />
</LmsProvider>

A block kind nobody registered draws one honest line saying which application it needs, rather than an empty space.

Two

Send people to your own portal address.

Every company gets an address of its own on this service, under its own name, drawn by the same components the SDK draws. If you have nothing worth embedding in, this is the whole product with no code at all. A company that wants its own domain pays for the certificate once.

Three

Let your app hand people in.

Your server mints a short-lived signed token naming the person, your application exchanges it for a session, and the learner arrives already signed in. We hold no password for them. An address on that token finds an existing Rocket & Rudder account and offers to join the two, and the join is written only after the person proves the account. A host can never claim one by asserting an address.

For developers

Where to read next.

The design of record, the tenant model, the identity handoff, the grant path and the embed SDK are all written down, in full, with the decisions and the reasons for them.

  • The documents

    The docs folder on GitHub. Standalone LMS is the design of record; Add-On Cost Model prices what the $47 add-on can afford to include.

  • The README

    What the service is, and how to run it, including the checks every change has to pass.

  • The SDK

    @rocketrudder/lms-embed is a workspace package rather than a published one. It becomes an npm package the day somebody outside this house needs it.

How it works