At Six Feet Up, we have extensive experience with both Plone and Django CMS. In this post, I am exploring when you might want to use Django CMS and when Plone might be a better fit.
Django CMS is similar to Drupal or WordPress in that it is a very nice page-builder tool with plugins that can be dropped into placeholders inside the body.
For example, you can make a blog app for Django CMS and attach it to an area in the site. When you go to that area, you can create new blog posts or articles.
Pre-defined templates or structures lay out how the page is supposed to be built. Editing content in Django CMS therefore requires switching back and forth between the template structure and the content view.
Finally, the content structures in Django CMS are flat, which means that all content of a specific type live in one spot. They can show up in different locations in the site thanks to plugins, but if you have a blog app installed into your Django CMS site, you would need to go to the root of that specific app to manage the posts.
In the enterprise-grade CMS Plone, the content editing experience is much simpler. Content is managed via a series of fields: body field, title field, subject field, and various metadata. You go to a page, click the "edit" button, and the editor displays the full body of the content. The actual URL structure of a Plone site matches the database thanks to the type of database Plone uses.
Which CMS to use?
If you need a brochureware site with fancy widgets inside the page, Django CMS will provide more flexibility. It's much harder to do those kind of layouts in Plone.
By contrast, Plone offers true content management functionalities out-of-the-box that would be key for building a collaborative portal. Additionally, if you need a publication workflow system for coordinating content contributions, Plone will be stronger than Django CMS.
Django CMS can also be a bit tricky to start with, and it requires more work from an editor's or content contributor's standpoint due to the plugin and placeholder mechanism. Switching back and forth between the editing view and the presentation view can feel cumbersome.
Overall, if you have a small web team who is responsible for making both content and design changes, Django CMS will be more appropriate as it allows the developers to create slick-looking pages that are content-managed and can be updated and changed quickly.
However, if you need to delegate content contribution to a large team of people, and if you need more than an "unpublished/published" workflow, then Plone will be a better fit.
Do you have experience with Plone and Django CMS? Any pros or cons I've missed? Let's chat!