[site-server] Plan for catalog routes
Opened this issue · 0 comments
The catalog will have a number of routes with different query and DB schema requirements:
/
The home page of the site will show some catalog data like potentially: featured components, an embedded search widget, recently updated components, etc.
/catalog
The /catalog route can be accessed with no URL query parameters, or URL query parameters associated with a user query, like /catalog?query=foo&dist-tag=next.
We have a few options on how we treat the bare /catalog URL:
- Show no results and a "Enter a query to search for elements" message in the results pane.
- Show featured or recently updated elements
- Show the results for an empty query - which would presumably be shown by the default sorting method, which in turn is presumably based on some ranking score, so this would be effectively "top elements"
- Pick a random and possibly rotating query to start with.
/catalog/element/:path+
The page for a single element. This is what searches will link to and likely the most important page after search.
/catalog/featured
Depending on how we structure featured elements, we may query the elements with a predicate that they are featured, or we may have to query a featured elements table that describes "sets" of featured elements (like "Featured Elements 2022-09-27"). If we have "sets", then the page might display those sets in order, and elements could appear in more than one set.
/catalog/collections
Here we'd like to show a list of featured / popular collections
/catalog/collection/:collectionName
The hope page of a collection will show some README-style information, a list of elements in the collection, and possibly collection-wide demos.
/catalog/package/:packageName
The home page of a package. Shows package level docs and a list of elements in the package.
/catalog/package/:packageName/module/:path+
Shows the API docs derived from the CE manifest for a specific module.