How to do good content modelling for page layouts?

It seems like Contentful works well if you’re creating something simple like a blog. However, when creating content for multiple pages, I struggle to see how you’d keep the content models maintainable and organized. Say you want to use Contentful for multiple pages:

About page
Product page
Home page
... etc

Would you create a content-type for each of these pages?

1 Like

Rather than separate content types for each page, I would create a single Page content type with

  • a Title field
  • a Slug field
  • either a Rich Text field or a multi-reference field to hold the majority of the page content
  • and any other fields which are common to all page types

I’d also create a bunch of component building blocks as content types like Image Carousel, Header, Footer, etc. Then you or your editors can build an About Page with the specific pieces (i.e., components) needed for it.

Thanks @charlie, but wouldn’t that approach only work well for simple sites like a blog, where the structure is all the same? How modules are represented in an About page vs Product page vs Blog page are very different in layout. Does that mean I’d have to create a new content type for each layout? And new layouts for each minor variant?

Although Contentful works for a simple blog, it still seems like a pain to maintain and scale on a whole site.

Contentful is about your content in a page. For layouts and layout variations you will use CSS. You can have a layout field where you can have an array of predefined layout CSS classes or better layout ids the editors can choose

Hi Andy, my group at Contentful is creating a suite of (free) digital courses for both developers and content creators to help them learn how to use our platform. Content modeling is the single most important topic to come up to speed on for new Contentful developers.

We recently created an “Introduction to Content Modeling” course and you can find it in our LMS.

Great, thanks for the course @jim.ambras. Would be nice to have some examples on content modelling or a tool like draw.io example on creating the models.

Oh there is a content model tool already?

We’re working on it! I’ll post to this community when we release the next version of our learning resources.

The biggest barrier to entry for Contentful is switching from thinking in “Pages” to thinking in terms of structured content types that are composed together to create those pages.

Any application on the internet can be modelled in Contentful by decomposition and abstraction. That may be a useful exercise. A web page is simply a (Container) for its constituent parts, which simplified look something like:

(Nav)
(Hero Banner)
Accepts one or more (Banner) types which are (Image), (Overlay Text), (URL)
(Featured Products)
Accepts one or more (Product) types which are …

(Footer) which contains one or more (Link) types

You get the picture. Doing this exercise on a whiteboard in conjunction with an IA/UX specialist will really help you understand the content model required.

The hardest part of Contentful in my opinion (when applied to web sites) is the creation and management of the navigation path through that site. It can get really complex when you have non-simple use cases like non-uniform journeys, orphan pages, pages with multiple entry routes etc and ends up getting managed separately. Arguably a good IA should simplify this before implementation, but it’s not always possible…

Hey, @andy1 :wave:

You’re right, understanding the best way to create a content model that fits your site is a difficult thing to do.

What I suggest is to find the key building blocks of your website and make those into content items first and then build up from there. This promotes reusability on your site, and also helps get your content model going without making it too overwhelming.

I created a simple content model you can use to get started creating basic pages:

Happy to answer any questions you may have. :slightly_smiling_face:

-Connor