Blackcube structures content via 4 entity types. Once mastered, they allow organizing any site. These entities are complementary and address different needs: hierarchy, freedom, tagging and grouping.
Crucial point: all entities can contain blocs and generate a complete page. A section can display blocs and list articles. A tag can display blocs and list tagged content. A category can display blocs and list its tags or all tagged content. Each entity is a full page, with its own content and its own lists.
The 4 Content Entities
Info
All entities can contain blocs to create a complete page. The choice depends on the desired organization: Node for hierarchy, Composite for free content, Tag for transversal tagging, Category to group tags.
Node: The Tree
Nodes are content organized in hierarchical tree structure.
Use cases:
- Site sections (Content organization)
- Structured navigation
- List pages (news, blog, portfolio)
Capabilities:
- Contains blocs: Can display a complete page with title, content, images, etc.
- Ordered Composite list: Displays linked articles with manual order managed in backoffice
- Can be tagged: Allows finding the section via a tag
- Parent/child hierarchy: Tree organization
- Combines content and list: A section can display its own blocs AND the list of articles
- Ultra-fast thanks to Hazel Tree
Info
Nodes are the only entity allowing manual article ordering. Order is managed via the link table in the backoffice.
Concrete example:
Node "News" (/en/news)
├─ Blocs: [hero, intro, filters]
├─ List: 15 articles (linked Composites)
└─ Rendering: Page with content + article list
Node "Services" (/en/services)
├─ Blocs: [hero, text, features, cta]
└─ No list: Pure content page
Tree example:
Root (automatic redirect) (Node)
├── Root/fr (Node)
│ ├── /fr (Home FR)
│ ├── /fr/a-propos (Composite)
│ ├── /fr/services (Node)
│ └── /fr/actualites (Node)
└── Root/en
├── /en (Home EN)
├── /en/about (Composite)
├── /en/services (Node)
└── /en/news (Node)
Composite: Free Content
Composites are content without hierarchy.
Use cases:
- Blog articles
- News
- Case studies
- Testimonials
- Standalone pages (About, Contact)
Capabilities:
- Contains blocs: Displays a complete page with all necessary blocs
- No hierarchy: Independent content, not linked to a tree structure
- Can be linked to a Node: To appear in a list (e.g., article listed in News section)
- Can be tagged: Allows finding content via a tag
Concrete example:
Composite "New 2025 Range" (/en/news/new-range-2025)
├─ Type: news
├─ Blocs: [hero, text, image-gallery, cta]
├─ Linked to: Node "News" (to appear in list)
├─ Tags: "Products", "Innovation"
└─ Rendering: Complete article page
Composite "About" (/en/about)
├─ Type: page-standard
├─ Blocs: [hero, text, team, timeline]
├─ Not linked to Node: Standalone page
└─ Rendering: Content page
Tag: Tagging
Tags are labels to categorize content transversally.
Use cases:
- Tag by media type (Podcast, Video, Article)
- Tag by theme (Tech, Marketing, HR)
- Tag by format (Tutorial, Interview, Analysis)
- Tag pages with editorial content
Capabilities:
- Contains blocs: Displays a complete page dedicated to the tag with intro, description, filters
- List of tagged Composites: Displays all articles/content with this tag (automatic order)
- List of tagged Nodes: Displays all sections with this tag (automatic order)
- Combines content and lists: Tag page with editorial content + tagged content list
Warning
Lists generated by Tags are automatic and cannot be manually ordered. Order depends on criteria like creation date, update date, etc.
Concrete example:
Tag "Podcast" (/en/media/podcasts)
├─ Type: media-tag
├─ Blocs: [hero, description, featured-podcasts]
├─ Composite list: 15 podcast episodes
├─ Node list: 2 sections (Tech Podcast, Business Podcast)
└─ Rendering: Page with presentation + complete podcast list
Tag "Innovation" (/en/themes/innovation)
├─ Type: theme-tag
├─ Blocs: [title, intro]
├─ Composite list: 42 articles tagged "Innovation"
└─ Rendering: Thematic page with article list
Category: Tag Grouping
Categories group Tags by family and allow two-level navigation.
Use cases:
- Category "Media" grouping "Podcast", "Video", "Infographic"
- Category "Sectors" grouping "Industry", "Services", "Public"
- Category pages with overview
Capabilities:
- Contains blocs: Displays a complete page with category presentation
- Lists Tags: Displays all tags of this category (automatic order)
- Lists tagged Composites: Directly displays all articles with a category tag (automatic order)
- Lists tagged Nodes: Displays all sections with a category tag (automatic order)
- Two-level navigation: Category → Tags → Content
- Combines everything: Blocs + tag list + content list simultaneously
Warning
As with Tags, lists generated by Categories are automatic and cannot be manually ordered. Order depends on automatic criteria.
Concrete example:
Category "Media" (/en/media)
├─ Type: media-category
├─ Blocs: [hero, intro, featured]
├─ Tag list: [Podcast (15), Video (8), Article (42)]
├─ Composite list: 65 total content (all content from 3 tags)
├─ Node list: 3 media sections
└─ Rendering: Category page with overview + tag access + all content
Variant 1: Focus on tags
Category "Formats"
├─ Blocs: [title, description]
├─ Tag list only: [Tutorial, Interview, Analysis]
└─ Rendering: Navigation page to tags
Variant 2: Complete list
Category "Sectors"
├─ Blocs: [hero, stats]
├─ Composite list directly: All articles from all sectors
└─ Rendering: Page with all aggregated content
Common Principle to All Entities
All entities can generate a complete page:
- Blocs: Each entity can contain blocs to create its content (hero, text, images, CTA, etc.)
- Lists: Each entity can display lists according to its type:
- Combination: Blocs + lists can coexist on same page
- Node: Lists its linked Composites with manual order managed in backoffice
- Composite: Doesn't display list (it's the listed content)
- Tag: Lists tagged content (Composites and/or Nodes) with automatic order
- Category: Lists its Tags and/or all tagged content with automatic order
Important
Only Nodes allow manual ordering of listed content. Tags and Categories generate automatic lists based on criteria (creation date, update date, etc.) without manual ordering possibility.
Complete example of a "Blog" section:
// Node "Blog" with content AND list
$node->blocs = [
BlocType "hero": Title + blog description
BlocType "featured": Featured articles
BlocType "text": Editorial line presentation
];
$node->composites = [
Article 1, Article 2, Article 3... (paginated list)
];
// Final rendering:
// - Custom hero
// - Featured section (chosen articles)
// - Intro text
// - Complete article list
Key Points to Remember
- 4 complementary entities: Node (hierarchy), Composite (free), Tag (tagging), Category (grouping)
- All generate pages: Each entity can contain blocs and display content
- All can list: Except Composite, all entities can display content lists
- Total flexibility: Combine blocs and lists according to each page's needs
- Unique slugs: Each content has a unique automatically managed URL
- Organization freedom: Entity choice depends on desired structure, no imposed constraint