Custom domains
Your academy starts at yourname.mastria.dev and works there
indefinitely. When you want it on your own domain — learn.yourcompany.com
or academy.yourcompany.com — you connect it yourself on
Admin → Settings → Domain: two DNS records on your side, one button on
ours.
What you need
- A subdomain of a domain you control:
learn.yourcompany.com,academy.yourcompany.com,training.yourcompany.com— your pick. - Access to your DNS provider to add two records.
- An owner or admin seat on the academy (see Team).
Note
Bare root domains like yourcompany.com can't point at an academy —
you want your homepage there anyway. Pick a subdomain. The page says so
if you enter one, and suggests learn. and academy. versions.
Setup
-
Add the domain. On Admin → Settings, the Address row's Connect a domain button opens the Domain page. Enter the subdomain (pasting a full URL is fine; the page keeps the host).
-
Add the records it shows at your DNS provider:
learn.yourcompany.com CNAME cname.vercel-dns.com _mastria.learn.yourcompany.com TXT mastria-verify=<your academy's code>The CNAME points the domain at your academy. A provider that flattens CNAMEs into A records is fine too; the check accepts either. The TXT record carries a code made for this academy and this domain: every academy points at the same CNAME target, so the code is what proves the domain's owner meant your academy and not someone else's. If the domain was used on another hosting account before, the page shows one more TXT record from the hosting provider — add that one as well. Each value has a copy button.
-
Press Check DNS. The check looks up where the domain points right now and says so in words — "it points to acme.netlify.app right now" — until the CNAME is in place, then looks for the TXT code. DNS changes usually show within minutes, occasionally up to an hour; press it again then.
When the check passes, the domain is Connected and serves the academy. A domain never serves an academy until it passes, and passing takes records only the domain's owner can publish, so nobody can claim a hostname they don't control. Keep the TXT record in place; it's harmless.
HTTPS is automatic: a TLS certificate is issued for your domain within minutes of the DNS change, and renews itself. There is nothing to buy, upload, or rotate.
Holding and removing a domain
- One domain waits at a time. While a domain waits for its DNS, the page shows its records instead of the add form; connect it or remove it before adding another. Connected domains don't count — an academy can answer on several.
- An unconnected domain is held for 7 days. After that, another academy may claim the same name — a typo or an abandoned attempt can't park your company's hostname forever. A new claim gets a new TXT code, so a takeover still needs the domain owner's DNS.
- Remove domain asks first and says what happens: a waiting domain
just goes away; a connected one stops serving the academy at once, and
links to it break. Your
yourname.mastria.devaddress keeps working either way.
What changes for learners
Everything simply lives on your domain: course links, sign-in links,
magic link emails — a learner who signs in on learn.yourcompany.com
stays on learn.yourcompany.com the whole way through. Your yourname.mastria.dev subdomain keeps working
alongside it, and so does the admin: it lives at /admin on whichever
domain you open (see
Getting started).
Timing
DNS changes usually propagate in minutes, occasionally up to an hour. The whole process — from adding the domain to a live, HTTPS-served academy — typically fits inside a coffee break.