Skip to content

Work / Learning Platform / Wiki / Surfaces

catalog

Surfacecanonicalverified 2026-10-04

SURFACE.WEB.COURSES.CATALOG

Summary

Every published course, with search and two filters.

Raw wireframe

  • .context/designs/web/courses/catalog.html
  • .context/designs/web/courses/catalog-empty.html
  • .context/designs/web/courses/catalog-loading.html
  • .context/designs/web/courses/catalog-error.html

Why it is drawn this way

Twelve to a page. PAGE_SIZE is 12. The pager shows only past one page.

The filters are browser selects. Categories and levels come from course-enums.

Clear filters appears only when one is set. The empty state draws it, with the summary line beneath.

Cards go to the course, not to a detail page. There is no course detail page. /courses/[slug] opens the first lesson.

The error text is humaniseError's. A network failure reads "Couldn't reach the server. Check your connection and try again."

Related

Sources

  • apps/website/src/app/courses/page.tsx
  • apps/website/src/components/courses/courses-page.tsx
  • apps/website/src/components/courses/course-search.tsx