Skip to main content

Discovery

Touchpoints

TouchpointComponent / endpoint
Featured carouseluseAgents()GET /agents?featured=true
Browse gridBrowseAgents component → GET /agents
Tag filter chipsDerived from useTags() + client-side count
SearchSearchContext (header input) + client-side filter
Card → detail transitionFramer Motion layoutId="agent-icon-{prefix}{slug}" etc.
Detail pageuseAgentBySlug(slug) + useAgentPricing + useAgentReviews

Status filtering

The frontend never sees draft or inactive agents — the backend's findAll filters them out by default unless the caller has platform_admin role and explicitly requests them.

coming_soon agents ARE returned and rendered, but with a "Coming soon" badge and a non-navigable card that opens the NotifyDialog instead of routing to detail.

Pagination

The catalog endpoint paginates by cursor (?cursor=&limit=20). The current marketplace UI requests limit=50 and renders the lot — there's no infinite scroll yet. If the catalog grows past ~100 agents, switch to a real paginated grid.

Search semantics

The current implementation is client-side filtering of the full catalog. Substring match against name + tagline + description. No fuzzy match, no synonyms.

If you want server-side search, add a ?q= query param to GET /agents and route to ILIKE (Postgres) or a dedicated search index.