MinMaxHub
Documentation
  • Introduction
  • Architecture
  • Frontend
Domains
  • Nodes
  • Entities
  • Consensus
  • Suggestions
Resources
  • API Reference

Copyright 2026 MinMaxHub

  • Documentation
  • Domains
  • API Reference
NodesEntitiesSuggestionsVotesConsensusUsersRulesMedia
powered by Zudoku
Domains

Nodes

The Nodes domain is the backbone of MinMaxHub's content hierarchy. It provides the taxonomy (the tree that organizes all content) and routing (mapping URL slugs to content). Every page in the application -- whether a folder listing or a content page -- is rooted in the node tree.

Core Concepts

Nodes form a tree structure where each node is either a folder or an entity node:

KindPurposeHas TemplatesAccepts Suggestions
folderOrganize the tree (e.g., "Classes", "Items")NoNo
entityContent pages with layout configurationYesYes (via entities created under them)

Root nodes sit at the top of the tree, and children can be nested to arbitrary depth.

Entity Nodes vs. Entities

An entity node defines the template for a category of content (e.g., "Classes" with a template for class stats, features, etc.). Entities are the actual content pages created under that node (e.g., "Bard", "Wizard", "Rogue"), each inheriting the node's layout templates.

URL Structure

Each node has a slugPath that maps directly to its URL. For example:

Code
dnd (root node) dnd/classes (folder node) dnd/classes/bard (entity)

Slug paths are globally unique for nodes. The system prevents duplicate slugs at the same level of the tree.

Node Fields

FieldTypeDescription
idUUIDUnique identifier
parentIdstring or nullnull for root nodes
slugstringSingle URL segment (no slashes)
slugPathstringFull URL path (e.g., dnd/classes)
titlestringDisplay name
nodeKindfolder or entityDetermines behavior
statusdraft, published, or archivedLifecycle state
contentobject or nullOptional hero content: imageUrl, imageAlt, description
templatesarrayEntity nodes only: layout configuration for child entities
configVersionnumberTemplate generation tracker
depthnumber0 = root, increments per level
childCountnumberNumber of immediate children
createdAt / updatedAtISO dateTimestamps
createdBy / updatedByobject{ userId, username, photoUrl }

Status Lifecycle

  • Draft -- not visible to the public.
  • Published -- visible in the public tree and URL-resolvable.
  • Archived -- removed from public view. A node cannot be archived if it has children -- they must be moved or archived first. Archiving frees the slug for reuse.

Template Configuration

Only entity kind nodes can have templates. Templates define the sections (topics) that entities created under this node will have. See the Entities page for details on the layout template structure.

Template validation rules:

  • order and topicKey values must be unique across the template array.
  • single topics require a component reference. collections topics require a rule reference.
  • wrapper topics group child topics and are validated recursively.
  • closed collection mode requires at least one predefined item.

API Endpoints

MethodEndpointPurposeAuth
GET/nodes/path/{slugPath+}Resolve a node by its URL slugPublic
GET/nodes/children/{slugPath+}List immediate children of a nodePublic
GET/nodes/ancestors/{slugPath+}Get ancestor chain (breadcrumbs)Public
GET/nodes/{id}Get node by IDRequired
GET/nodes/descendants/{slugPath+}Get all descendants of a nodeRequired
POST/nodesCreate a new nodeRequired
PUT/nodes/{id}/templatesUpdate layout templatesRequired
PATCH/nodes/{id}/archiveArchive a nodeRequired
PATCH/nodes/{id}/contentUpdate node content (image, description)Required
Last modified on April 2, 2026
Entities
On this page
  • Core Concepts
    • Entity Nodes vs. Entities
    • URL Structure
  • Node Fields
  • Status Lifecycle
  • Template Configuration
  • API Endpoints