Is Drupal a good framework choice for a dating site?

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
rsanaie's picture

Hi Group,

I'm about to start developing a dating site, just need some basic functionalities and it seems like it's pretty straightforward to design it with Drupal. Just wanted to hear about your experiences designing such site and had some questions. I just heard about Drupal a few days ago and installed it and now loading up some modules in it.

1) How's the performance of Drupal under heavy load? I read some article online that when caching is enabled performance increases up to three times.

2) There's an old saying that the best framework is no framework. I've experienced that myself with Zend, it was very convenient to do most of the ordinary stuff, but on the other hand it had my hands tied if I wanted to do some simple but out of ordinary stuff (specially with ZF DB). Is it the same story with Drupal?

3) I've been reading that Drupal has a pretty steep learning curve, is that for a beginner user or even experienced one? I have been programming with PHP for 5-6 years, "developed" (or should I say configured) an e-commerce site with Joomla for my dad's business and have been doing contract works here and there.

Also some of the people who have posted to this forum, their links aren't working. Are those failed projects due to lack of development time? lack of marketing? or wrong pick of a framework for the job?

Any response would be greatly appreciated.

Reza

Comments

Hi, now I am going to speak

detectedstealth's picture

Hi, now I am going to speak bluntly and from experience.

I had a dating site running on drupal for 3 years. I do not recommend it, I just redeveloped the entire site using Django.

When it comes to dating sites you need a lot more customization then a static drupal framework can offer you. The database requests will eat up your bandwidth, and finally it comes stock with way to many features you don't need.

I would use drupal for other types of sites but never for a dating site or anything that needs heavy customizations again.

@detectedstealth : What kind

artscoop's picture

@detectedstealth : What kind of problems have you had ? I have a dating site called Site de rencontre which is not under heavy load at the moment. At this moment I can have a maximum of 40 simultaneous users (guests and registered), and the CPU usage is really not high (fortunately). Mild memory usage.
And indeed, I have some worries about heavy usage.

What was the usage of your site when you had to switch to Django ?

I think Drupal needs more resources and needs a lot of clever customization than other frameworks.

My site had on average 5000

detectedstealth's picture

My site had on average 5000 simultaneous users. The pages will hang and take forever to load, CPU usage was high at times.

Worse considering everyone knows Drupal there were lots of bots targeting my site. The worse problem was the virus that hit and rewrote all my PHP files.

There are several reasons for the switch:
Memory, CPU usage, high database queries.
Now that I know the type of viruses that can target PHP files. (The same problem CAN NOT happen with python).

Django allows everything to be modular don't get me wrong django still requires memory to run. But my current site is using 0.1 MB of ram.

You have way more control over the UI without having to just intercept everything. Not sure if I am the only one to see intercepting code as bad and bloated.

Finally I wanted to start using a full fledged programming language instead of PHP. Python produces cleaner code, easier to work with, you can do a lot more things with python, can write modules in C/C++ if you really require performance.

Don't get me wrong drupal is great for some purposes however the more experienced I get the less I use it. It was my main CMS for 6 years.

No-framework Framework

rsanaie's picture

The more I think about it, I'm leaning more towards not using a framework at all, and implement whatever I want myself or get outsource it to India or hire a coder site.

But I'm still thinking about using PHP as the main language. What problems were you experiencing with the PHP language and do you have any reference articles regarding "the type of viruses that can target PHP" ?

Thanks

Here is a wordpress example:

detectedstealth's picture

Here is a wordpress example: http://techcocktail.com/wordpress-hacked-virus-cloaks-search-engines-201...

Just type php virus attacks in google.

I would never ever ever outsource this type of project to India from my experience every single person I worked with from there wrote really bad code (probably not all of them, only the ones I dealt with). Did you know to get honors in school there you only need 55% that is a fail in Canada.

Besides that php as a language is just ugly. Like why do you need $ in front of all your variables? Or the array ( array ( array ( array ( array () ) ) ) ) is hard to follow at times.

I am mainly a c/c++ coder but come on for web give me something cleaner to work with. My hatred from coding with PHP is after 8 years of coding with it and then being introduced to Python, and Ruby. (I also really like Ruby)

FUD...

proindustries's picture

As somebody who created a dating site earlier this year (didn't go public due to business partner sillyness), I can say if I had to do it again, I'd again use Drupal. The site I did had a lot of social networking functionality - I was able to find Drupal modules that did several of the key pieces of functionality that I needed - saved me weeks of coding, I suspect. If you look at the various LARGE institutions using Drupal, it's pretty hard to argue that it's not a solid platform (whitehouse.gov, economist.com, fedex, nike, etc).

As somebody who has been in information security for over 10 years (managed services, technical co-founder a security company, currently doing penetration testing and secure code reviews) I can say the "PHP viruses" argument is pretty lacking. Every platform is going to have issues, the issues in Python/etc just haven't been found yet. Any platform you run requires management, maintenance, and diligence. Additionally, the WordPress vulnerability mentioned in the link above is a WordPress vulnerability, not a PHP vuln. Understand the differences. The important issue (within reason) is not whether a software package has a vulnerability, but how the development/security team respond, and how quickly.

Languages - PHP started as a scripting language with a simple learning curve. It's grown from there, not always in good ways (see: object orientation, breaking backwards compatability). That said, every language has it's ups/downs, pick what is best for the situation. If I need to rip out a few web pages with dynamic content, I'll choose PHP. If I'm writing an enterprise software package, I'll probably pick Java/C/C++. Ruby has a nice following, but honestly it's pretty immature (see: speed, multithreading).

As somebody who's run development teams in foreign countries, I can say if you know what you're doing, the work will turn out just fine. Especially if you can find a strong tech lead to have on-site who you trust. It comes down to how well you create specifications for what you want and how well you communicate with those teams.

Reza - happy to talk through details with you if you're interested. Regarding performance, check out pressflow.org - it's a performance tuned version of Drupal. Drupal has (IMHO) a pretty steep learning curve. I'd try to do one or two small project sites before you work on your main project. Become very familiar with drupalmodules.com and drupal.org/handbook. If you decide to go down this path, I strongly recommend getting a copy of Pro Drupal Development - really good book.

John

Hi proindustries, I read that

jsulmar's picture

Hi proindustries, I read that you created a dating website. Would you be so kind as to list the modules you used? Would you be willing to share or sell your implementation notes? I see that you did not go into production, but is there a URL where I could see your implementation? Thanks much.

Thanks for your detailed

rsanaie's picture

Thanks for your detailed responses.

@detectedstealth: Yea I kind of find it heard to believe that PHP is not a secure language. Facebook I believe uses it and I'm sure they're always under heave attacks.

@jlkinsel: I also believe that Ruby is a good language but not a mature one yet, that is why I'll be using PHP for this project. As for the framework, I don't need all the social networkings that your website required. I'm trying to keep it as simple as possible. Just user registration, profile page, user search based on compatibility and private messaging. Do you still think that Drupal would be a good choice for this project? Have you ever looked into one of the many sets of "minimalistic" PHP frameworks that are under certain (let's say 50) KBs? What do you think of the "The no-framework PHP MVC framework"?

Thanks,
Reza

Hey you just asked me why I

detectedstealth's picture

Hey you just asked me why I don't use it anymore. I spoke my mind, I hate the language syntax more then anything but that's probably because I am a hardcore C/C++ programmer (writing games etc)

My site got hit with a PHP virus it went through all the sites I had on my shared host so when 4 sites go down and you loose lots of customers there is a big problem.

You also can't really compare me and facebook for a few reasons: 1) They have over 500 developers and 2) There PHP code gets compiled.

Ether way language choices are up to you. I have my reasons for switching. Like I said I was using PHP and Drupal for a long long time.

We all have different experiences I have been developing for 12 years, and as I am sure you know things I don't know and you have experienced things that I haven't it goes the same two fold.

Anyways if you stick with drupal for your dating site great. All I can do is share the experience I had and why I changed technologies.

Simple framework...

proindustries's picture

Reza - Can't say I have any experience with The no-framework PHP MVC framework. Looks interesting, but is it maintained? Sounds like he's using the PECL filter package, which I believe is depreciated. I've worked with CakePHP before, it seemed to do the trick at the time, but personally I've drank the Drupal Koolaid for my "simple" web projects. The aforementioned dating site we intended to eventually rewrite in a "real" language once we have proof-of concept and a user base.

Basically, it comes down to this: Obviously, find the lightest framework that does what you need. No need for extra baggage. That said, find something that will grow with you for some period of time, say a year or two.

Based off your last message, you need session tracking, user registration/management, profile display/editing, internal user to user messaging, external system to user messaging (password reset, message notification, etc), probably some sort of search (geographical or at least text) functionality, filtering of all user input/output, probably database support, and administration...if your team is more than just you, this needs to be documented and easy for others to manage as well as yourself.

I'd say make a list of what functionality you want to launch with, what functionality you want to add within a year, then see what frameworks can support that. The one piece of advice I very strongly recommend, is create as few of these pieces yourself, at first. Bootstrap yourself using the works of others - it might not do exactly what you want, but it'll get you up and able to play with the system and think about exactly what you do want, then you can tweak/refine. At the least, I recommend not writing the security code yourself - look at OWASP.org in general, and their ESAPI in particular.

good luck!

John

PS: Because you brought up

detectedstealth's picture

PS: Because you brought up facebook here are some facts for you: http://developers.facebook.com/blog/post/358 Drupal doesn't do this and probably never will but I don't know for sure.

Drupal does it.

proindustries's picture

Pressflow, the previously mentioned performance-tuned distribution of Druapl, supports HipHop, although I can't say how well:

https://wiki.fourkitchens.com/display/PF/Building+Pressflow+with+HipHop+...

I've used APC with Drupal in the past, I'm lazy at the moment but would be curious to see what performance boost HipHop gives over APC...

Drupal dating page

caserman's picture

I made dating page with drupal within reach modules. It is on slovenian language and it is in production for now. You can look and make profile for test (or login with Up. ime: test Geslo: test) at http://najdipartnerja.si, but unfortunately is reachable only in slovenian lang. I attach GTranslate for help but i dont now it is work or not. If you like page, and you want have the same on your language you can contact me.

Looks good.

daniel sanchez's picture

Looks good.

-Daniel Sanchez

@detectedstealth : I was

artscoop's picture

@detectedstealth : I was wondering. You told a few months ago that you rewrote your Drupal dating site in Django.
At the time you wrote about Django, I got curious about it, and I finally learned it one a a half month later.
I now have some more comments and questions to make on your first answer.

I had a dating site running on drupal for 3 years. I do not recommend it, I just redeveloped the entire site using Django.

I have a complex Drupal site that has run for a year and a half, and have had many memory issues (4GB full and Swap full : server down) with only peaks at about 45 simultaneous registered users, sometimes twice a day. I had to change the server setup to use FCGI+Worker MPM. Now it is much more stable, but I have to reboot the server everyday with a cron job to prevent memory issues.
Also, Drupal has a great power of customization, but no matter what I do, I have had a terrible experience with the ergonomics of the produced site, especially for...user profiles.
I cannot recommend Drupal either knowing the issues I have had, and the overall performance of the site, despite the numerous optimizations I have made (there are others optimizations that can be made, but they won't save the excessive 400+ queries per page.

Now, I have a few important questions :
Was your Drupal site complex ? (did it use many modules) ?
Did you export the relevant Drupal site data to your Django database ?
If so, have you had an impact on the number of visits, Google ranking, etc. ?

Thanks

Hi, Looking at the posts

ebhakt's picture

Hi,
Looking at the posts above it is not good to host a popular dating website with drupal.
As it is interesting to see the gentleman above who hosted the whole site again with django

Its interesting to see that the django website offers better parformance.
It would be good if the gentleman can share a good comparison chart of the two (drupal vs django) for the two sites.

In my personal view , drupal is good but when it comes to host huge database driven websites it is not good to do that with drupal.
django is a good option.

well it would be great if someone can point out how fare is it to do a website/portal in JSP/servlet engine
Please compare it performance wise.

Thanks

Bhaskar Tiwari
Freelancer Developer and Active Directory Specialist
Previously with Directory Services, Microsoft


All we have to decide is what to do with the time that has been given to us

Personal:

http://ebhakt.info/

Professional:

http://www.ebhakt.com/
http://fytclub.net/

http://crackzhack.net/

Bhaskar Tiwari
GTSE Generalist
Directory Services
Microsoft
http://www.ebhakt.com/
http://fytclub.net/
http://crackzhack.net/
http://ebhakt.info/

Hello Bhaskar, Like

artscoop's picture

Hello Bhaskar,
Like detectedstealth I've switched a Drupal site to Django. It could have been anything, Tuborgears, the Zend Framework, anything you like. Anyway, even when your site is not popular, you will need a much, much, much more powerful hardware to host the same site with the same amount of traffic with Drupal.

I had written an article (in French) a few months ago about the switch from D6 to a framework. Apart from the export/import of the Drupal database (a real PITA), the site was redeveloped quickly (but you will need some skills), less than 2 months.

From a DB performance point of view :
- Drupal used to stress the database for anything. Any page took hundreds of DB queries, with various caches enabled (Cache Router, memcached, xcache and routing)
- With Django I can have as little as 8 queries in one page, but more generally no more than 20 queries (except for thumbnails...).
We're comparing apples to elephants here.

About the rendering performance :
- Often, pages spent more than half a second to finish rendering, even when the DB calls took a few hundredths of seconds. The Drupal rendering pipeline is...very complex and thorough for a CMS, but takes so much CPU...
- The template systems of frameworks are generally quite fast, not very comparable either with Drupal's.

The memory footprint :
- A complex Drupal site, a community site in our case, needs quite a bunch of modules. And you will quickly have to set your PHP script memory limit to 256MB, or more. It is huge.
- Never seen such problems with Django.

It is important to recall that a popular site can be built over Drupal. I would just not recommend it, now that I've tried something else.
Just take a look at a fail story with Drupal : http://techcrunch.com/2010/07/21/france-fr-still-down/
(problems due to poor testing of the site and memory difficulties on high load)