Posted by brant : 2007-02-07 at 2:43 pm

Many people out there might be thinking of creating their own democratic user driven site. Some people refer to this as a “Content Management System”, while others simply refer to it as the Digg Model. No matter what you call it, the success of the site hinges on the functionality and presentation of the content. I have recently gone through this challenge from the ground up and decided to write this blog to help others who may follow the same path. Because of the size and uniqueness of each digg-clone project (is that an oxymoron?), it would be impossible for me to write a “How To” article. So instead, I present you with the three biggest challenges you will face creating a site like this. My second goal, of course, is to help get the word out on www.celebritypwn.com . But this is my site so whats the difference. . .

I present this article from the point of view of a self-taught php programmer with roughly a year of freelance experience. I am now a little over a month into the project. I have had no prior experience with JavaScript, especially JavaScript with AJAX requests. It is important that you have experience with at least one programming language to base the foundation of the site on. As you probably noticed, I have also used various php code examples and scripts to aid in the completion of the site. I’m not ashamed to admit I know how to use Google J. It is also important to realize that you do not have to reinvent the wheel. If something is out there that you can use, then go right ahead and use it.Having said all of that, on to the three obstacles. . .

First, envisioning the database required to house your imagination. This is fairly obvious with any big project. However, this is my first attempt at a complex site and many of you may not realize the importance of thoroughly planning things out. As you begin to think about your own CMS, a lot of ideas pass through your head. The trouble is finding out how to organize these thoughts into a manageable system. For example, you take a look at digg.com and you right off the bat realize how things are organized. Do you want the user to create their own organization by means of user-defined tags or for the site to organize for you? Obviously Digg chose the ladder. This decision needs to be made during the initial development stages.

Deciding how to organize the site is also related to how you present user submissions. Story promotion is a direct result as to how you structure the tables in your database. This means during your initial brain storming of features that you must account for keeping track of a lot of information. Deciding how to promote stories while at the same time stopping cheaters can be challenging. The site can be as basic as keeping track of votes or as complex as taking into consideration ‘down votes’, the time of submission, and the class of the user who submitted it, etc. Sometimes you might want to grab more information than you might *think* you need, because later on you will realize more data is necessary to accomplish your goal(s). Right now I have six different tables to store the necessary information to make the site go-round. But do not try to stuff too much data into one table and make it needlessly confusing and disorganized.

Secondly, the user submission page is vital to the site’s success. I realize this point is closely related to the first, but it can make or break the site. The submission form is important for two reasons. 1) It is the most challenging part of the php coding process. If you can do this, you can probably do the rest of the php coding that is required. The submission form itself took me over a week to complete. This should be your starting point because you need data to manipulate. 2) This is what every user uses to make your site a success. Anything that can make the user’s experience easier, such as an auto complete box, should be done! It’s worth the extra time. Make sure it is presentable and as easy as you can make it. Test, test, and test the submission form some more. As I began this project I thought to myself that if I can do this submission form than the rest of the site should not be as hard. This proved to be half true J

Finally, the voting system and the incorporation of that catch phrase known as web 2.0. I realize not everybody knows multiple programming languages. However, you really should try to add JavaScript to your repertoire. I also realize that many people cringe when some noob throws around web2.0 catch phrases such as ajax, so I will try to be brief :) The bottom line is that the use of an ajax voting system is critical for a digg-clone site. There is no other way about it because end users today are used to functionality that is smooth and instantaneous. Developers unfamiliar with JavaScript and never heard of an XmlHttpRequest are in for a wakeup call.

This proved to be my biggest hurdle. I made a basic ajax voting script and I was fortunate enough to have a friend who could help take it to the next step. If you need to hire someone for all your JavaScript needs, then do so. If you plan on learning yourself, then check out Ruby on Rails and/or Prototype.js. There are plenty of tutorials around to help you get started. Ajax is no longer optional in most cases. There is no more web 2.0. Two years ago you might call it that, but today that kind of stuff MUST be in sites created from at least 2006+ (where needed).

Your site should have its own unique spin on something. If its been done exactly like this before, then you are wasting your time. I took note of what was out there on the internet and decided that a celebrity gossip site was needed. There are many other niches that need filling. I could go on much longer talking about potential snags that you can hit, but this article is a good starting point for those curious. If people are interested in this article and want more, then I will be happy to revisit this topic. For now, I really should get back to work on my site. After all, people can’t even vote against stories yet!


Similar Blogs:
AimStats 3.0 And My Tv Rant


Comments (2)


hm2k - 2007-03-15 at 20:48:28
This seems to be a familiar topic :p

http://www.hm2k.com/posts/creating-a-digg-clone-for-your-niche-market

kid sins - 2007-02-27 at 00:15:36
too much shit to read. =_=


Add Comment