Training infrastructure

Your product already has users. Now it can teach them.

Underlayer is training you embed — an API, an iframe, and a player that looks like it was always part of your product. No portal. No seat licences. Nobody signs up for anything.

Free sandbox · no card · 500 course views a month

app.acme.com/learn
Dashboard
Orders
Learn
Settings
Screen 0320%

Watch, then listen.

Video and audio sit directly in the screen — no player chrome, no new tab, no leaving the product you are already inside.

BackContinue
Embedded insideACMENORTHWINDTAMKEENMEDINA HEALTHSOUQ
What this is not

It is not an LMS.

An LMS is a destination. You send people to it, it asks them to log in, and it looks like somebody else's software. Underlayer is the opposite of all three.

An LMS
  • A portal you send people to
  • A login they have to create
  • Seats you pay for whether used or not
  • A look that is not your product's
  • Reports you go somewhere else to read
Underlayer
  • A screen inside your own app
  • The identity you already have for them
  • Metered on usage, never on seats
  • Your fonts, your colours, your radius
  • Webhooks and an API into your warehouse
How it works

Three calls and an iframe.

There is no SDK to install and nothing to run on your side. If your product can render an iframe and call an API, it can teach.

01Write it, or generate it

Author screens by hand, point us at a doc, or POST the JSON from your own system.

POST /v1/courses
02Embed it

One iframe. Pass the learner's id and they pick up exactly where they left off.

<iframe src="/embed/:id?identity=">
03Read what happened

Views, answers, completions and certificates — by webhook, by API, or into your warehouse.

POST /your-hook · course.completed
What a screen is made of

39 blocks. None of them look like a form.

Text and media, six question types, flashcards, drag-to-match, hotspots, timelines, decks, callouts, code, checklists, polls, reflections, scenarios and more. Every one takes your theme.

Heading
Text
Markdown
Callout
Quote
Code
Compare
Spec table
Checklist
Resource
Instructor note
Glossary term
Image
Video
Video chapters
Audio
Embed
Steps
Timeline
Accordion
Slideshow
Single choice
Multiple choice
True / False
Fill in the blank
Flashcard
Matching
Hotspot image
Stacked cards
Poll
Reflection
Ranking
Scenario
Timed question
Button
Divider
Spacer
Milestone
Results
Embedding

One line, and it's inside.

Pass the id you already use for that person and the course remembers them: where they stopped, what they answered, whether they passed. Nothing to install, no cookie banner, no second account.

  • Right-to-left, done properly

    Arabic and Hebrew mirror the whole layout — spine, arrows, drag direction — not just the text.

  • Their language, not yours

    Add a translation and pass ?lang=. Falls back to the source silently if it isn't ready.

  • SCORM, when they insist

    Some customers have an LMS and no intention of leaving it. Export a package and hand it over.

app/learn/page.tsx
<iframe
  src={`https://underlayer.outworx.io/embed/${courseId}
    ?identity=${user.id}&lang=${user.locale}`}
  style={{ width: '100%', height: '100%', border: 0 }}
/>
And on your server
course.completedwho finished, when, and with what score
certificate.issuedfires once, with a verifiable serial
screen.viewedevery screen, if you want that much
Theming

It should look like you built it.

Four colours by job, two fonts, a corner radius and a density. Every block, every state, light and dark.

When to say yes.
Continue
Your product
When to say yes.
Continue
A bank
When to say yes.
Continue
A retailer
When to say yes.
Continue
A studio
Pricing

You pay for course views.

Not seats. Published, not quoted — while everyone else in this category makes you book a call to hear a number.

Sandbox
Free
500 views a month
Request one
  • Every block, the API, MCP
  • 3 courses, 2 people building
  • A sandbox marker on the embed
  • “Powered by Underlayer”
BuildMost pick this
$124/mo billed yearly
25,000 views a month
Start on Build
  • Unlimited courses and learners
  • SCORM 1.2 + 2004 export
  • Webhooks, REST API, MCP
  • Custom themes and certificates
Scale
$499/mo billed yearly
150,000 views a month
Start on Scale
  • Everything in Build
  • SAML / OIDC and SCIM
  • Audit export, your own domain
  • Signed DPA, 99.9% uptime
Enterprise
from $1,500/mo billed yearly
1,000,000+ views a month
Talk to us
  • Everything in Scale
  • EU or US data region
  • SOC 2 and security review
  • A named person who answers

Extra views are $9 / $6 / $3.50 per thousand as you grow. Nothing throttles when you cross the line.

See every limit
The obvious questions

Asked before every trial.

If yours isn't here, the docs are unusually complete — or email us and a person answers.

Do our learners need accounts?

No. You pass the id you already have for them on the iframe URL. They never see a sign-up, a password, or an invitation email.

What if we already have an LMS?

Export the course as a SCORM 1.2 or 2004 package and hand it over. It runs inside their player, reports completions to them the way they expect, and still reports back to you.

Who owns the content?

You do. Courses as JSON, packages as SCORM, learner records as CSV — exportable at any time on every plan, including the free one. We host it; we don't hold it.

Can it write the course for us?

Point it at a document, a URL or a prompt and it drafts the screens and the questions. You edit what it got wrong. Treat it as a first draft, not a publish button.

What happens when we hit the cap?

We email you before you reach it. On a paid plan nothing throttles and nobody is turned away mid-course — the extra bills at your plan's rate. The free sandbox is the exception: it stops, because a free tier with no ceiling is free production hosting.

Put the first course inside your product this week.

A sandbox takes a day to approve and costs nothing. Bring one document and we'll show you the course it becomes.