DjangoPress | 9 years ago | on: Making Django CMS as easy to install as WordPress
DjangoPress's comments
DjangoPress | 9 years ago | on: Making Django CMS as easy to install as WordPress
I am writing this not to attack you, it is a real life experience I had with many clients - they just look at me when I ask them to try Django CMS, asking "really???".
I would like to have them to use anything that has django under the hood, but they always take the WP road when given demo setups and some time to experiment.
Wagtail changed that, people seem to understand the Wagtail interface much better, but it is seriously lacking basic features. You at least understood that people want categories - call it taxonomies and allow multiple ways to use and edit them. Ah, just use WP for a few ways to understand how powerful that concept is.
DjangoPress | 9 years ago | on: Making Django CMS as easy to install as WordPress
Many things in WordPress are brilliant, and none of the Django content management systems got that right. Every WordPress user can very quickly learn to actually manage their content with taxonomies (categories, tags, or custom made ones), and then build e.g. a menu or special pages for a category very easy out of that categorizations. This is brilliant.
Also the hook system is great, so easy to add and combine pieces of code, one of the reasons for that enormous amount of plugins (of course not all of them are of good quality, ahem).
Also the extremely easy extension via custom post types and custom fields allows to build a lot of things very quickly. Try to build dynamic models with Django - a major limitation that is seldom talked about, but very important. This is one of the most boneheaded Django dead-ends that I have hit - how can a system that is build for dynamic content generation make it so hard to dynamically define and generate models? There are some approaches, but you are getting into 'fight-the-system-mode' with all of them, because that boneheadism is build into the basic design of Django.
Of course, the code base of WordPress is very old and a constant source of trouble, if you are depressed, go and read some WP code, you will have fun, I swear! But it must be said that it is really great how the WP devs keep up backwards compatibility - you can run and update the system for years without worries, this is very important for a cms!
Django devs did not understand that. So many people are lagging behind with updating their Django apps / projects, because the django devs missed this most important point! So many changing things, stupid little things, but breaking and mutating like a radioactive godzilla, you see the results in a universe of incompatible django apps. They missed completely that it is a good thing to "never break user space", really a problem here. Do not change the API! Thanks god they started to do that LTS thing now, so there is some hope now that serious enterprise business will take a look at Django.
Luckily WordPress now has automatic updates, so admins do not have to panic so much. Biggest problem, of course, is that annoying dependency on MySQL, I hate it, and I also hate the catastrophic generation of sql queries - and do not even try to look at the mysql query log when you install the super-bonehead-ultra plugin by mister uberhaxor!
But caching is mandatory anyway, or even better, export to static pages. Do not even put that WP on the internet - let authors write to an isolated environment and export all the pages into a static cache after updates. Do not allow comments.
If only all these great WP ideas were implemented on top of Django, that would be perfect.
But all the existing Django CMS are extremely far away from the easy WordPress usability. Like WP was made by artists and all the Django CMS made by bureaucrats. Wagtail has some future, but is still missing many, many features, also I see some problems with the content model, having to define a new model for each new type of content will not work in the long run - they are hitting that annoying Django design limitation here - it is not a framework build for dynamic models (eat that absurdism!).
There must be something inherently wrong with Django that it seems not to be possible to build a feature-rich CMS that tops WP easily - everything that exists is extremely beyond the state of the art, unfortunately, and I wonder if that has some reason connected to Django. Any PHP project would have millions of plugins after such a long time (working and compatible) - meanwhile you can be happy if you find a Django app that works out of the box with the latest Django release, lots of bitrot. Even the demo apps sometimes do not work, try to run the mezzanine 'drum' hacker news clone. This must be a management problem, but I do not understand these things, however that problem exists and it is annoying. You are riding high he Django train, but fall deep with non-working apps all the time, this can be even worse than the WP plugin hell.
WordPress is technically inferior, but there are so many brilliant ideas in there.
Django, technically superior in any way, still misses anything like WP, none of the CMS come close to the WordPress experience.
In other words: there is still room for innovation!
Just compare for yourself, looking at any of the Django CMS in 2016 will be like a time travel back to 2010.
Today I hope that some people will re-implement WordPress with Elixir and the great Phoenix framework. The Django Channels project will not be enough to survive that.
This is not only about ui - giving users the power to build menus via the ui is great, but the real thing that happens is that people have a great way to actually _manage their content_ - for an experienced WP user it is easy to add a new category menu, add some special section for a limited time or completely restructure a site, etc., this is possible because of how they implemented the usage of taxonomies and how you can structure your site with menus and category pages based on that taxonomies or pull the content with a simple WPQuery. This is very powerful!
People need categories, e.g. (not me): https://groups.google.com/forum/#!searchin/wagtail/category%...
If the answers in this thread are right and it is only possible to implement this usecase with custom model classes for each category, then this is a serious design limitation that should be considered. I hope there is another way doing that and I simply missed it, if there is, please make a blog post about it, I beg!
I played with django tag-it and maybe there is a good way to combine it with this wagtailmenu https://github.com/rkhleics/wagtailmenus
It's about the ideas. I do not want to discuss WP vs. Django on the level of technical details, I understand the context, I understand the code and I know where WP is used and where Django and such a discussion is nonsense.
BTW I would love to use Wagtail for all projects, but easy handling of catregories (lots of them) is very important for long term content segmentation.
Thanks for your attention!