Prioritise Content Over Components

Rate this content
Bookmark

For developers and designers, components are unique, flexible units to compose complete layouts. For content creators, they can trap reusable data into single-use decorations.

This talk has been presented at React Advanced 2024, check out the latest edition of this React Conference.

FAQ

Early conversations about content structure ensure that the content's intent and meaning are clearly defined, leading to a more effective design that can be easily adapted and maintained.

Separating content from its presentation allows for flexibility in how content is displayed across different platforms and devices, ensuring consistency and relevance regardless of design changes.

A common issue with current CMSs is that they often model content based on its appearance rather than its actual meaning, leading to challenges in adapting content to different designs and contexts.

The focus should be on understanding and structuring the content based on its meaning and intent, rather than rushing to design components, ensuring a more adaptable and sustainable website.

The speaker is Simeon Griggs from sanity.io.

'Content as data' refers to modeling content based on its meaning and intent rather than its appearance, allowing for flexible presentation and a better content authoring experience.

Content-driven designs are more adaptable and longer-lasting, allowing for easier updates and changes without needing to rebuild the entire structure.

A content-driven approach allows all team members, including designers, developers, content authors, and business stakeholders, to focus on the content's intent and structure, facilitating easier collaboration and understanding.

The talk focuses on prioritizing content over components in web development, emphasizing the importance of content-driven design rather than design-focused approaches.

Focusing on design rather than content can lead to rigid structures that do not adapt well to changes, making it difficult to maintain and update content effectively. It also creates a disconnect between developers and content authors.

Simeon Griggs
Simeon Griggs
11 min
28 Oct, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hi there. I want to talk about content editable websites and the importance of understanding the content model of a web page. Separating the content from its presentation is the key thought behind this talk. But if we're looking at the content itself, we're actually focusing on what those things are, not what they happen to be rendered into. The outcome of this talk is to break the cycle of content management systems being used to house data for what it looks like. Instead, we should focus on explicit curation versus content-driven experiences, moving away from explicitly curated experiences towards content-driven experiences. Let's put this into practice and build a website. Components aren't bad, but we need to think about the props that go into them. The problem arises when the content structure is modified to match the appearance instead of prioritizing the content itself. Let's correct these mistakes and prioritize the content over the components. Modeling the content structure instead of specific components allows for flexibility and a better content editing experience. Prioritizing content over components ensures a more relatable authoring experience and longer-lasting designs. Start thinking about content early and have conversations before diving into design and development.

1. Introduction

Short description:

Hi there. I want to talk about content editable websites and the importance of understanding the content model of a web page. Separating the content from its presentation is the key thought behind this talk.

Hi there. Thanks for checking out my talk, Prioritize Content over Components. My name is Simeon Griggs, and I'm from sanity.io, and I primarily want to talk today about content editable websites. And before we get into that, let's have a look at a brief history of editable content when it works on computers.

So here's a very early word processor, perhaps the first on Windows 3.11. Microsoft Word, you might've used this back in the day. We also have Pagemaker. This is one of the first desktop publishing tools on computers. I used Quark Express at my first job. That's how old I am. But desktop publishing has always been concerned with how content looks, not necessarily what it is. And we repeated this when we got onto web publishing as well.

So content editable websites originally using WordPress kind of look like this, and then WordPress evolved to look like this. And now it looks like this. And as it's evolved more and more, it's still been very focused on what the content looks like, not necessarily what the content is. So the CMS, Content Management System Backed Web, it's very concerned with how content looks.

Now, in the second section, I want to talk about when we look at a web page, we might want to ask the question, what's the content model of this page? And this is perhaps a question we're not used to asking ourselves, but it is a really important one too. So if I was building a web page just like this one, and you've probably built web pages just like this one, if I was asked once upon a time, what's the content model of this page? I'd say, what do you mean it's a page? And not really put much more thought into it. Or now we're in a component-driven era for design and web development. I'd probably say, well, it's a header and a hero and a content and a sidebar. But if we have a look at this particular web page again, and really look at what's the actual text on the page? What is its meaning? What is its intent? We can actually break this down. And the data is actually a person's name, is a presenter. We've got a label for text here. We've got a lesson title and a course title. We've got language data. The content model is actually made up of many small individual pieces that happen to be rendered on a web page. And separating the content from its presentation is really the key thought behind this talk here. So when we've got a design focus on what we're doing versus a content focus on what we're doing, our design focus language would be this is a lesson page template. This is a course web page template. This is a presenter web page template.

2. Content-Driven Experiences

Short description:

But if we're looking at the content itself, we're actually focusing on what those things are, not what they happen to be rendered into. The outcome of this talk is to break the cycle of content management systems being used to house data for what it looks like. Instead, we should focus on explicit curation versus content-driven experiences, moving away from explicitly curated experiences towards content-driven experiences. Let's put this into practice and build a website.

But if we're looking at the content itself, and that's what we're focused on, we're actually focusing on what those things are, not what they happen to be rendered into at this point in time. It's a lesson, it's a course, and it's a presenter. This is data we're dealing with, not just web pages in presentation or components in presentation. So tell me if this sounds familiar in your career at the moment.

Step one, you need to rebuild a website. What's step two often when it's a content backed website? It's you need to rebuild the CMS because the CMS was locally developed on the previous design only to match that design at that point in time. The content management system wasn't used to house data for what it is. It was used to house data for what it looks like. So let's break that cycle. That's the outcome of this talk today.

So in step three here, explicit curation versus content driven experiences. Again, perhaps some big words that need unpacking. So let's look at it. Here's a mock up for maybe what the next website is going to look like. If we apply an explicit curation lens, we might say this is the hero block because I made it so. I put the hero at the top of the page. I wrote things into it. That's what I want to be there. So that's what it is. And what if we have a web page which actually should be more dynamic? What if we want to customize what we see at any point in time because it's more relevant to the user? If I'm in a part of the world where it's currently summer, which I'm not, perhaps it would be best to put that in the hero. What if I was near a new location that's opening? It would be better if that were the hero. So that thought of having explicit curation, like putting the hero, what it is, because I put it there at this moment in time, it's actually detrimental to your users who might be more benefited by seeing the right content instead of your preferred design at this point in time.

A content-driven application says this is the hero because it's the most relevant. So that's at the top of the page because it's the best content for that user to see at that point in time. And we'll never get this 100% correct. But what I hope you take away from this today is we want to move away just as far as possible, just further to the right here on this diagram, away from explicitly curated experiences and towards content-driven experiences. And you're always going to get asked at the end of the day, but I want to add an auto-playing carousel and a video and add those things. And you're going to have to do those to some small amount, but whatever you can do in your web applications to make them content-driven instead of explicitly curated, like a fine piece of Lego that you've got to click every piece into place, as much as you can make that content-driven and dynamic, the better and longer live that application will be.

So let's put this into practice. Let's build a website.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Apache Kafka Simply Explained With TypeScript Examples
JSNation 2023JSNation 2023
27 min
Apache Kafka Simply Explained With TypeScript Examples
Top Content
Apache Kafka is a distributed, scalable, and high-throughput event streaming platform that plays a key role in event-driven architecture. It allows for the division of monolithic applications into independent microservices for scalability and maintainability. Producers and consumers are the key components in Kafka, allowing for a decoupled system. Kafka's replication and persistent storage capabilities set it apart from alternatives like Redis and RabbitMQ. Kafka provides easy access to real-time data and simplifies real-time data handling.
Safely Handling Dynamic Data with TypeScript
Node Congress 2021Node Congress 2021
29 min
Safely Handling Dynamic Data with TypeScript
Top Content
This Talk discusses the safe handling of dynamic data with TypeScript using JSON Schema and TypeBox. Fastify, a web framework, allows developers to validate incoming data using JSON schema, providing type safety and error handling. TypeBox is a powerful library that allows developers to define JSON schemas and derive static types in TypeScript. The combination of JSON schema, TypeBox, and Fastify provides powerful tools for type safety and validation of dynamic data.
The Art of Functional Programming
React Summit 2022React Summit 2022
26 min
The Art of Functional Programming
Functional programming is a beautiful paradigm that allows us to understand programs and how entities behave and interact. It has nice characteristics like predictability, which makes testing and debugging easier. We explore how functional programming handles side effects and generative art. We learn about drawing patterns and grids with recursive functions, handling state in functional programming, and creating fashion using functional programming techniques. We also discuss handling randomness in functional programming and how to introduce organic variation and randomness to art while maintaining predictability.
Content Modeling for React Developers
React Summit 2022React Summit 2022
7 min
Content Modeling for React Developers
Haushal, a Developer Advocate at Contentful, discusses content modeling and its importance in providing a great user experience. He uses his Cookbook web app as an example to explain how he structures and organizes content. The overall content model emphasizes reusability and considerations for content governance and platform selection. Content modeling is an iterative process, and Haushal provides resources for further learning and development.
How Realm by MongoDB is Testing Native Modules “on device”
React Summit US 2023React Summit US 2023
11 min
How Realm by MongoDB is Testing Native Modules “on device”
Watch video: How Realm by MongoDB is Testing Native Modules “on device”
The speaker works on the Atlas Device SDKs, which allows testing code across multiple platforms and has support for multiple programming languages. They also built Mocha Remote CLI, a tool for running tests on Node.js and in a browser. The speaker mentions the popularity of Jest and the alternative Vitest for running tests on platforms like Android and iOS.
Infiltrate Your Own React Native App
React Summit 2022React Summit 2022
24 min
Infiltrate Your Own React Native App
Every bug and feature can be a potential flaw or entry point for bad actors. React Native projects have many dependencies that can be exploited. It's important to understand your app's native code and follow security guidelines. Analyzing and modifying code can alter an application's behavior. Repackaging and modifying compiled code is relatively easy. App update vulnerabilities can be demonstrated by redirecting URLs. Code reviews and automated tooling are important for accountability. There are resources available to learn about basic security precautions for React Native.

Workshops on related topic

Build a powerful DataGrid in few hours with Ag Grid
React Summit US 2023React Summit US 2023
96 min
Build a powerful DataGrid in few hours with Ag Grid
Top Content
WorkshopFree
Mike Ryan
Mike Ryan
Does your React app need to efficiently display lots (and lots) of data in a grid? Do your users want to be able to search, sort, filter, and edit data? AG Grid is the best JavaScript grid in the world and is packed with features, highly performant, and extensible. In this workshop, you’ll learn how to get started with AG Grid, how we can enable sorting and filtering of data in the grid, cell rendering, and more. You will walk away from this free 3-hour workshop equipped with the knowledge for implementing AG Grid into your React application.
We all know that rolling our own grid solution is not easy, and let's be honest, is not something that we should be working on. We are focused on building a product and driving forward innovation. In this workshop, you'll see just how easy it is to get started with AG Grid.
Prerequisites: Basic React and JavaScript
Workshop level: Beginner
Build a Powerful Datagrid With AG Grid
React Summit 2024React Summit 2024
168 min
Build a Powerful Datagrid With AG Grid
Top Content
WorkshopFree
Brian Love
Brian Love
Does your React app need to efficiently display lots (and lots) of data in a grid? Do your users want to be able to search, sort, filter, and edit data? AG Grid is the best JavaScript grid in the world and is packed with features, highly performant, and extensible. In this workshop, you’ll learn how to get started with AG Grid, how we can enable sorting and filtering of data in the grid, cell rendering, and more. You will walk away from this free 3-hour workshop equipped with the knowledge for implementing AG Grid into your React application.
Get started with AG Grid Angular Data Grid
JSNation 2022JSNation 2022
116 min
Get started with AG Grid Angular Data Grid
WorkshopFree
Stephen Cooper
Stephen Cooper
Get started with AG Grid Angular Data Grid with a hands-on tutorial from the core team that will take you through the steps of creating your first grid, including how to configure the grid with simple properties and custom components. AG Grid community edition is completely free to use in commercial applications, so you’ll learn a powerful tool that you can immediately add to your projects. You’ll also discover how to load data into the grid and different ways to add custom rendering to the grid. By the end of the workshop, you will have created and customized an AG Grid Angular Data Grid.
Contents:- getting started and installing AG Grid- configuring sorting, filtering, pagination- loading data into the grid- the grid API- add your own components to the Grid for rendering and editing- capabilities of the free community edition of AG Grid
Live Coding Workshop to Setup Rollbar Error Monitoring
TypeScript Congress 2023TypeScript Congress 2023
48 min
Live Coding Workshop to Setup Rollbar Error Monitoring
WorkshopFree
Nico Krüger
Nico Krüger
During this session you will learn how to create a new Rollbar account and integrate the Rollbar SDK with your application to monitor errors in real-time and respond and fix those errors. We will also cover how to customize payload data sent to Rollbar to extend your monitoring capabilities.

Agenda:- Create a Rollbar Account (Free Account)- Integrate your application with the Rollbar SDK- Send handled and unhandled errors to Rollbar- Add Custom payload data to your configuration.
Building a Serverless GraphQL API For Any Datasource With StepZen
GraphQL Galaxy 2021GraphQL Galaxy 2021
75 min
Building a Serverless GraphQL API For Any Datasource With StepZen
WorkshopFree
Roy Derks
Roy Derks
Want to get started with building a GraphQL server but have no idea where to begin? Every (frontend) developer asks for a GraphQL API but often lacks the backend knowledge to create a performant one. There are many different flavours in creating the perfect GraphQL server, ranging from schema-first to code-first or even auto-generated solutions.

In this interactive workshop, you will learn about building a serverless GraphQL API using StepZen. With StepZen, you can create a GraphQL for any data source (SQL, NoSQL & REST) and even other GraphQL APIs within minutes. And even handle more complicated use cases such as authentication and deployment. Using little code, you'll get to combine different data sources in one fully performant API that you can use in your applications from day one.

Table of contents:
- What is StepZen?
- Connecting to a data source (SQL, NoSQL & REST)
- Using custom directives
- Handle sequence flows
- Deployment
Painting with Data: Intro to d3.js
JSNation Live 2021JSNation Live 2021
130 min
Painting with Data: Intro to d3.js
Workshop
Ian Johnson
Ian Johnson
D3.js is a powerful JavaScript library for building data visualizations, but anyone who has tried to use it quickly finds out that it goes deeper picking your favorite chart type. This workshop is designed to give you a hands-on introduction to the essential concepts and techniques for creating custom data visualizations with d3.js. By the end of this workshop you will have made an interactive and animated visualization on a realistic dataset that you can easily swap out with your own.