Building my web startup in Drupal vs. Rails?

5 points by Major_Grooves ↗ HN
I'm the non-technical side of our startup and while I trust my partner, I just wanted to get some perspective on how we're currently building our website.

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 ] thread
When building something for a startup the rule of thumb is to use the tools you know best. Your priority is to build something quickly, that you can show to potential customers or investors, not to learn a new tool. For that you can do a weekend or side project.

Aside from whether it's a good idea to use Drupal or not, why is he using something he doesn't know ?

Do the tutorial at http://railstutorial.org. It's SO important for the non-technical folks to at least be able to whip up an app on occasion, to be able to hire technical people effectively, to communicate your needs effectively, etc.

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?

I've written sites in both Rails and Drupal, and so am somewhat qualified to say... it doesn't matter. Have your guy pick what he feels most comfortable with and run with it. Either Drupal or Rails would be a fine choice.

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.

I was agreeing completely with this entire post up until you mentioned Aegir. Whilst I keep seeing lots of people who absolutely love Aegir, it's caused me so many headaches that it really isn't worth it when you're planning on hosting just a single website.

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

> Futher Drupal is essentially written in a functional style

I did not know this. Could elaborate or possibly share an example?

Generally Drupal doesn't use a class or similar OO construct to manage it's organization of individual modules. Some of the various sub systems of Drupal are moving to more traditional OO structure (such as the database abstraction layer) and some module do as well, but it is definitely not required by the framework the same way that most MVC apps such as Rails are setup. This doesn't mean that Drupal doesn't/can't have a clean abstraction of presentation, business logic and routing, but it's not enforced in the same way that some other frameworks handle things.

See http://drupal.org/node/547518 for some more examples.

Though it's not a good idea to compare a CMS (Drupal) with Rails(framework) but since your's is a review site - Drupal seems to be a better choice.

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.

It's less important what the site is built it than the fact that it's built, can do what you need it to do, and it can sustain heavy amounts of traffic.
Thanks for the comments everyone. I think you have reassured me that what he is doing is the right choice for what we are building.

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.