Work / Learning Platform / Wiki / Surfaces
catalog
Surfacecanonicalverified 2026-10-04
SURFACE.WEB.COURSES.CATALOGSummary
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