As another poster points out, there aren't a lot of CMS-related posts on HN, but I'd like to share a little of our experience with Django CMS.
I've been using Django CMS since early in the 2.x releases (the earliest Django CMS site I still have the code for was using 2.1.0.beta2), and since then we have developed approximately 80 Django CMS sites; with traffic ranging from a few hundred hits a month, to our largest which serves a few hundred thousand hits per day across three languages.
In all this time, I still haven't found a compelling reason to switch to anything else. Django CMS's most powerful feature is that it's just plain old Django. This means that it's rare we can't use the CMS as a base framework for a site, and then plug custom applications into the site tree as necessary. Certainly few of our clients have needs which are exotic enough where this pattern breaks down. Yes, this requires a certain amount of learning curve, but it's not insurmountable at all, and I think it's conceptually simpler than most other CMSes out there (I've been an agency-side web developer for 15 years, and I still can't figure out how some people mangle the Wordpress page loop).
I was concerned early in the 3.x cycle when front-end editing was introduced (and I believe the introduction was mishandled by the development team), but recent releases have polished this to a level where I can ship it to clients with confidence. This week we launched a new site using 3.2, and content wizards, in particular, are a powerful addition (will these be made multi-step in the future? It would be nice from a UI point of view).
The CMS in general is in good hands, though I do worry that without strong community leadership, it might move too far towards being 'the platform which powers Aldryn', rather than a strong stand-alone CMS. Maybe that's too negative, but I do see it as a risk.
5 years ago I made a bet on Django CMS, and it turned out good, so I'm happy. Maybe it'll serve the next 5 years.
It's always going to be an open-source standalone CMS, and nothing will change that. Even an Aldryn-based django CMS site can be made into a standalone site very easily, so django CMS will never depend on Aldryn in any way.
We're always trying to find the right balance for the way django CMS is developed. The fact that there is a team dedicated to it at Divio is what has made this step forward possible in a way that would not have been in the past.
We also continue to rely on community input and effort, and that's not going away.
Have you checked Mezzanine (http://mezzanine.jupo.org/)? we have used it for one of our websites (http://www.nektra.com) with good success a few years ago. The only complain I have is that you need to develop some modules to add some extra functionality that should be included. For example, making cross references between related pages.
I'm currently tasked with creating a new version of my company's Intranet system and have been looking into the different CMS options out there and talking over choices like SharePoint and OpenAtrium with my co-worker.
Would you recommend DjangoCMS for an Intranet? I'm planning to implement collaborative content tools and a company wiki (probably going with MediaWiki) on top of keeping features we've already got, and the only external applications we deal with are ADP and BST.
I'm a LOT more familiar with Python than I am PHP, so finding a framework I can hit the ground running with would be huge. Thanks!
I have neither used Django CMS, nor hip kid in town - Wagtail.
Do you have any comments on differences between them? What I mean is: is Wagtail powerful in features to take on Django CMS? Or it gained it's popularity solely based on new, eye catching design?
Off-topic, but since CMS-related submissions come up rather scarcely nowadays: What are some promising, modern Web Content Management Systems for medium-sized sites that I should look at, especially if I like the clean, modular design of ProcessWire very much, but not its implementation (too slow even with caching enabled)?
I don't care about the programming language (PHP is fine, so is anything else). What I do care about is flexibility in terms of custom page types (e.g. define "Author", "Title", "Description", "ISBN", and "Cover Image" fields for page type "Book"; loop through such child items on the parent page).
Is Django CMS something that might make me happy? Are there any new projects on the horizon that look promising?
It's really a kludge to define 'page types' for (say) a book - a book is a book, not a page.
So in Django you define a book, in a modular application, and then define how it's displayed or represented, which of course could include having its own page - but also allows you to connect it to all kinds of other meaningful data.
Drupal 8 just dropped a couple weeks ago and will do everything you just listed out of the box. The code under the hood appears to be vastly more pleasant and interesting to work with than any other PHP CMS I know of, including previous versions of Drupal.
Even the demo http://demo.django-cms.org (good luck getting in at the moment, though) shows how django CMS can reuse structured data from multiple applications that also integrate with its editing and publishing tools (in the demo, news, people, events, jobs, etc).
There are biomedical labs for example that use django CMS to publish information automatically. Obviously django CMS itself knows nothing about biomedical data, but it provides the tools that make it very easy to integrate those applications (which thanks to Django are themselves very quick and easy to build).
Then why doesn't the interface reflect the building blocks of the structured content?
Where the video says "The Django CMS interface", the interface is clearly page-centric, not structured content-centric. It has building blocks like "feature-visual", "bg-home.jpg", "feature-content", "container", "row", "column col-md-24" etc.
How is that structured content?
Perhaps it can do structured content, but then why doesn't the video put that front and center? Is this perhaps an "also" feature, for building landing pages? Then why does the marketing talk about "content editors"?
So perhaps it's just the marketing that oversimplifies things? :)
I've just gotten my first exposure to actually writing D8 code in the last few days. IMHO, you're allowed and thank you SO MUCH for this release.
I've been one of the skeptics on how big a change this was going to be for years, but now having looked at the delivered product I'm really impressed and really excited to move some old projects into it.
Probably because your comment is incorrect. Django-CMS is almost exclusively structured content, and since it's essentially an extension of Django, you can use standard django models within the CMS.
If you want more of a page based CMS, check out wagtail. Also pretty awesome, although in very different ways.
Not sure who down-voted you. In your defense you did qualify your statement with "...as demonstrated in the video...". I suspect the DV'er thought you made a lot of bold assumptions though, based on that one, single video?
Wordpress + the Advanced Custom Fields (ACF) plugin can do this pretty easily for even a non-technical user. Although doing detailed code customization on the backend is a bit of a mess.
If you want a lot of logic / custom code, I'd use django-cms!
Basically gives you views and controllers, you fetch posts in php files, manipulate them, then render out twig views.
You can even add custom routes: https://github.com/jarednova/timber/wiki/Routes. If I want to decouple WP and the frontend, I just add routes that return JSON, same as Express or any other modern framework.
As much as I like the idea behind Timber, I'd not recommend using it for a production site. It has some current security issues that the devs seem to both not understand AND to not be much concerned with (a frightening combination). Don't want to get too specific, but searching their github issues for reports on the usual suspects (SQL injection, etc) should show you all you need you know.
With the coming of WordPress REST, I'm hopeful that a group more secure minded starts working on WP templates.
On PHP I quite like Concrete5. It's reasonably clean, and while I've only used it on small sites there are a bunch of people using it as their main CMS for decent sized sites.
The CMS I use the most is Umbraco. It's an open-source ASP.NET CMS that I've used on a varied range of sites, from small to very large. It has its flaws, like most of these types of tools, but I recommend downloading it, and giving it a quick test.
I'll second the Concrete5 recommendation. It's MVC under the covers, a common sense architecture, highly customizable, an exceptional UI for content editors, and a good community. For content editors, we do a one hour boot camp and that is sufficient to bring anyone non-technical up to speed.
I would put the recently released Plone 5 on your list of CMS's to review. Major updates in Plone 5:
* completely new user interface for content managers
* updated accessibility, mobilized themes, etc
* content types can now be created via the web using the Dexterity.
* the Diazo theming system makes customizing the look of Plone real easy via the web
* Deco allows you to customize the layout of pages via the web. While Deco is still an add-on, it is ready for production use, and will be included by default in Plone in the future.
While Dexterity, Diazo and Deco all can be used via the web, you can export anything created via the web to the file system. If desired this allows you to quickly prototype work with the active involvement of content managers and designers, then bring the project under file system version control and add more advanced features via programming.
None of these technologies are new. The plone community has been working on them for much of the last 5 years, and they were available as options or add-ons to Plone 4. But the level of polish achieved, and the knowledge that these tools are standard makes Plone 5 a major improvement.
I had built many sites with Plone 3 & 4. I liked Plone, but it could be difficult to learn to program. I spent much of the last four years away from active Plone development. I am very excited by the new features of Plone 5, it is much easier to program.
I would strongly advocate against using Plone ( 1 year of experience ). Slow, inflexible, data goes into a database which nobody uses and is not a database by any stretch of imagination. Effectively you are now locked in.
Even for a moderate site you would need a caching proxy in front. Code is not pythonic at all, but a java-esq class hierarchy over 15 levels deep.
Both are $200~300 per site, and like ProcessWire they are completely markup-agnostic and give you total flexibility to define your fields however you like.
Take a look at Wagtail.io . It's newish but seems to be getting a good amount of traction by some pretty interesting customers. Written in Python/Django FWIW.
I haven't but I'm planning a new site and I'm going to give it a go. I have a site with entities rather than just pages, so the content model seems to fit. I used Django-CMS about 4 years ago and it didn't support the people editing the site in terms of UX. So I ditched it and went with Wordpress (which I'm not happy with, hence wanting to change).
I used to work for Torchbox who are developing Wagtail, so I heard about it before it went public. But looking at the uptake on http://madewithwagtail.org/ it seems to be doing very well in the market.
Wagtail isn't so new now - it's coming up to two years since we launched the open source project and there are now thousands of sites in productions, with high profile users including NASA, Google, NBC, the US and UK governments. Wagtail takes quite a different approach to Django CMS and we're very happy to see their continued progress. Congratulations on the release!
Sorry, I realize I can research this myself—and plan to—but do you happen to have any references where I might learn about the differences in approach between Wagtail and Django CMS?
Here's a video in which Tom Dyson (Wagtail) and Iacopo Spalletti (django CMS) discuss this question at DjangoCon Europe 2015: https://vimeo.com/135039952
Grav released their 1.0 beta few weeks ago. It looks pretty promising. Seems it was created by a group that makes themes for WordPress and it borrows some of WordPress's admin ideas.
File-file CMS so it'll make it really easy to make small sites for clients and then deploy them to a EC2 bucket or their shared-host.
If you don't mind commercial, we are about to release [0], its our internal CMS we've been using for ~4 years, we're just working on some better documentation before release. There's a beta signup on that page which we'll be running for a couple of months.
From 15 years' experience, here's some questions to ask yourself:
Do you want well-written code and an extensible CMS, or do you want a great experience for non-technical users?
Is the usage going to be simple, or do you need workflows and approval systems?
Will the site always be in one language?
Do you want smart image cropping built in (& handling responsive imagery), will you use an external service or what?
I've used half a dozen in anger and I'm fascinated by what makes a good CMS for an organisation. I spent years looking for perfection; I'm now happy to work with any CMS. Once the core requirements are satisfied, my top tip is to look for something that's got decent support, and check there's always an upgrade path to future versions.
If anyone else likes to chew over what makes a good CMS, contact details are in my profile.
It is very flexible to build dynamic pages and you can build pages like you want without development. (but you will have to modify the HTML/QWeb template)
I just set up something small-ish using Textpattern, which I hadn't touched in years (but used to do larger sites with before I found Django).
Turns out it's still quite nice and quite easily hackable (plus there's still a strong community of people developing and maintaining plugins and other add-ons for it), though not so heavy on the WYSIWYG features people seem to think are synonymous with a CMS.
My suggestion is drupal, CMS with drupal is a good choice.
yes there are multiple CMS choices and I tried a few of them, nothing beats Drupal due to its modular design, wide community, open source, various plugins, security updates,etc.
Sorry, I feel qualified to disagree here since I used to use Drupal (v6 and v7) for all my company's projects. That is, until the day I discovered django CMS. Then, I literally never looked back. Building out projects is probably 3-4X faster using django CMS and it is so much easier to scale the resulting site using the power of Django.
There is only one thing I miss from Drupal, and that is the ability to create new "content types" on-the-fly. But here lies it weakness too. The resulting DB structure that allows this is relatively complicated which means that any custom development you do outside of the normal Drupal stuff is also more complicated than it has to be. This also has a direct performance impact.
With Django (and by extension, django CMS), the structure of the database is as clean or complicated as you require, and, there's nifty tools for migrating the schema and/or data as you evolve your project. Its beautiful, really.
What is the best blog app to use with Django-CMS? I've been using Zinnia with an older release, but I see that your demo uses the new Aldryn Newsblog app.
I'm looking to do a small redesign along with re-deploying a website with 3.2 but I don't feel like going back and re-theming Zinnia to fit with my new design. Is Aldryn's app a simpler solution?
I would say if you want something that is pre-designed-ish, use Zinnia. If you have a specific design that you need to implement and would prefer to start with a less complicated set of templates, go with Aldryn NewsBlog.
Excellent work! I'm really liking the structure board changes, as I had run into some issues with that in the past.
I've used Django CMS for client work and have been very happy - it's all the power of Django combined with a nice user interface for clients to manage their content. It's also very easy to integrate with existing Django sites/plugins.
Anyone working with medium-sized websites and trying to stay away from the PHP world should look into it for their next project.
I'm one of the django CMS developers, but I am not going to start announcing that django CMS is better than this or that other CMS (especially since I haven't even used Mezzanine myself).
They do take different approaches, and one approach might suit you better than the other. Mezzanine is a very fine CMS, but is based on different principles and solves different problems.
If you want a Wordpress-style package that works in that kind of out-of-the-box way, perhaps Mezzanine is better for you. If you want a system that is more suited to very large sites and integration with third-party applications, probably you're better off with django CMS. (And I hope I have not mischaracterised Mezzanine by saying that.)
I'd love to hear from anyone who's migrated or moved from Drupal to Django CMS. We have around 100 Drupal CMS' that we've been working with for years and we can't wait to get rid of them to something more modern, even Drupal 8 is a massive, to late - to little disappointment. Any stories?
I have used Drupal 6 and 7 to create probably 20 projects in the past. Once I discovered django CMS, I never looked back. In one case, I had a customer come to me for an extension to this Drupal site I had built for them previously. It was an option that I had also quoted a price for back when I built the site, but they didn't choose that option at the time.
When they came to me for this option later, I was already in love with Python/Django/django CMS and really did not want to work in PHP/Drupal again. So, I offered to build the option, but also to re-build the entire project in django CMS and migrate it for the same price as just the option. To be fair, I probably spent about 10% more time than I was budgeted for just the option itself, but the end result was an entirely new site in django CMS with the option with all their existing data migrated over.
The client was thrilled with the result because these these resulting differences:
• The server cost to host the new site was only about 55% of that of the old site;
• Even with the reduction in server costs, the site could deliver pages 800X faster, thanks mostly to the amazing caching capabilities and Memcache integration of Django;
• Frontend performance went up by almost 2X (granted, I did clean some things up along the way);
• The administration was much easier to understand for the client. In part this was due to the brilliant Django Admin, but also due to the multiple custom integrations I quickly built to make things easier for them;
• And of course, because they now had this extra option on the site =)
Disclosure: I do work for Divio and I am one of the core-devs of django CMS, but the above anecdote all happened well before this.
When I tried it, I could make Django CMS run, because it needed a long list of requirements, with their own requirements, and I couldn't get a set of packages that worked together.
I'm glad that this issue seems to be solved now. Current requirements are very reasonable. Will try it again.
That's the HN effect. Demo sites are "pre-deployed" to make sure you get a fresh individual site. Usually there are hundreds of them in the waiting but looks like we've got very popular all of a sudden :)
If you'd like to give it a try and don't have patience to wait for a demo site to become available, you can also register to Aldryn [ http://www.aldryn.com/ ] (for free) and deploy your own site with a few clicks.
It works just like normal site deployment (prepare containers with the site code and a database, etc, push it to cloud servers) but unlikely customer sites that are controlled by, well, customers, the demo is always the same site, so instead of making users wait for a deploy to start and finish when they request a demo, we deploy a bunch of demo sites in the background and when the user asks for a demo they just get one of the pre-deployed sites (while in the background we start deploying a new one to add to the pool).
A lot of people are talking about touch-screen support.
We don't want to dash anyone's expectations, but the release notes do advise: "your Apple Watch is sadly unlikely to provide a very good django CMS editing experience."
Hmmm, my company has switched over to Wagtail at this point and they've been happy with it. I'll have to look over new Django CMS and see what I think.
Awesome work on new release of Django CMS! Right now move content from old one to new -> so huge difference. UI for content management works as a charm.
I searched for examples of websites built with Django CMS, and I saw that the django-cms homepage already has a page dedicated to that: http://www.django-cms.org/en/case-studies/
Does anyone else have more examples? I am really curious about django-cms in the wild.
Very easy - django CMS is Django all the way down. All addons are simply Django apps, the templates are Django templates, etc... So if you know Django you'll find it easy to develop for django CMS. It's quite common to find sites that started as bare Django sites and evolved by adding the CMS to it.
I didn't get in yet, but this looks very professional from the pics.
Is there any chance your admin forms could get into django proper? The stock admin, while functional, doesn't look nearly as nice. Yes, I'm aware of the new theme, but there's a lot more to it than just being flat.
Without (yet) looking at the CMS admin I can tell you it likely won't. The reason the new flat theme was accepted is because it was css-only changes. Lots of people have customised their admin, so we can't just chop and change the HTML without breaking backwards compatibility.
Releasing a theoretical django-cms-admin as a standalone package might be a good idea, so you could at least take that bit if you don't want the entire CMS.
I've been using Django CMS since early in the 2.x releases (the earliest Django CMS site I still have the code for was using 2.1.0.beta2), and since then we have developed approximately 80 Django CMS sites; with traffic ranging from a few hundred hits a month, to our largest which serves a few hundred thousand hits per day across three languages.
In all this time, I still haven't found a compelling reason to switch to anything else. Django CMS's most powerful feature is that it's just plain old Django. This means that it's rare we can't use the CMS as a base framework for a site, and then plug custom applications into the site tree as necessary. Certainly few of our clients have needs which are exotic enough where this pattern breaks down. Yes, this requires a certain amount of learning curve, but it's not insurmountable at all, and I think it's conceptually simpler than most other CMSes out there (I've been an agency-side web developer for 15 years, and I still can't figure out how some people mangle the Wordpress page loop).
I was concerned early in the 3.x cycle when front-end editing was introduced (and I believe the introduction was mishandled by the development team), but recent releases have polished this to a level where I can ship it to clients with confidence. This week we launched a new site using 3.2, and content wizards, in particular, are a powerful addition (will these be made multi-step in the future? It would be nice from a UI point of view).
The CMS in general is in good hands, though I do worry that without strong community leadership, it might move too far towards being 'the platform which powers Aldryn', rather than a strong stand-alone CMS. Maybe that's too negative, but I do see it as a risk.
5 years ago I made a bet on Django CMS, and it turned out good, so I'm happy. Maybe it'll serve the next 5 years.