Add draft/published status to records (content versioning)
In Progress

I’ve grouped together the following features, as they’re kind of linked together:


  • Easy rollback of records to previous versions;
  • Ability to publish a single record, rather than the entire set of changes to either staging or production;
  • Before publishing, show a list of changes that are going to be pushed;
  • Ability to schedule publishing a record;
  • Ability to save a record without committing to be published;


We know well how ie. Contentful and Prismic tackle these needs, and there are things in both approaches that we don’t like. Prismic uses the concept of “Releases” to group a set of changes and schedule them for publishing, but it’s quite difficult to have a clear sense of what’s going on and how each release will overwrite/conflict with each other. Also, Prismic does not offer any kind of validation rules on records, while we do, and while that’s a huge plus for us, it also makes things harder for us as we want to preserve to keep data coherence/integrity. Furthermore, both in Contentful and Prismic, if you delete a record, it will be immediately deleted in production, which is something.. well, unexpected and potentially dangerous. 


We took some extra time to discover the needs of our users and now we think we’re ready to implement our version, which will allow all the things mentioned above. Users will be able to put each record in a different status:


  • Draft (new record, not published)
  • Published
  • Updated (existing record with some unpublished changes)
  • Marked for deletion (existing record will be deleted on next publish)


In staging environment you’ll be able to preview these changes, and during the publishing to production operation, editors will be able to review the set of changes and decide which will be finalized in production.


Login to post a comment