Course tags & filters
Course tags & filters
Learners narrow All courses and big catalog pages with a filter sidebar: groups of checkboxes like Level, Hands-on, Product or Topic. There is one concept behind it for the people who manage courses — tags — and one page that decides how learners see them: Admin → Course tags (under Curation).
Tags and groups
- Tags are what course managers set. They tag courses in course
settings, exactly as before (
sql,duckdb,airflow-3). Nothing new to fill in per course. - A group is a heading in the sidebar. On Course tags you create groups ("Product", "Tool", "Airflow version") and choose, for each tag, which group it sits under. A tag nobody placed lands in Topics, so every tag can be filtered on, even ones added yesterday.
- Each tag can have a name learners see.
data-engineeringcan read "Data engineering" andduckdb"DuckDB" — in the sidebar and on the home's topic chips. Leave the name empty to show the tag as typed. The admin uses the same names: course pickers, the Courses list, and the Home page's topic rows show "Data engineering" too (pickers find a course by either spelling).
The Tags table
Every tag on a course is one row: the tag as typed, the name learners see, its group, and how many courses carry it.
- One Save for the whole table. Rename and regroup as many tags as you like; each changed row is marked, and Save changes applies them together (Discard drops them). Leaving the page with unsaved changes is blocked until you save or discard. Only the rows you changed are written, so a teammate's edits to other tags survive.
- The course count is a link to the admin Courses list filtered to that tag. When some of those courses aren't on learners' All courses (drafts, unlisted, hidden, or closed to new learners), a line under the count says how many are — "5 on All courses" — so the numbers match what learners see.
A group holds either tags or a course field, never both. That keeps the counts honest (a course can't be both "Course" and "Learning Byte") and keeps each course to one level.
Built-in groups
Four groups fill themselves from the courses, with nothing to tag:
| Group | What it reads |
|---|---|
| Level | The Level field in course settings — one value per course. |
| Hands-on | Courses with runnable labs, found in the lessons themselves. |
| Type | Courses or learning paths — on catalog pages that hold both. |
| Your progress | Not started, in progress, completed — for signed-in learners. |
Because they come from the course, they can't drift: a course without a
Level simply isn't under any level, and Course tags names the published
courses that have none (the first five, each linking to its settings,
then "and N more") — as it does for courses with no tag at all. Typing
beginner or labs as a tag in course settings gets a nudge pointing to
the built-in group.
Arranging the sidebar
Every group, built-in or yours, can be renamed (Level → Difficulty), moved up or down, and hidden. Your own groups can also be deleted; their tags go back to Topics. An academy can have up to twelve groups of its own.
A group shows on a page only when it splits that page: two options with courses, or one option only some courses have. So an Airflow-only catalog never shows a Product group with just "Airflow" in it, and Course tags says, next to each group, whether a signed-out visitor sees it on All courses right now.
Tags inside a group are listed most-used first; levels and progress keep their natural order. Long groups show their first eight, with Show N more for the rest.
What learners get
- Ticks inside a group widen, ticks across groups narrow. Beginner and Intermediate shows both levels; Intermediate and SQL shows intermediate SQL courses.
- Every option shows a count of the courses it would bring back, and an option that would leave nothing can't be ticked. If a search or a shared link still leaves nothing, the page says so, with buttons to clear the search or the filters.
- The active filters are listed above the cards with an × on each, next to the result count and Clear all. A search box narrows the same cards as you type.
- Links keep the view. The address holds the ticks
(
/courses?tag=sql,duckdb&level=beginner): share it in a release note or a customer email and it opens filtered. Tags share one parameter, so a link keeps working when you move a tag to another group. - On a phone, a Filters button opens the groups full screen.
Where the sidebar shows
- All courses (
/courses) always has it. It's the page the home's topic chips and the topic rows' View all links open, already filtered. - Catalog pages get it from eight cards up, over the courses and learning paths you picked. A path matches a tag when one of its courses carries it.
Hiding a group takes it off every page at once, and takes its tags' chips off the home — a chip that couldn't filter would lie.