HCTHE HCLAB

Categories & pillars

Categories group editorial content and power the pillar pages (/learn, /research, /systems, etc.).

Admin path

/admin/categories → New category → /admin/categories/new

Fields

Field Purpose
Name Display name (e.g. "Learn")
Slug URL key — should match pillar routes (learn, research, systems, governance, media, resources, labs)
Description Shown on pillar page hero
Accent color Hex color for pillar branding (e.g. #2563EB)

Slug is auto-generated from the name if left blank.

How pillars work

Pillar definitions live in src/lib/content.ts (navigation copy, icons). Categories in the database must use matching slugs so articles assigned to a category appear on the correct pillar page.

Example: an article with category slug learn appears on /learn.

Seeded defaults (from npm run db:seed):

Slug Pillar page
learn /learn
research /research
systems /systems
governance /governance
media /media
resources /resources

Step-by-step: first category

  1. Go to /admin/categories/new
  2. Name: Learn, Slug: learn, Color: #16A34A
  3. Description: one sentence on what lives in this pillar
  4. Save
  5. Visit /learn — pillar page renders; articles appear once published in this category

Assigning content to categories

  • Articles — Category dropdown on article form
  • Resources — Category dropdown on resource form
  • Frameworks — use "Category label" text field (display only, not FK)

Tips

  • Create all six core categories before bulk-importing articles
  • Slug changes break existing URLs — set slugs carefully on first save
  • Accent colors should match pillar cards on the homepage for visual consistency