Lesson 6 of 8 Β· Core Concepts

Content Delivery & Aggregation

Managing content is only half the job; delivery is how it reaches an audience. This lesson covers separating content from presentation, templating and "the surround," and the deep, often-underestimated art of aggregating content.

⏱️ ~24 min read πŸ“„ 8 review questions 🎯 From repository to reader

Learning objectives

  • Explain why content and presentation are separated
  • Distinguish content, artifacts, and channels
  • Understand templating, templating languages, and "the surround"
  • Grasp content aggregation and its many variables
  • Recognize "the tyranny of the tree"

1Content vs. presentation

Your content is an abstract ideal; the web page a visitor sees is just one presentation of it. Binding content tightly to a single presentation drastically limits what you can do with it. Kept separate, one source of content can flow to a web page, a PDF, an email, a mobile app, and an API. Three terms make this precise:

πŸ’‘

Content

The abstract information in the repository β€” no inherent format. The idea itself.

πŸ“„

Artifact

A concrete deliverable made from content for a context β€” a web page, PDF, or email. One piece of content yields many artifacts.

πŸ“‘

Channel

A distribution outlet β€” the method by which content is consumed (web, email, mobile, social).

♻️

Remember WORM from Lesson 1? Content is written once but read many times. Because a piece of content is consumed far more often than it's created, it's worth investing serious effort in the delivery pipeline β€” that one-time cost is repaid across every consumption, forever.

2Templating

Template

A process that transforms content into a delivered format β€” typically a mix of presentational markup (HTML) and logic that prepares content objects for output.

Templates are where content and presentation reunite at the last moment. Multiple templates can be applied to the same object to produce different artifacts for different channels. The mini-languages templates use β€” Twig, Razor, Velocity, Freemarker β€” are called templating languages. They're deliberately less powerful than the system's full programming language (for safety and stability) but support at least token replacement and flow control.

πŸ–ΌοΈ The surround

On a rendered page, only some elements come from the operative content object β€” for a news article, that's the title, byline, and body. Everything above, below, and beside it β€” the site header, navigation, footer, sidebars β€” is "the surround." Usually two templates cooperate: a surround template forms the outer shell common to all pages, and the content object's own template renders the article and is placed inside it. The concept predates CMS entirely β€” Server Side Includes and FrontPage's "Shared Borders" did the same job.

3Content aggregation

Content aggregation

The intentional grouping of content for organization or presentation β€” a "latest articles" list, a navigation menu, a category page, a content tree.

Aggregation is one of the most important and complex aspects of a CMS. In fact, truly understanding a CMS often means understanding how it aggregates content β€” aggregation has a far wider "pattern space" than most other features, so mastering it is frequently what separates a basic implementation from a powerful one.

Aggregations vary along many axes:

Static vs. dynamic

A fixed, hand-picked set of items versus a live query ("all posts tagged security") that updates automatically as content changes.

Manual vs. derived ordering

Editors arrange items by hand, or the order is computed from an attribute (e.g. publish date, descending).

Type & quantity limits

Restrictions on which content types may appear and how many items are shown.

Permission & status filters

Automatically excluding unpublished or unauthorized content from the aggregation.

Flat vs. hierarchical

A simple list versus a nested structure like a multi-level menu.

By configuration or by code

Assembled through the editor's settings, or defined in developer code.

πŸ“¦

Organizing content often creates content. A curated "top 10 articles" list or a hand-built menu is itself a piece of content β€” it needs the same management services (versioning, permissions, publication status) as the items it groups. Aggregations frequently deserve to be modeled as content objects in their own right, and sometimes get their own URLs.

4The tyranny of the tree

Content trees (hierarchies) are everywhere in CMSs, and very useful β€” navigation can be derived from tree position, permissions applied by branch, and so on. But binding too much functionality to a single tree can make it "tyrannical."

🌳 When the tree rules everything

In many systems, a content object's tree position can dictate its permissions, allowed types, workflow, URL, and template settings all at once. That's efficient β€” until your needs diverge. You might group content one way for easy permissions but want different template control than the tree allows. A good system lets configuration depart from the tree when needed. The tree also struggles when the same item must appear in two places: most systems solve this with a "main" location plus a placeholder reference elsewhere, and external links usually have to be modeled as their own content object (an External URL type).

🧠

Cognitive containers. Content is almost never consumed in isolation β€” it's experienced inside a container like a page, an app screen, or an episode, assembled from many individual objects plus the surround. That container may itself be content. Delivery is largely the art of assembling those containers well.

πŸ”‘ Key terms from this lesson

Content / artifact / channel
The abstract information, a concrete deliverable made from it, and the outlet it's consumed through.
Template & templating language
The transformation process and the safe mini-language (Twig, Razor…) it's written in.
The surround
Everything on a page outside the operative content object β€” header, nav, footer β€” usually a separate template.
Content aggregation
Intentional grouping of content; understanding it is often the key to understanding a CMS.
Tyranny of the tree
The problem of binding too much functionality to a single content hierarchy.

Review Questions

Test your understanding. Click each question to reveal the answer.

1Why is separating content from presentation so valuable?
Show answer
Answer: Content is an abstract ideal; a web page is just one presentation of it. Keeping them separate lets one source of content produce many artifacts across many channels; binding content to a single presentation limits what you can do with it.
2Distinguish content, artifact, and channel.
Show answer
Answer: Content is the abstract information in the repository; an artifact is a concrete deliverable made from it (web page, PDF, email); a channel is the outlet it's consumed through (web, email, mobile, social).
3What is a template, and why are templating languages deliberately limited?
Show answer
Answer: A template transforms content into a delivered format, mixing markup with logic. Templating languages (Twig, Razor, etc.) are intentionally less powerful than the full programming language β€” for safety and stability β€” while still supporting token replacement and flow control.
4What is "the surround," and how is it typically rendered?
Show answer
Answer: The surround is everything on a page outside the operative content object β€” header, navigation, footer, sidebars. It's usually a separate "surround" template forming the outer shell, into which the content object's own template is placed.
5Why is it said that understanding a CMS often means understanding how it aggregates?
Show answer
Answer: Aggregation is one of the most complex, important aspects of a CMS with a far wider pattern space than other features. Mastering how a system groups content is frequently what separates a basic implementation from a powerful one.
6Give three axes along which aggregations can vary.
Show answer
Answer: Any three of: static vs. dynamic; manual vs. derived ordering; type/quantity limits; permission and publication-status filters; flat vs. hierarchical; by configuration vs. by code.
7Explain the "tyranny of the tree."
Show answer
Answer: When too much functionality (permissions, allowed types, workflow, URL, template settings) is bound to a single content hierarchy, the tree "tyrannically" forces all of it based purely on position. A good system lets configuration depart from the tree, and provides ways to place one item in multiple locations.
8Discussion: A "featured articles" box on a homepage β€” should it be a live query or a hand-curated list, and should it be a content object? Argue a position.
Consider editorial control, freshness, and whether the box needs its own versioning/permissions.
Show answer
Sample answer: If editorial control and messaging matter, a hand-curated (static, manually-ordered) list modeled as its own content object makes sense β€” it can be versioned, permissioned, scheduled, and approved like any content ("organizing content creates content"). If freshness matters more than curation, a dynamic query (e.g. most-recent or most-read) reduces manual effort. Many teams blend both: a curated top slot plus a dynamic fill.