Resources + implementation
Our docs have a comprehensive overview. The README for the repo is well-maintained. And, the landing page on our website shows how easy they are to build with. They even power our interactive chat demo: trychannel3.com/demos. If you hit any snags, hop into the Discord and ask. You can also contribute back to the library; it’s open-source. To build with the component library, simply install it into your app with:Blocks
Rather than me telling you how great these are, let me just show you. The top-level components of the library areproduct-search and product-details.
product-search is a single component for a fully-featured search, including filters and infinitely scrollable results. I love this graphic because it also visualizes how powerful our search has become. Notice the rich brand filters (with logos), and the rust color filter looks fantastic here.

product-details. Again, in one component, you get a PDP with variant selection, multiple offers, and similar product search, all built in.

Components
The above two screenshots basically constitute an end-to-end shopping app, but they’re certainly not exhaustive for our component catalog. The full list is here, but some notable shoutouts: Price history and tracking components: there’s a reason these are a staple of the best deal-finding experiences. Almost as important as surfacing what to buy is informing your user when to buy. Enhance this with ourprice-tracking webhooks to get notified the second a price drops.

/similar.

Hooks
A sneakily challenging part of building an e-commerce app is the UX logic. Variant selection is a nuisance to get perfectly correct. Infinite scroll is another bit of custom logic that you really want to “just work.” And every async call is another loading state you have to worry about. So, we solved that in the component library as well. For any core e-commerce business logic, we have a hook:- Don’t try to figure out variant relaxation or availability vs. existence states. Use
use-variant-selection. - You could build search filter plumbing and request orchestration yourself. Or, you could use
use-product-search. - Supercharge your filters with
use-async-options, so category and brand filters are loaded snappily.