I’m starting a website (more complicated than a blog) and would appreciate advice on which framework to use.
A person on my team uses wordpress and is enthusiastic about its possibilities, but a friend who works on rails is lobbying against it (“But it’s for blogs!”). Both can help me get started so I’ll probably chose either wordpress or rails because of that.
The question is : which?
What I want to do :
The site is centered around comparing and commenting constitution articles.
Users will browse articles by country and by topic, comment and vote on the articles, suggest topics for the articles (=tag them), post their suggestions of articles.
Users will create polls (like Facebook questions more or less) that other users can answer.
I’d also like a forum section where they can start discussions about a given article or a topic.
Users will also post links/documents relevant to an article or topic.
I want my users to be registered, give me certain info (gender, age, countryâ¦) and then get statistics about who voted/commented on what articles (It will be helpful for research).
WordPress looks cool because of how easy it looks to get something together and integrate plugins, even for a non-technical person, and there’s a huge number of plugins. But it’s designed for blogs so I’ll probably run into trouble and do dirty hacks because what I want to do is not a blog. Rails looks cool because it’s designed to do things like that so I can get precisely what I want, but there aren’t as many plugins, and it will require longer to code.
I’ll be spending the next two months on this, and when I leave the the person who has to take care of the site has little technical background (except wordpress), and I don’t want to have to do heavy maintenance after I leave.
I’m not scared of learning, but I do have limited time and I’m the only developer (though I might get help from volunteers.). I might not get all the functionality I want before I leave, but I do need to get something together.
What is your opinion here?
Your friend is a diva. WordPress started as a blog platform, but now it has grown beyond that and is encroaching on becoming a mid-tier content management system out of the box. If you like it and it is easy for you, use it. It seems to match up with what you are trying to do. Articles are essentially blog posts anyway.
You wouldn’t clean your dishes with an orbital buffer. Use what makes sense.
I’d go for wordpress and use the bbpress plugin for the forum.
From my experience wordpress can be used to create lots of different sites. I’ve done so far, portfolios, corporate sites, blogs, galleries, fashion related sites, etc. All with wordpress. It’s flexible enough for pretty much anything. And if a somebody in your team knows how to use it and has a good knowledge about it (from a theme modification and development point of view) then use this resource.
Above all, wordpress has a huge community and tons of experts/plugins/themes.
WordPress might work but you’d need another system to handle a Forum.
In any case, it sounds like you might actually want a Forum solution for your entire project. Your forum could have and “Official Talk” which is moderated, and another category for open talk.
A simple forum solution would be Vanilla. It’s simple by default but comes with a robust plugin architecture.
WordPress, while having a lot of features is a hacked up mess, and it uses PHP which is a terrible, non-secure, non-orthogonal, non-regular, inconsistent, hacked together pile of crap. The only valid use for PHP is for adding a small amount of dynamic content to a static web page, and Perl is a much better solution in this small use case. Using PHP for a web application is like using a rock and butter knife as your tools when building a house. You are also going to be debugging it and closing up security holes for eternity.
Rails, while not perfect, will probably not take longer to code as Ruby is very concise, and will likely take significantly fewer lines of code compared to all your options with the possible exceptions of Lisp and Smalltalk. For your needs ActiveRecord will be perfect and will save you a ton of coding. The downside of Rails is that it enforces REST which is often not even needed(you can kind of shut it off, but then you have to handle enforcing POST/GET/PUT/DELETE yourself, but that only adds 1 line of code per controller, but increases the chance for error) and even minor version changes can break your application in non-trivial ways. With Rails 3, everything is modular and if something is not what you need you can remove or replace it.