Customers learnyour productby using it.

Mastria helps developer-tool and data companies teach their customers with hands-on courses in the browser.

Run a real SQL query

Starting DuckDB…SQL

Press Run. Then make a learner's mistake: delete 100 * and press Check my work.

SELECT took_course,
       round(100 * avg(activated::int)) AS activation_pct
FROM users
GROUP BY took_course
ORDER BY took_course DESC;
Result

Press Run to see the result here.

Write courses the way you write docs.

If your team can write a README, it can write a course.

How authoring works
The lesson editor, with an example lesson
Handling failed jobsChangedPublish changes
## Why jobs failFailed jobs are retried twice by default.```labid: retry-policytitle: Set a retry policylanguage: pythonstarterCode: |  retries = 2exercises:  - id: three-retries    title: Retry three times    checks:      - type: global_equals        name: retries        value: 3        fail: Still two retries. Set retries to 3.    solution: |      retries = 3```
Set a retry policypython1 exercise, 1 checkVerifiedTest lab
Review & publish, then the lesson's History, for an example course
Review & publishPipelines in production

3 lessons to publish:3 ready1 unfinished

Ready to publish

Handling failed jobsWhen jobs failChanged+12 −3View diff
Retries and backoffWhen jobs failChanged+4 −1View diff
Alerting on failuresWhen jobs failDraftNew lesson

Unfinished — check before releasing

Scheduling backfillsWhen jobs failDraftUnfinishedNew lesson

Has an unfinished marker, a placeholder title, or quiz placeholders.

Publish note (optional)

Updated for retries in v2.4

Publish 3 lessons3 of 4 selected

History (4 publishes)Handling failed jobs
  • 2026-10-02 09:14 UTCpublished by sam@yourproduct.com (published now)diff vs draft
  • 2026-09-18 16:40 UTCpublished by lena@yourproduct.comdiff vs draftRestore to draft
  • 2026-08-27 11:05 UTCpublished by sam@yourproduct.comdiff vs draftRestore to draft
  • 2026-08-12 15:22 UTCpublished by lena@yourproduct.comdiff vs draftRestore to draft
A course in your repo, and the releases its merges became
yourproduct/academymain

courses/getting-started/course.yaml

slug: getting-startedtitle: Getting starteddescription: From install to your first scheduled pipeline.level: beginnersections:  - slug: first-steps    title: First steps    lessons:      - slug: install-the-cli        title: Install the CLI        file: first-steps/install-the-cli.md      - slug: your-first-pipeline        title: Your first pipeline        file: first-steps/your-first-pipeline.md      - slug: schedule-a-run        title: Schedule a run        file: first-steps/schedule-a-run.md
Course historyGetting started
  1. 2026-10-21 14:02 UTCUse the v2.4 install command (#42)Repo sync2 lessons

    • Install the CLIPublished nowDiff vs draft
    • Your first pipelinePublished nowDiff vs draft
  2. 2026-10-09 17:30 UTCAdd a lesson on scheduling (#38)Repo sync2 lessons

    • Your first pipelineDiff vs draft
    • Schedule a runPublished nowDiff vs draft
  3. 2026-09-24 10:05 UTCFirst version of the course (#31)Repo sync2 lessons

    • Install the CLIDiff vs draft
    • Your first pipelineDiff vs draft

Export all content

Every course, template and the Lesson Library as markdown.

Download .zip

See whether learning translates into product use

Your product team sees product usage of customers who've finished a course next to their coworkers who haven't.

Example data for the Getting started course

Share of people with at least one “created pipeline”More is better

  • 48 people who finished
  • 160 coworkers who hadn't finished
  • If they'd changed like their coworkers
Clearly better. People who finished gained ground on “created pipeline” compared with coworkers who hadn't finished. Relative to their coworkers, they rose 16 points (likely between +5 and +27). More is better for “created pipeline”. Based on 48 people who finished and 160 coworkers at 11 accounts. People who finished went from 18% to 41%, their coworkers from 15% to 22%.
How the comparison works

Know where each customer stands.

Learners join their company's account from the domain of their work email, with no invitations to send. Personal emails stay Individuals.

Your customer success team sees who signed in, who finished a course and who is certified at each account, against the seats you record, and which accounts renew soon with nobody trained. Share a progress link with a customer's manager: totals for the whole team, names only for learners who agree.

How accounts work
Your Accounts page, with example data
AccountTypeLearnersActive (30d)Course completionsCertified
Lumen@lumen.devCustomer41253712
Fathom@fathom.devCustomer3321309
Northwind@northwind.ioCustomer2618208 of 10
Wren@wren.soCustomer2215197
Quill@quill.soCustomer1811145
Sable@sable.devCustomer149103
Parcel@parcel.shPartner12794 of 4
Kite@kite.appCustomer9000
Tundra@tundra.ioCustomer7431
Harbor@harbor.aiProspect5320

14 Individuals signed in with a personal email.

The progress link you share with Northwind

Northwind at your academy

How your team is doing, shared by your customer success manager.

People signed in
26
of 40 seats, all time
Active in the last 30 days
18
Finished a course
11
of 40 seats, all time
People certified
8

The first course was finished 12 days after the first sign-in.

  • Getting started
    14 of 19 finished
  • Pipelines in production
    6 of 11 finished

23 learners at Northwind are included in totals without being named. Names appear only with permission.


See who your certificates bring in.

Learners add their certificate to LinkedIn. Each one is a page on your academy, in your brand, that anyone can verify, with a Start this course button for the people who see it.

Your marketing team sees certificate views, Add to LinkedIn presses and the sign-ups that began on a certificate, next to sign-ups from campaign links and other sites. Visitors are counted, never identified: no cookies.

How Reach counts
The certificate page a learner shares
Your academyVerified, issued on learn.yourproduct.com

Assessed certificate

Pipelines in production

Awarded to

Maya Chen

for completing every lesson and passing every lab check of Pipelines in production

Credential ID
8b2e41c7-5d0a-4f3e-9c61-2a7f0d94e815
Issued
October 21, 2026

Add to LinkedInStart this course

Your Reach page for the last 30 days, with example data
Certificate views
860
Add to LinkedIn
47
Start this course
96
Sign-ups from a certificate
31
Where sign-ups came fromNew learners
Campaign “newsletter”46
A shared certificate31
github.com22
linkedin.com14
No referrer12
All new learners125

Before you apply

Have a question about your academy? Email Marc.

Is Mastria right for our team?

Mastria is built for developer-tool and data companies teaching customers to use their product. It brings courses and browser-based Python and SQL labs together, with a view for your product, customer success and marketing teams. If your main need is compliance training or SCORM packages, it is not the right fit.

What does early access involve?

Early access is for three design partners. You bring a real course and feedback from using the platform; Marc helps you launch and works with you on what comes next. Applying starts a conversation and does not commit you to a purchase.

How much will it cost?

Mastria will have flat subscription pricing with unlimited learners. Final plan prices are not published yet, and pricing is agreed before you commit. There is no charge to apply.

Can we bring our existing content?

Yes. Courses use Markdown, with an editor and optional GitHub sync. You can embed videos from your existing host. As a design partner, you work directly with Marc on bringing your first course over.

How does the Impact view work?

Send your product events through the metric API or import a CSV. Mastria compares the change in course finishers' activity with the change among coworkers at the same companies, before and after the course. It shows uncertainty and explains the method. The comparison is evidence to investigate, not proof that training caused the difference.

What about SSO and taking our data with us?

Your product can sign learners in: put your own login in front of the academy (Auth0, Okta or any OpenID Connect provider), or have your app send them in already signed in. Everyone else signs in with an email link. Courses can live in your own GitHub repo. Learners, progress, certificates, and metric events export as CSV from the admin.

Launch your academy with the founder.

Early access is for three design partners: developer-tool and data teams ready to bring a real course to their customers.

  • Help with your first course. Setup and migration, directly with Marc.
  • A say in what gets built. Use the product and share feedback as your academy grows.

Mastria's founder, Marc Lamberti, is Head of Customer Education at Astronomer and has taught 100,000+ learners on Udemy.

Flat subscription pricing with unlimited learners. Final plan prices are not published yet; we'll agree pricing before you commit. Applying is free and does not commit you to a purchase.

Apply for early access

Tell us who you are. Marc will review your application and follow up by email.

Add context about your academy (optional)
Not ready to apply? Join the waitlist.

Join the waitlist

We'll email you once, when Mastria opens to everyone.