MastriaDocs

Home & catalogs

The academy home is a curated shelf that organizes itself as your course list grows — and lets you take the wheel when you want to. Catalogs and learning paths are the two ways to group courses on top of it: a catalog promises a destination worth browsing (courses and paths under one name, with its own page), a path promises an order and a finish line. All of it lives under Admin → Home, Catalogs, and Learning paths.

One rule holds everywhere: who can see a course is decided on the course (its visibility and account access), never on a page. The home, every catalog, every path, and search show a viewer only what that viewer could already open — so there is no second place where a permission can be set, forgotten, or contradict the first.

The academy home

The academy home is a curated shelf, not a database dump: your course order (the ↑↓ arrows in Admin → Home), one featured hero, and cards built from each course's course-card settings. As the shelf grows, browse mechanics switch themselves on — there's nothing to configure:

  • Tag filter chips sit above the All courses grid (they filter that grid, and go with it if you take the grid row off a customized home) and appear once two or more courses share a tag (a chip that filters to one card would be noise). If more than twelve tags earn chips, the ten most-shared stay in the row and the rest tuck behind More topics — chips stay a glance, never a wall.
  • With labs — a built-in chip that filters to courses with runnable labs. It shows once at least two courses have labs (and at least one doesn't — a filter that matches everything filters nothing).
  • Search lives in the header of every academy page: click the search box next to your avatar, or press ⌘K (or /) — a dialog opens, arrow keys move through the results, and Enter opens the selected course, path, or catalog. It matches course titles, descriptions, and tags — deliberately never lesson bodies, so results are always courses, not fragments. Every word you type must match somewhere ("sql window" finds the course that is both), and search always sweeps every published course, even while a chip filter is active, so the featured course and filtered-out courses are still findable.

The New badge. Courses first published within the last 30 days carry a New chip, and when there are two or more, a New row fronts them on the home page. Two things make the badge worth a learner's trust:

  • The clock is the course's first publish, stamped once and never reset — unpublishing and republishing doesn't refresh it, editing doesn't, and a duplicated course starts its own clock. There is no action that makes an old course look new (the same honesty rule as the derived "Updated" stamp on the course page).
  • When more than half your published courses are inside the window — a brand-new academy, a launch wave — nothing is badged. "New" marks recent additions to an established shelf; an academy where everything is new has nothing to point at yet. The badges arrive on their own as your academy ages.

Signed-in learners also get a Continue learning strip and progress on every card they've touched — see Progress & tracking.

Past twenty courses the unfiltered home reorganizes itself into curated topic rows — your most-shared tags, four cards each, with "View all →" into the tag's filtered view — above the full "All courses" grid, which never paginates and never shrinks. Again: nothing to configure; the rows appear when the shelf earns them.

Composing the home yourself

When you want to decide how the home reads instead, Admin → Home turns the automatic layout into rows you arrange. That page owns the home's presentation — its sections, the featured course, and the shelf's course order — while catalogs and learning paths sit beside it in the admin sidebar. "Customize home" starts from exactly what the automatic home shows today — never a blank page — and from there you can reorder rows, rename them, cap how many cards each shows, remove them, and add more:

  • Catalog rows front a catalog's courses with a "View all →" into its browse page (where its learning paths sit too). Topic rows do the same for a tag.
  • Featured course, Learning paths, and New are the automatic rows as movable pieces.
  • Continue learning (the personal strip signed-in learners see when they have a course to resume) and All courses (the full grid) are rows too — move them, rename them, or take them off.
  • Announcements are a typed callout — text, an optional link, and an optional last-day-shown date after which it removes itself. No HTML, ever: bound fields can't rot, can't break the page, and can't leak.

Every row keeps itself honest: it updates live from what it points at, and a row with too little to show for a given viewer simply doesn't render (the editor chips each row that's currently hiding, and why — judged for a signed-out visitor, since account-restricted courses can only add cards for their accounts; each chip links to where it's fixed).

What applies when: reordering, adding, pausing, and removing rows apply to the live home at once; a row's text fields (heading, announcement text, card count) apply when you press Save on that row, and the row says "unsaved changes" until you do — leaving the page is blocked while any row has unsaved text. Use Open the home as at the top of the page to see the live home in a new tab as a signed-out visitor or as a learner at an account — type to find the account. Only accounts that hold access to a restricted course are offered, because only they can see a different home; when no course is restricted, every account sees the visitor's home and the control says so.

  • Position — pick a slot from the row's position control (1 is the top) instead of clicking arrows; new rows land at the bottom and open for editing.
  • Pause — a paused row keeps every setting, renders nothing, and doesn't count toward the twelve-section cap; expired announcements don't count either. Seasonal rows park instead of being rebuilt.
  • Change the source — a catalog or topic row can switch to another catalog or tag in place; its position and settings stay.
  • Skip cards already shown above — an option on the All courses row: the grid leaves out cards a row above it already fronts, which is what the automatic home does with its hero and New cards. "Customize home" sets it to match the layout it started from, so the fork renders exactly what you saw.
  • Undo reset — Reset to automatic keeps your previous arrangement in this browser tab; on the automatic home an Undo reset button brings it back (rows whose catalog or tag no longer exists are dropped). Removing the All courses row is allowed and the editor tells you what it costs: it counts the published courses no remaining row carries. Those courses are still one search away (the header search always sweeps every published course), and their pages, links, paths, and catalogs keep working — curation decides what the home shows, never what exists. Customizing means the automatic layout stops evolving on its own (your arrangement is yours); Reset to automatic brings the self-arming home back whenever you want it.

The home is the one composed page. A catalog's page is a shelf — title, description, image, and its cards in the order you chose — on purpose: one level of curation plus a composed home covers what nested catalog pages promise elsewhere, without the "which page am I on" taxonomy learners complain about.

Catalogs

A catalog is a curated destination inside your academy with its own browse page: "Getting started", "For platform engineers", "Certification prep". It holds courses and learning paths under one name. Where a path promises an order and a finish line (numbered syllabus, progress, Continue), a catalog promises a shelf — a named set of cards worth browsing together. Create one from Admin → Catalogs (New catalog, name it), stock it with the same searchable picker for courses and for learning paths, and publish from one item up. Every save, add, publish, and delete answers in words right where you acted — including refusals ("give the catalog a name", an image URL that isn't https, a delete the home won't allow).

  • The editor says what visitors actually see. Under the title: "Visitors see 2 of 3 courses and 1 of 1 learning path", judged for a signed-out visitor (account-restricted courses add cards only for their accounts). A published catalog nothing is visible in yet says so — its page answers 404 for learners until a member becomes visible — and a draft says it's a draft. Preview page opens the catalog page as staff at any time, with a banner naming why learners can't see it yet; once it's live for everyone the link reads View page and the shareable URL sits beside it with a copy button.
  • Getting onto the home is one click. Catalog rows exist only on a customized home, so publishing a catalog changes nothing on the home by itself. The editor's On the home card says where it stands — "Row 3 of 6 on the home", "Not on the home", or "Not on the home (automatic layout)" — and offers Add a row to the home: on an automatic home that first customizes it (starting from today's layout), then adds this catalog's row at the bottom and opens it under Home. A mounted row links to Arrange under Home; a row that currently hides (a draft catalog, fewer than two visible courses) carries the same chip the Home workspace shows.
  • Membership is editable from both sides. The catalog editor adds courses and paths to a catalog; a course's own settings page has a Catalogs card that shelves it everywhere it belongs in one Save, and a path's editor has the same card — so publishing something new never means a tour of every catalog. In the editor each member links to its own settings and says where else it's shelved ("also in 2 other catalogs").
  • Being on no catalog costs nothing. The home grid, search, and topic rows list every published course regardless — catalogs curate, they never gate reachability.
  • Order can maintain itself. Each catalog picks its order: your manual order, newest first (by each course's first publish or each path's publish, with coming-soon teasers up front), or title A–Z. The editor previews exactly what learners will see. On the catalog page, learning paths sit in their own block above the course cards.
  • The image heads the catalog page beside the title, and fronts the catalog's thumbnail in search results. Home rows show the courses' own cards. Empty is fine.
  • A catalog has no audience of its own. Members render through the same rules as everywhere else — drafts, hidden, unlisted, and account-restricted courses aren't part of that viewer's shelf, a path shows only when its own card would show on the home, and the editor chips any member in one of those states. To make a catalog "for one customer", restrict its courses to that account: every surface adjusts, and nothing can leak. A coming-soon tease, though, is a real card — it shows on the shelf too.
  • Unpublish and delete name their consequences before you confirm. Unpublishing stops the page, drops the home row, and takes it out of search; publish again any time. Deleting removes the catalog for good (its home row goes with it); courses, paths, progress, and records are untouched — and the Catalogs page offers Undo right after, which re-creates it as it was (its home row does not come back; add one from the editor).

The Catalogs page finds and manages: search by name or description, sort by Name, Recently updated, or Created, filter Published / Draft, 25 a page. Each row shows the status, whether it's on the home, the stock ("3 courses · 1 path"), what a visitor sees, the last edit, and the description; its Actions menu opens the editor, views or previews the page, adds a home row, publishes or unpublishes, and deletes with undo. Published catalogs join search ranked with paths, above courses, and each gets its shareable /catalogs/… page. On a home row that already shows every card, the corner link reads Open catalog → instead of promising more.

Learning paths

A learning path is a named, ordered set of courses with its own card and landing page: "Analytics Engineer", "Certification prep", "Onboarding week one". Create one from Admin → Learning paths (New learning path, name it), then pick and order its courses with the same searchable picker the settings page uses — or shelve a course from its own settings page, where a Learning paths card lists every path (a new membership joins at the end; the path editor owns the order). Publishing needs at least two courses — a one-course path is just a course. Every save, add, publish, and delete answers in words right where you acted.

What paths deliberately are — and aren't:

  • A path guides, it never gates. Learners can open any course in any order; the path's numbered syllabus and its Continue button (always the first not-yet-completed course, in your order) do the steering. There are no prerequisites to enforce and no drip schedule — forced sequence is where "rigid path" complaints come from on other platforms, and honest completion data beats coerced ordering.
  • The path stays in view. A course opened from a path (or that sits in one) says so under its title — "Step 2 of 4 in Analytics Engineer" — and its completion card points at the next course in the path instead of the authored successor; the last step points back at the path. The home's Continue learning strip names the path too.
  • The syllabus is steps. The current step is marked "Up next" (or "In progress") and carries the verb; completed steps get a check; the meta line adds the path's total length ("4 courses · 2 runnable labs · ~5.5 h") once every course has a duration.
  • Progress is derived, never enrolled. A path shows "1 of 4 courses completed" computed live from the member courses' own progress, and its bar is lesson-weighted — five lessons into a seven-lesson first course is not 0% of the path. There's nothing to enroll in, so there's nothing to get out of sync — and deleting a path deletes pointers, never content or learner records.
  • A path can never show a course its viewer couldn't see. Members render only when the learner's own home would show them: drafts, hidden, unlisted, and account-restricted courses simply aren't part of that learner's view of the path — and the path editor chips any member in one of those states. Setting a course to Unlisted or Hidden in its settings warns you which paths it sits in.
  • Paths leave a record. A learner's profile, printable training history, and admin learner page list every path they walk with its progress and certificate; Admin → Analytics shows each path's funnel — how many learners started it, finished it, and how far the starters got at each step.

A path can also award a learning path certificate — switch it on in the path editor. It is earned when every course in the path is complete and every certificate those courses award is held, derived exactly like path progress; see Certificates.

The Learning paths page finds and manages: search by name or description, sort by Home order, Name, or Recently updated, filter Published / Draft, 25 a page. The ↑↓ arrows (under Home order) are the order of the home's Learning paths row and of every catalog's paths block. Each row shows the status, its place on the home, its length, what a signed-out visitor sees, the last edit, and the description; the Actions menu opens the editor, views or previews the page, publishes or unpublishes, and deletes with undo (a path that issued certificates can't be deleted — unpublish it instead). In the editor, details, the certificate, and the catalogs apply in one Save; the header says what visitors see and links View page only when the page is live, else Preview page — staff can open a draft or thin path with a banner naming why learners can't. Path cards carry a face composed from the first member courses' images; in search results paths rank above courses.