Back to all posts

Designing a content model that lasts

A content model is a promise to your future self. Get the nouns right and everything downstream gets easier.

Name things for what they are

A post is a post. A page is a page. Resisting the urge to merge them behind a clever abstraction keeps queries readable and the admin obvious.

Make status explicit

Every piece of content is either a draft or published. The public API only ever reads published rows, so the boundary between private and public is a single column, not a tangle of flags.