These keys are the problem. We shouldn't be modeling a hero or a banner or a call to action, because we don't actually know what any of those things mean without the values, but if instead we modeled an event, which is what we actually were looking at, and model the title and the subtitle, the distance of that event, then it doesn't actually matter where we put those things on the front end, and the content editing experience of it will always make sense, because I'm not editing a hero subtitle. I'm actually modifying the subtitle of the thing, and it doesn't matter where it's going to be rendered on the front end, because it's always going to be the subtitle of an event.
The major takeaway I'd like you to take from this talk today is that when we've got a hero title or an event title, these are the two data structures that we could have. On the left-hand side, that's our presentation as data. We've modeled what this thing looks like in this component, in this design, at this point in time. The content's unknown. A hero title could be literally any piece of text, and we don't know. The display is rigid. If you're not rendering the hero.title data structure into the hero title, you've got a complete disconnect between your developers and your authors, and the meaning is implied, but it's not explicit.
If instead, on the right-hand side, we're thinking about content for what it is, instead of what it looks like, this is called content as data. The presentation is unbounded. We can render the event title in the h1. We could also render it in a sidebar, where it makes sense, and it doesn't actually matter, because it's always going to be the event title. The display is flexible. The meaning is explicit, and so that content authoring experience is much more relatable for content authors, and the front end can still be rendered as you need it to be.
In summary, consider what something is, not what it looks like. Treat your website as just one outlet for your content. Content-driven designs are so much longer lasting than curated designs. The only way to approach this is to think about it very early. Have conversations before the first pixel is pushed, before the first line of code is written. This talk is mostly based off of a blog post I wrote a short time ago called Prioritize Content Over Components if you'd like to read more about that.
Comments