M12

Categories and Topics

Reusable hierarchical taxonomy for content and entities.

Deep category hierarchy and topic assignment architecture supporting proposal flows, autocomplete/search patterns, featured taxonomy feeds, and content association use cases.

CategoryBrowser.jsxtsx
import { Lookup, InfoLabels, PillBadge, Breadcrumb, Popover, TreemapChart } from '@cleen/cleen-components';
import { useCategoryHierarchy, useTrendingTopics } from '@/hooks/useTaxonomy';

export function CategoryBrowser() {
  const { categories, breadcrumb, drill } = useCategoryHierarchy();
  const { topics } = useTrendingTopics();

  return (
    <div className="cat-browser">
      <Breadcrumb items={breadcrumb} onClick={drill} />
      <div className="cat-grid">
        {categories.map((c) => (
          <Popover key={c.id} content={<InfoLabels rows={c.facts} />}>
            <button className="cat-card" onClick={() => drill(c)}>
              <span>{c.name}</span>
              <PillBadge tone="neutral">{c.itemCount}</PillBadge>
            </button>
          </Popover>
        ))}
      </div>
      <h2>Trending topics</h2>
      <TreemapChart data={topics} valueKey="weight" labelKey="name" />
    </div>
  );
}

Capabilities

  • Category hierarchy retrieval
  • Category propose/search/autocomplete/featured
  • Topic search/propose/parent-topic retrieval
  • Topic assignment to entities
  • Public category/hierarchy patterns

Benefits

  • Standardizes taxonomy platform-wide
  • Improves search and discovery
  • Supports reusable semantic organization

Flow of work

  1. 01Define taxonomy roots
  2. 02Propose and curate nodes
  3. 03Assign topics/categories to entities
  4. 04Expose featured/public taxonomies
  5. 05Iterate structure as domain evolves

Subfeatures

  • Category hierarchy
  • Category propose
  • Category search
  • Category autocomplete
  • Featured categories
  • Topic search
  • Topic propose
  • Parent topics
  • Topic assignment
Source surfaces (technical reference)

Internal code areas in the licensed Full-Stack codebase that back this module.

  • ApiCategory
  • ApiTopic
  • ApiPublic category endpoints
In the stack

Where it lives. What it exposes.

A quick visual of how Categories and Topics participates across the CleenUI stack, alongside the named operations it adds to the API surface.

M12 · architecture
Frontend
React · TailwindCSS · 60+ components
Category treeTopic editorAutocompleteFeatured panel
API
C# Web API · production-ready · role-aware
HierarchyPropose/curateSearchAutocompleteTopic ops
Database
AzureSQL · 300+ tables · 700+ procedures
CategoriesTopicsAssignmentsHierarchies
Async Services and Batch Jobs
WebJobs & Functions · queue-backed
Hierarchy rebuilderSearch indexer
All four layers ship together as the Full-Stack license. M12 blocks are highlighted.
API operations

Named operations on this surface

9
Try these in Postman
  • POSTCategory hierarchy/category/hierarchy
  • POSTCategory propose/category/propose
  • POSTCategory search/category/search
  • POSTCategory autocomplete/category/autocomplete
  • POSTFeatured categories/category/featured-categories
  • POSTTopic search/category/topic-search
  • POSTTopic propose/category/topic-propose
  • POSTParent topics/category/parent-topics
  • POSTTopic assignment/category/topic-assignment

Each operation maps to an endpoint in the licensed C# Web API surface.