How I Built a Web 2.0 Dating Site in 66.5 Hours

by Mingle2
Let this be a testament to Web 2.0 and the effectiveness of rapid development frameworks such as CakePHP: I built a full-featured dating website, from concept to launch, in 66.5 hours. In a typical 9-5 job this would amount to about a week and a half.
Let this be a testament to Web 2.0 and the effectiveness of rapid development frameworks: I built a full-featured free dating website (http://mingle2.com), from concept to launch, in 66.5 hours. In a typical 9-5 job this would amount to about a week and a half. Deliverables included:

The Idea - Cooking up a brand with a name, identity, and purpose

Planning - Creating functional specifications, visual wireframes, and information architecture

Design - Creating mock-ups and defining aesthetics, typography, positioning, and color

Development - Writing the actual code

Testing - Ironing out the kinks

Launch - Going live


I didn't do this in 66.5 consecutive hours, mind you, these are actual hours I spent working on the website. I have a day job that keeps me pretty busy so I could only work on this during my evenings and weekends. I started keeping a log after the first couple of days because I realized how quickly everything was coming along and I was curious how much time it would take me to finish. This is a guide providing tips and tactics I employed to develop this website in such a short amount of time.


Identify an Opportunity I'm single and after trying the online dating thing I quickly ascertained two things:
- The paid online dating market is very saturated
- The free online dating market is also saturated but with sites that are clunky, difficult to use, so littered with ads they're nearly unusable, and bombarded with useless features
I saw an opening and I took it: I knew I could build something better in a very short period of time with almost no overhead. The beauty of this is that if this site isn't successful there's no layoffs, burned VC funding, and I'm ultimately not contributing to another dot-com crash. All I've lost is 66.5 hours and a couple bags of coffee beans, I'll just go back to my day job.

Brain-dump First I did a brain-dump of all the features I'd like to have on a dating website. I didn't put them in any particular order or attempt to categorize things, I just wrote them down as they came to me. This is a great tactic for just getting it all out there, save making sense of it for later.

Generate ideas from your competition I didn't want to lock the feature list into only my ideas, so I went and signed up for nearly a dozen online dating websites and got a feel for how most of them work.

Brain-dump some more After a couple of hours of surfing competitor's websites I did another brain-dump of features. I combined the list of their features with my own.

Have a specific goal, don't try to make the website do everything I took the feature list and narrowed them down to only those that served a single purpose: providing a means for singles to find and communicate with one another. I ditched all the popularity contests, "rate my photo" clones, and other features that didn't directly contribute to this goal.

Keep. It. Simple. Stupid You know those collars for dogs that issue an electrical shock every time they start barking? I wish every CEO and marketing professional in the tech industry could was equipped with a similar device that would shriek "KISS" into their ears every time they began making things unnecessarily complex. Throughout development I would remind myself of the KISS principle.

Minimize interference Only utilize other people when you absolutely have to, especially if you plan on keeping overhead low. I saw the project from start to finish before I wrote a single line of code and knew that I could do everything on my own. There were no design meetings, Gantt charts, or conference calls - just myself, my computer, and my ability.

Avoid "feature creep" Although this problem is usually more prevalent when working with a client, it can happen while going solo as well. Learn to avoid letting an idea grow and distort to the point where you're 6 months into a project and all you have to show for it is one of the most massively complex nav bars in the history of the internet. Learn to turn the idea knob down, but not completely off.

Web 2.0 names are going to be very tacky in a few years Prefacing your domain name with "cyber" was very popular in the mid-nineties, but would you do it now? I think Web 2.0 names like "SquaBlar", "Fastr", or "thisdomain.is.friggin.ridiculo.us" are going to quickly become passe. I wanted a name that was clever, indicative of the site's purpose, and was easy to say and type. Plus I get to use the superscript tag :)

If you get stuck on something, put it on the backburner I actually had a pretty hard time coming up with a name. I knew that naming the site was not crucial to completion, so I put it off and worked on other things. I actually referred to the site as "barnacle" for the majority of development because I needed a temporary name and it was the first thing that came to mind.


Prioritize features so you can give prominent real estate to those that need it I took the list of features I'd made from my brain-dump earlier and ranked them according to priority. I made it so the primary features would be accessible in the most visible sections of the website, in Mingle2's case this would be promoting that the site was free, the login/signup, and the "search singles feature." It's absolutely critical that you have a sense of priority before you begin designing a website.

Put a lot of work into the functional mockups A functional mockup is basically a design with no pretty stuff. There are several tools and methods for creating a functional mockup: prototyping software, scribbling on a whiteboard, drawing it in photoshop. Some people prefer starting out with a taxonomy, others like to draw the pages. I prefer pen and paper with the occasional whiteboard. I usually start out by drawing how all the pages relate to one another, like a road-map. From there I draw what's actually inside those pages and try to get an idea of how it all relates. This usually involves a lot of writing, crumpling of paper, and writing again. Don't expect to get it right the first time, I've had pages where I'll lay it out dozens of different ways before I'm happy.

Mix it up, keep things interesting I didn't outline every single page on Mingle2 in one go, I stopped and switched to working on the visual parts of the site often throughout the planning phase. I interspersed designing the logo and visuals in between to keep me motivated. It's important not to dive head first into writing code or playing around in photoshop, but don't feel obligated to map out every piece of your site before you start playing around. Switch up tasks frequently, it'll make you enjoy it more.

The Design Next came the fun part: creating the design that I intended to eventually turn into HTML. There's an endless amount of knowledge one could give another about creating a great design, but instead I'm just going to focus on what I wanted to achieve visually with Mingle2:

1. Balance - I placed special emphasis on this on the home page, I wanted the elements to be in a state of equilibrium. One of the most balanced sites I've ever seen is Gr0w.com, I wanted to achieve something similar.

2. Holy crap - I wanted to create something that would incite a "holy crap that's pretty" reaction from a newcomer to the website. I don't know how close I came to achieving this goal, but I'm happy with how it turned out.

3. The Year is 2007 - The majority of competing websites look like they were designed by dinosaurs, I wanted to outshine them in this regard.


Set little itty bitty goals and watch how much you'll get done I work a 9-5 job and I normally spend over an hour exercising every night, so when I arrived home around 7pm my work ethic was usually in the gutter. The best tactic I found for motivating myself was to set a very small goal, such as changing some columns in the database or adjusting margins on a certain page. Typically, once this small goal was achieved it would lead into other things and pretty soon I'd gotten three hours worth of solid work done.

Utilize rapid-development frameworks I built this site using CakePHP, a rapid-development framework that is best described as rails for PHP, using design patterns such as MVC and ActiveRecord. Frameworks typically take all the repetitive tasks out of web development such as CRUD (create/read/update/delete), forms validation, and data sanitization and instead let you focus on making a killer website.

Expect a learning curve from whatever framework you choose This is the fifth site I've built using CakePHP so I know my way around. Don't expect that by switching to a rapid-development framework you'll instantly save a bunch of time, there's a bit of a learning curve.

It's out of the oven I'm very happy with how Mingle2 has turned out. The design looks good, the code is clean, and it just plain works well. The best part is: If Mingle2 fails and goes quietly into the night, it was only 66.5 hours out of my life.

http://mingle2.com - free online dating

Report

More on Case Studies

Advertising

Comments

  • rudiedirkx posted on 01/26/11 09:15:54 PM
    You might wanna read up on what web 2.0 means. It's not new or special anymore (yeah it wasn't new or special 5 years ago).
  • Phenomenal posted on 07/05/10 11:55:44 AM
    Hi,

    I am laying my foundation for my dating website (all on paper). I have no html or web design experience and I am on a limited budget.

    I contacted online business about building the site for me, on my vision and have been quoted as low as $800.00 to $1600.00. Well, my budget does not fall in that range as I am a single parent.

    I have a great vision and I want to get my project underway.

    In your opinion, can I build this myself?? By the way, what do you charge for your assistance?

    As I am starting from scratch, any help you can offer will be greatly appreciated.

    Tanya
    • fcaceres posted on 01/25/11 05:55:23 AM
      [quote] Hi,

      I am laying my foundation for my dating website (all on paper). I have no html or web design experience and I am on a limited budget.

      I contacted online business about building the site for me, on my vision and have been quoted as low as $800.00 to $1600.00. Well, my budget does not fall in that range as I am a single parent.

      I have a great vision and I want to get my project underway.

      In your opinion, can I build this myself?? By the way, what do you charge for your assistance?

      As I am starting from scratch, any help you can offer will be greatly appreciated.

      Tanya
      [end quote]
      [quote]
      I don't think is remotely possible for you to create any kind of website in CakePhp without knowing how to program using Php the CakePhp way.

      [end quote]
      • fcaceres posted on 01/25/11 06:00:48 AM
        I don't think is remotely possible for you to create any kind of website in CakePhp without knowing how to program using Php the CakePhp way.
  • jt715 posted on 05/24/10 05:27:36 PM
    I had a dating site back in the early 2000s, not as nice as yours. Well done, quick question, how did you get users? I know with several of my projects in the past it has been an issue. Any tips or tricks? Anything you did in the programming to assist in SEO, or membership drives?
  • keyboard posted on 04/25/10 12:26:57 PM
    hi, do you mind sharing the source code..? ....please...
  • ankesh27 posted on 07/14/09 05:35:30 AM
    Hello Developer,

    Can you tell me which forum you have used in the application.

    If any 1 else can let me know it will be great for me.

    Thanks,
    Ankesh
  • andrew439 posted on 02/13/09 08:38:24 AM
    Hello

    Can you give me some advice in uploading database on my web site. Any suggestion on codes to use.
    email anf055@hotmail.com
    Regards

    Andy
  • poncho posted on 05/06/08 02:31:25 AM
    Hi Matt,

    I signed up to Mingle2 ages ago and loved it. I was disappointed when it was closed in favour of JustSayHi, but that is the way of things. The problem is a lot of profiles are still active: http://www.mingle2.com/users/view/601
    Is there any chance they could be taken offline?

    Cheers;
    Poncho
  • jameso87 posted on 04/07/08 09:29:24 AM
    A great article, How did you market the site?
  • PeterMan posted on 02/01/08 12:31:37 PM
    I just wanted to say thanks for writing this, it is a really good article, well written and very informative. Good luck with the site!
  • louiemiranda posted on 01/04/08 01:03:33 AM
    Will some of the source code be available? I was hoping if we can learn from it as a newbie? Especially on HABTM.
  • browolf posted on 11/10/07 07:40:46 AM
    You can get an idea of the original site on the wayback machine
    http://web.archive.org/web/20070629231708re_/mingle2.com/
    how much did you sell the site for?
  • markstory posted on 11/01/07 07:02:06 AM
    Congrats on selling mingle2 but is there an archive of the old site for posterities sake, perhaps with just a single demo account to allow other bakers to look at the application with?
  • vautrain posted on 10/22/07 11:41:54 PM
    into a nice new gig. Congrats!
  • adamh posted on 10/18/07 08:04:59 AM
    It's rare to get an article that does so well a job of explaining the proper way to attack a project....but this is definitely one of those article. I love it.
  • vautrain posted on 09/29/07 10:42:09 AM
    Really nice work, and a nice overview article. I do have a couple of comments about the mingle2 home page. The home page is too long, but the biggest problem I see with the home page is the lack of photos. A couple of photos of singles (one M, one F) on the home page would make it much more enticing.
  • 1dollar posted on 09/13/07 05:43:50 PM
    If you can do that you must be very competively priced as developer ;-)
    • toby1978 posted on 01/27/10 02:42:01 PM
      Is there any way to contact you? Would like to offer you a project....
  • bradt posted on 06/20/07 03:52:47 PM
    Great work, but as I realized when contemplating building a dating site the biggest hurdle is gaining a user base.

    Fortunately now with the Facebook Platform http://developers.facebook.com/, you could grab some market share if you act quickly and develop a good Facebook dating application.
  • dk4210 posted on 06/20/07 12:43:22 AM
    Hey Mr. Boyd,
    Could you please email me I would really like to get your input on a project similar to yours. dankelly2006@gmail.com Thanks, Dan
  • hurricane posted on 04/22/07 05:24:22 PM
    Hello,

    My name is Vyacheslav and I am developer from Odessa, Ukraine. I began to learn CakePHP now and find them very helpful.

    But it is not very good idea to learn using "articles" and "tutorials" only. It is interesting also ot see framework power on the real working site.

    You have done great job - site looks great. But can I ask some not correct question - can You give me source code of this site? I see, that it is 100% free. It is very interesting to me to see, how CakePHP helps You to create those site.

    Regards, Vyacheslav
  • freakcode posted on 04/16/07 05:55:56 PM
    The site looks and works awesome. Can you email me more details about the implementation?

    One thing: fixing encoding, when using portuguese characters like 'ã' or 'ç' I'm getting the wrong enconding.

    Congratulations, its a cool site to use as example of CakePHP power.
  • buck2769 posted on 04/12/07 01:22:36 PM
    What is the license for this? Is it/will it be open source?
  • JDoe posted on 04/11/07 07:49:42 PM
    Hi M.Boyd,

    Do you undertake consulting/freelance assignments? Also, do you undertake development or do you just provide
    consultancy?

    I have a project that needs to be developed.

    Kindly let me know if you'd be interested.

    Thanks for your time.

    Warm Regards,
    john@jdoe.net
  • mmahgoub posted on 04/06/07 10:12:11 AM
    Really great work, the site is usable and has a very nice design.
    we would like to know more about the technical issues for example how did you theme the site? did you use Smarty?
    did you face any kind of problems, with ACL for example?
    -thanks
  • xodnx posted on 04/03/07 10:14:47 AM
    Great work on the article and real great work on the website.
    However, one thing does bother me... At first glance on Nimble², I found it hard to work out if the single "entity" I'd looked up was male/female or baboon! Is it me or is specifying one's sex an option on Nimble²? I might have missed something though. It just seems that one specific profile from "something" in France hasn't mentioned if it was a He or a Her.

    Still, great job you did there!

    Good luck
  • ZeMMs posted on 04/02/07 10:27:55 PM
    This is a great write-up and very straight-forward. I've been spending my time looking around for a nice PHP web application framework for me to stick on to. Found CakePHP and immediately fell in love with it.... :D
  • silentshtorm posted on 04/02/07 06:12:20 AM
    but I'd like to know more about technical details
  • neilc posted on 04/02/07 04:03:45 AM
    Wow, great site, looks and works brilliantly, but I would have required users to authenticate their email addresses when signing up by sending them an email with an activation code in or something - otherwise you could end up with fake sign-ups.
login to post a comment.