Building my web startup in Drupal vs. Rails?
We're just building a prototype at the moment, and to do this as quickly as possible my partner is using Drupal. He's new to Drupal so is learning how to use it along the way. My first feeling when he said he wanted to use Drupal was "hmmm, a CMS - that doesn't feel like the right choice". However, I don't really have any justification for that feeling: it is just that whenever I read about people building web startups they are using Python/Django or Ruby on Rails etc.
Our startup is not anything especially complicated - it's a review website - like Yelp or TripAdvisor - where the users get points for submitting reviews. When we talk about the product build it does seem like there is a Drupal module to cover most things. So maybe it is the right choice?
Is there any reason why using Drupal at this stage for a prototype would be a bad idea? I'm kind of thinking that no matter what we build the prototype in it would have to be rebuilt to scale anyway.
Any advice would be very welcome. Thanks. :)
10 comments
[ 102 ms ] story [ 1920 ms ] threadAside from whether it's a good idea to use Drupal or not, why is he using something he doesn't know ?
Drupal is fine for a prototype, and your partner may want to cut his teeth on it because he just enjoys learning new technologies. What technologies is he familiar with?
This is especially true if you're in a rapid, early prototyping stage. It's FAR more important that your guy can implement and test your ideas quickly using best practices he (or she) already understands, rather than scratching heads learning an unfamiliar framework.
For what it's worth, from what you've mentioned about your project, if you'd hired me I'd have probably recommended Drupal for this project - IF you know what you're doing, the basics of a Yelp-style review service can be implemented pretty quickly using user-contributed modules in Drupal, and you get a bunch of things (basic user and community management, action level ACLs, RDF, blogs, and regular CMS style functions etc.) for free. You just need to apply a theme and away you go. Drupal is a great fit for your use-case.
The catch is that the learning curve to Drupal is substantial - sitting as it does in a strange gray area between being a CMS and a framework, it's got some strange idioms that take some time to appreciate. If I was new to Drupal, the time saved by having those functions built for me would likely be more than offset offset by the effort I would spend trying to hack/understand Drupals themeing layer, get modules to play nice together etc. Futher Drupal is essentially written in a functional style (few objects at all to be found), which may be a bit of a mindf&*k for someone coming from an OO framework like Rails.
There's also the PHP/Ruby issue - best practices for deploying a Ruby on Rails app (and scaling it) are in many ways quite different from deploying a Drupal/PHP app. Neither is 'better' necessarily, but bear in mind it may also be a whole set of new skills your guy has to master.
Both Drupal and Rails scale very well (assuming you use them right, of course). Whitehouse.gov runs Drupal, and the front-end of Twitter ran on Rails (at least until recently). If you ever hit levels of scale beyond what these sites need... well that's a good problem to have :)
Finally, if you do decide to use (or at least try) Drupal, make sure you check out the Drush and Aegir projects, which will help enormously in deployment.
Instead I would look at Pantheon's Project Mercury. It's an entire Drupal stack based on Pressflow, MySQL, Memcached, APC, Varnish, ApacheSolr, BCFG2 and Hudson. Their main website is now really pushing their commercial hosted solution but it's still open source and available for download via Launchpad - check out http://groups.drupal.org/pantheon
I did not know this. Could elaborate or possibly share an example?
See http://drupal.org/node/547518 for some more examples.
Most of the things that you will need for site are in-built. Including - user profiles, custom content types etc.
It will speed up your development time 10x.
Also, you can easily run Drupal on any shared hosting, while a Rail apps is enough to get you banned for server overload.
Drupal is right choice for user-generated content site. If you are building an app, then think of Rails. I am not a very techie either but I own several content driven sites and some Rails apps, so sharing my 2 cents.
Hope you are not thinking of switching later. Rewriting the whole thing in another language will be waste of time and money.
He is indeed learning Drupal more or less from scratch so for him the investment in helping me build my app (using his emplyees time) is that he gets to learn a new platform regardless of whether our startup works out. When I worked on projects with him before he was mostly doing the back-end database stuff and my in-house developer was doing the integration and front-end.
It's good to know that for a review style website Drupal is not a bad choice. Even as a non-techie I find myself drinking the Ruby on Rails kool-aid (but at least I was aware of it)! The modules you mention are indeed the ones he was mentioning as useful for our project.