8 ms·
Why Django and Rails CMS Are So Rare
- zalew 14y ago> I can think of only four offhand (meaning, without using Google): > Ellington and the inventively-named Django CMS for Django http://mezzanine.jupo.org/ http://mezzanine.jupo.org/ is quite popular, I think. The answer to the main question lies somewhere else IMO. Those CMS from the PHP family got their fame because of the very low barrier of entry to deploying a PHP app (read: ftp). No mommy-blogger will have a clue how to install a Rails/Django CMS, so the target audience is different. Putting it short: PHP CMS are for users, Django/Rails CMS are for developers.
- bergie 14y agoThere are approaches for bridging this developer - content producer gap. http://createjs.org http://createjs.org helps to bring sensible editing tools to any web app, and for example Symfony CMF provides content management functionalities to the popular Symfony2 MVC framework.
- tow21 14y agoI hadn't seen createjs before, interesting. It's not obvious that it's quite a drop in fit for a Django app though - is there an existing createjs/django app I could look at? (googling the obvious is not showing anything)
- bergie 14y agoSome of our guys have been looking at that, but I don't know if they've released any code for it yet. However, Create works quite well with various different back-ends (PHP, Java, Node.js, ...) as the only things you need to support are RDFa annotations in your templates, and some way to Backbone.sync changes back in. So I don't think Django integration would be particularly difficult. Previous HN discussion on Create: https://news.ycombinator.com/item?id=3344412 https://news.ycombinator.com/item?id=3344412
- acdha 14y agoYour point could have done without the [casual?] [unintended?] sexism: “mom” is not synonymous with “technically unskilled”.
- zalew 14y ago1. PC hypersensitive? 2. https://www.google.com/search?q=mommy+blogger https://www.google.com/search?q=mommy+blogger
- obstacle1 14y agoThe only sexism evident here is your own. Why did you assume that "mom" is the dominant descriptor in the term "mommy blogger" rather than "blogger" or the whole term? Why did you jump on the chance to cry sexism without knowing the definition of the term you were taking issue with? "Mommy blogger" is a term with a specific meaning, not just a synonym for mother. It seems that the language police have been ramping up their efforts recently on HN. That is extremely unfortunate. Reading comments would be a much better experience if the pseudo-causeheads would at least attempt a rational discourse.
- zalew 14y agoI once said something about teenage coders and someone raised the ageism banner. Political correctness is getting natzee in here sometimes, like we got binders full of women or sth.
- acdha 14y ago> Why did you assume that "mom" is the dominant descriptor in the term "mommy blogger" rather than "blogger" or the whole term? If he'd meant "blogger" generically he could simply have used the word unmodified. Instead, he specialized it by using a gendered term to repeat a common stereotype about a broad class of people. Have you ever heard anyone use a neutral or male identified term in a context like this? Would the point have any way been worse as “No sports-blogger“ or “No photo-blogger”? As for your attempt to claim that this is somehow due to my not knowing the definition of the term, I would note that your choice to resort to personal attacks rather comically undercuts your proclaimed desire for “rational discourse”.
- mas1n 14y agoI've also used http://www.feincms.org/ http://www.feincms.org/ on a few projects with success. Was the most minimalistic CMS out of all the ones I tried.
- heriC 14y agoHaving used both Drupal and Rails fairly extensively, I yearn for a Rails CMS with the community and variety of modules in Drupal. I hate doing Drupal development, but from a return on investment prospective, in many use cases, Rails actually loses to Drupal. In Drupal we can often get 2/3rds of our app for free, which productivity-wise has let us accomplish things in timeframes that would be impossible in Rails. If something with Drupal's advantages were available within Rails (as an engine or what have you) it would be a clear game-over for other stacks vs. Rails.
- bonzoesc 14y ago> Having used both Drupal and Rails fairly extensively, I yearn for a Rails CMS with the community and variety of modules in Drupal. Why, if not for religious reasons? Drupal already exists, and there's no compelling business reason to reimplement it in Rails. (otherwise somebody would have done it already)
- heriC 14y agoBecause Drupal is a mess. It is like a naturally evolved organism with vestigial organisms and the difficulty in refactoring that comes along with it. The hooks are all global in scope. It all works, but it is all over the place. Using Drupal makes me feel productive, but dirty. And to develop any new functionality the Ruby/Rails stack is much faster. So the reason to want something that marries both is to get fast development for new parts, and giant reusable Duplo's for the repetitive common app parts. If I was religious about these things, I would not be developing in Drupal in the first place... :-)
- bonzoesc 14y agoWhat if the Drupal productivity is directly a result of the messiness?
- heriC 14y agoInteresting theory, but the productivity is almost entirely due to not having to write large blocks of code. For example, in our last project, I didn't have to write an admin interface, users, roles, authentication, tagging, forms and more. The messiness was tangential, not useful.
- stratosvoukel 14y agoAnother major Rails CMS is Refinery CMS. I've been working with it for a while and it is really good! It just follows the Rails way and it has a lovely content-only backend. http://refinerycms.com/ http://refinerycms.com/
- robtotheb 14y agoDjango CMS is very good and pretty popular. I've used it on 5 decent sized projects now and my clients love it's in-page editing. The dev community is active and the next version looks really promising.
- andybak 14y agoI was discussing this the other evening. I've written a Django CMS that for in-house use. In some ways there's not much to it and it could easily be broken into separate things: Mainly: 1. WYSIWYG integration 2. An extensible 'Page' model 3. A way to generate site navigation 4. Admin customizations to make it more friendly for users. In addition I reuse some excellent 3rd party packages. Now - there are alternatives to all 4 things above that I could have reused but they were either lacking or not around when I started. I've ended up with something that covers my target market pretty well. However I do feel there's room for another layer on top of Django - or maybe just some more reusable app conventions and a kind of 'CMS standard library' that made it more obvious to a newbie what to try first. I know this isn't far from what Pinax was attempting but that seems to have gone very quiet. Actually - several of the Django CMS projects are designed to be very lightweight and modular (FeinCMS is one - I borrowed some of their code and the author was very helpful) so maybe they already fit this bill.
- arocks 14y agoThe target audience for a CMS and a Framework are quite different. CMS is aimed at the end-user while frameworks are for programmers. This is significant if you look at the popular languages for CMSes like PHP or ASP. In these languages you can "deploy" the solution by just unzipping files into a folder. Django and Rails need a lot more work. Practically, if you need a full-blown CMS there is very little need to look at the languages with complicated deployments. Also, a Framework and a CMS attacks the problems space in two different ways. Frameworks are bottom-up while CMSes are top-down. So solutions built in Django and Rails do not carry all the bloat and latent runtime functionalities that a CMS carries. Lastly, even though Rails and Django are the leading frameworks, it is wrong to expect a CMS to be built using them. Theoretically, you can use a microframework like Flask because you are going to rewrite most the framework functionality anyways.
- wiremine 14y ago"In these languages you can "deploy" the solution by just unzipping files into a folder. Django and Rails need a lot more work." Totally agree with this. It also smells like an opportunity for someone. In the age of Heroku, it feels like the process should be a lot easier. I.e.: * Download a Django or Rails based CSM. * Create a Heroku account * ./manage.py deploy_heroku * Profit
- bergie 14y agoWhy even require the download and command-line steps? You could probably wrap this all in a nice web interface
- lampe 14y agothis "easy" deployment only works cause most webservers allready got the apache mods,php,mysql dependencys installed. deploying a rails app on a server where ruby and the needed databse is installed is also "easy"
- netdog 14y ago> Django ... it is wrong to expect a CMS to be built using them. Django was originally developed to build a CMS, for the Lawrence Journal-World
- patio11 14y agoAdditionally, if you're doing the build/buy/etc decision for any project which is going to need a CMS, you're not competing just against "Do it ourself in Rails, which we like", you're competing with "Download WordPress and get 80% of the way there for free." WordPress is not the world's best software, but the ecosystem is fairly compelling, and it solves a lot of customer needs very, very quickly. (An off the shelf theme for tens of dollars or custom theme for hundreds gets many projects 100% of the way there.)
- debacle 14y agoMore importantly, the consumer knows that if they use WordPress they can fire their current programmers and find someone else. Most people have heard of WordPress. Some have heard of Rails. Almost no one has heard of Django.
- __alexs 14y agoRails is only like 2.5x as common as Django where I am. e.g. http://www.itjobswatch.co.uk/jobs/uk/ruby%20on%20rails.do http://www.itjobswatch.co.uk/jobs/uk/ruby%20on%20rails.do vs http://www.itjobswatch.co.uk/jobs/uk/django.do http://www.itjobswatch.co.uk/jobs/uk/django.do
- USNetizen 14y agoThat is absolutely not even close to true unless you are talking about solely non-technical types, who have no reason to even consider FRAMEWORKS like Rails and Django vs CMSs like Wordpress. Instagram, Pinterest, NASA, Disqus, Mozilla, The Onion, Washington Post, NY Times, PBS, etc. all used Django heavily. Just because YOU don't use it, doesn't mean it isn't popular. You committed a social proof. Django is far more popular in many circles than Rails. As Rails is far more popular in others.
- jiggy2011 14y agoThere's a difference between big sites using a particular stack and people (thinking mainly pointy haired boss MBA types) having heard of it. Lots of people have heard of wordpress because they have probably visited blogs with URLs that look like something.wordpress.com and they may have used it to write their own blog. Some people will have heard of rails because it had huge hype at around ~2006 and very vocal advocates including 37s who were known through other avenues because of basecamp and because they blogged a lot. Django on the other hand you may well not have heard of unless you have some knowledge of python or MVC frameworks (or read HN).
- gexla 14y agoI think timing is big here. These content management systems came out at just the right time and they have had a long period to evolve and further entrench their market positions. At the time these things came out, even basic features were a big deal. PHP was the only platform which was easy to deploy on shared hosting (VPS and cloud were unknown terms at that time.) Today these systems occupy a niche where there is enough demand to give them a seriously high profile on the web but the space isn't compelling enough to make developers spend a lot of time here. There also isn't compelling reasons for consumers to switch away from the big players. Today, I think the CMS is an aging idea.It seems that every day I see some new component or service which I could just drop in to an app to build as another piece to building a custom CMS. Eventually it may be as easy to create a custom CMS as it is to configure an existing one today. Not that it's not already easy to throw something together with just Rails and some add-ons. You can get a long way with Rails barely even knowing Ruby. Also, as we move closer to an API web with a client (mobile and web) heavy in JS consuming JSON, then a CMS probably needs to change quite a bit to stay useful. The CMS would basically just be a publishing tool to create content for the API. It would be less useful for creating layouts and generally dealing with the front-end. Mobile would need something else entirely. I don't think these things are going to go anywhere for a long time. The niche need will be slow to die. But I just don't see a big opportunity for putting in the hard effort of creating one now. The available systems are largely good enough.
- darrencauthon 14y agoThey are not rare, there are CMS systems not covered in this blog post. On the Ruby side, take a look at the Ruby Toolbox to see many more content management systems: https://www.ruby-toolbox.com/categories/content_management_systems https://www.ruby-toolbox.com/categories/content_management_s... It has the built-in "Well, there are a lot of CMS apps but not many used," but the other side of that is that there two (maybe three) very-popular and often-used content management systems in Rails that the author does not even mention. He claims to "spend more time looking at content management than most people" but then he has no knowledge of the most popular ones?? This statement is the biggest whopper: "The existence and competence of Rails and Django have prevented a serious, shared CMS ecosystem from developing around either Ruby or Python." I develop apps in Ruby and Rails, and it's the exact opposite. I use great systems like RefineryCMS or Spree to quickly get the framework of a site together, I pull from a massive amount of gems to get most of the functionality that I want, I reuse my private gems to get features specific to my needs, and.... at the end of the day, I only write what little code I need that is truly custom to the client's needs. I'd say that it takes some of the fun out of developing web apps if I wasn't happy being so productive. The build-your-own aspect he mentions is true, though, but it's a problem with developers more than with the existence of Rails or Django. In my experience, many devs would rather work on their own because programming is fun and they want to solve problems like that -- and they want to be paid for that work. The way it usually works is, a dev will look at a tool, find some obscure reason why it "won't work," and then spend the time building his or her own. And since many managers don't have the knowledge to override bad developer decisions, they get away with it.
- marcofucci 14y agoBuilt lots of CMS in Django. In my experience, they are usually custom and never the same. For this reason I usually use FeinCMS (http://www.feincms.org/ http://www.feincms.org/) and configure/customise things according to my client's needs.
- chadyj 14y agoMy agency wrote a rails CMS called Atreides powering at least 20 sites with high traffic and recently open sourced it. It was very much inspired by Tumblr's simplicity but adds a lot of flexibility particularly with images, videos, social components, analytics, and mixed media content creation. http://the88.github.com/Atreides/ http://the88.github.com/Atreides/
- adriand 14y agoLooks interesting. Just a quick tip, the <title> tag spells Atreides wrong.
- andybak 14y agoObligatory link to Django Packages: http://www.djangopackages.com/grids/g/cms/ http://www.djangopackages.com/grids/g/cms/
- DavidPP 14y agoAnother CMS for Rails : http://www.locomotivecms.com/ http://www.locomotivecms.com/ didn't have much chance to play with it, but on paper, it's support i18n, custom content types and associations (belongs_to, etc.) and also give you an automatic JSON API.
- jiggy2011 14y agoThere doesn't seem to be as much turnkey rails stuff in use as there is PHP (or perl) stuff across the board. Other examples would be phpBB or phpMyAdmin and vBulletin. I wonder if part of the gap is perhaps cultural. Rails comes out of 37 Signals who made lots of money doing Saas so they are going to be something that rails developers naturally aspire to. In an instance where a PHP developer might say "I can make this software, I'll put it up as OSS or I'll make it commercial and charge a fee to download it" a rails developer might think "I'll stick it up on my own servers only and charge people a monthly fee to use it or have an ad supported model". In other words , rails people may just be a bit more entrepreneurial. PHP also grew up in an age where you would probably be considered a bit crazy to do all your project management on the web.
- gtd 14y agoAside from PHP being around twice as long and around for years during the nascent phase of open source web apps, the number one reason it has more and more popular turnkey apps is the same reason it "killed" perl: easy deployment. The secondary reason is indeed cultural, but not it's nothing so abstract as what 37signals does. Rather it's the technical culture of moving fast and breaking things. With Rails you need to stay on top of upgrades all the time. If you are actively working on an app then this is a net benefit because you get new features. But it also creates maintenance work downstream, and not just with application code, but application servers are also relatively unstable. When you have something with a high heterogenous installation count like WordPress or other popular open-source apps, the pain of maintaining version compatibility and keeping it running over time far dwarfs any benefit of using a more powerful language like Ruby.
- jiggy2011 14y agoYou would still have an update problem with wordpress since it's a very popular attack target. One of the things that has made me shy away from using it is fear of running into a problem like "we need to upgrade to version X in order to fix a security issue, but version X breaks plugin Y". I guess what I was mainly getting at was that prior to around the time that rails and 37s got going the idea of paying monthly for web based Saas hadn't really exploded in the public consciousness (of course this was due to many factors other than 37s and rails). So web developers who didn't want to do consulting would naturally think of the shrinkwrap type model first as a way of selling software.
- USNetizen 14y agoCould it just be because Rails and Django are FRAMEWORKS and not just CMSs?
- kenshiro_o 14y agoYes this is what the article says. I've started playing around with Ruby On Rails and really appreciate the way the framework is structured. Before that I was dabbling in node.js and had to make up my own project structure, which could end up doing more harm than good by making me confused. Moreover, in node.js I had to download multitude of modules just to get some basic features working whereas with Rails I have a plethora of already available features which really makes my life easier. I have never touched Django but I do believe it comes with lots of boilerplate to help you hitting the ground sprinting!
- programminggeek 14y agoWell, PHP CMS's popped up like crazy because a lot of PHP frameworks didn't exist or weren't popular yet when the CMS's started popping up. Also PHP has had a history of being anti-framework or a lot of reinventing the same framework concepts over and over again. With a decent MVC framework you can roll your own blog/cms in like an hour for the most basic of functionality. With ruby and python having great frameworks for building things fast, devs are more likely to roll their own custom CMS than they are to use an off the shelf CMS that doesn't quite fit their needs. In fact, django was built so that the devs working at newspapers could crank out little custom CMS's for their various data projects incredibly fast. It started as a CMS framework, so of course it would remove the need for a generic community CMS.
- pjmlp 14y agoSo what Ruby or Python framework offers out of the box for the end users: - Worflows - Content of management, publication dates, input formats - Integration with multiple types of data sources - Easy WYSIWYG manipulation of pages for content editors - Out of the box integration with multiple notification mechanisms - Click tracking for report generation - ... A CMS is much more than building a frontend with some set of templates and DB plugins.