

Building my web startup in Drupal vs. Rails? - Major_Grooves

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.<p>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.<p>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?<p>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.<p>Any advice would be very welcome. Thanks. :)
======
ajessup
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.

~~~
cadencemcshane
> _Futher Drupal is essentially written in a functional style_

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

~~~
mikey_p
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.

------
zeemonkee
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 ?

------
kingsidharth
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.

~~~
aonic
I agree, Drupal would be faster development wise for a review website. Make
sure you check out Pressflow <http://fourkitchens.com/pressflow-makes-drupal-
scale> so you can scale easier down the line

------
Major_Grooves
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.

------
MarinaMartin
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?

------
ashedryden
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.

