webcomponents.org icon indicating copy to clipboard operation
webcomponents.org copied to clipboard

[site-server] Plan for catalog routes

Open justinfagnani opened this issue 1 year ago • 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.

justinfagnani avatar Oct 14 '22 21:10 justinfagnani