Content Management Performance Focus
As django CMS evolves, it attracts entirely new audiences and markets. We’ve already seen a shift in our user-base from hobby developers in the early days to corporate developers today.
In addition, web agencies are now choosing to make django CMS their platform-of-choice.
There are many reasons for these shifts, but end-user simplicity is surely one of the driving forces. Developers need to make systems which are both powerful and that can be readily used by their often non-technical end-users without a lot of training and hand-holding, and django CMS delivers. Like all Django projects, django CMS is used to connect to a “remote” site via the browser and manage your content. In the early days this was all done through the Django admin, but since the release of 3.0, and features like Structure mode, nearly everything can be managed without ever leaving the front end. Structure mode, along with front-end placeholder editing, model editing, toolbar menus and contextual menus, work together to make this possible.
Workflows are changing too. Developing a django CMS project is still very often done locally, with the Django server running right on the same machine where the developer is coding or the designer is designing. This makes for rapid development of virtually all aspects of the project, from modeling data structures to tweaking designs and is part of why the whole Django platform allows for the fast realization of complex projects. And, like other Django projects, once the site is deployed, new content can easily be added to remote staging or even production sites with ease. Platforms like Aldryn take advantage of this in a huge way, offering team-based, browser-based site building on django CMS.
The CMS’ Structure mode was designed and built before these changes in workflow evolved. By making the assumption that the server was operating on the same machine as the developer, designer or content manager, it is able to present a rich UI with an instantaneous and high fidelity preview of the content, available with just a quick tap of the spacebar. While we’d like to keep these benefits, it is important that we recognize that, increasingly, creating and managing content in django CMS is being done on a remote server, which could be half-way around the world. Plain old network latency has become an important limiting factor in how quickly a site can be built.
In the coming weeks and months, the django CMS core developers will submit changes to focus on reducing these effects of latency, but to also more fully embrace remote workflow. Initially, these changes will be as simple as compressing/minifying CMS assets and reducing the number of round trips required to build the display, but we think more aggressive changes will also be required, such as decoupling Structure mode from Preview mode. This will likely offer huge performance gains when building content remotely and may empower even new workflows by allowing the structure of the project to be managed in one frame/tab/window, while the page’s preview independently resides in another.
As usual, we solicit the support of the wider community to help us streamline and even re-invent content management workflows. If you have some ideas on how to make this even better, please consider:
- Start a discussion about them on the official email list,
- Mention it in Google+ post at the Official django CMS community,
- Post a feature request (issue) on GitHub, or better yet,
- Open a Pull Request.
I'm confident all of us will benefit from improvements in this area and ultimately speedy content-management will attract even larger audiences to our favorite platform.
blog comments powered by Disqus