LebGeeks

A community for technology geeks in Lebanon.

You are not logged in.

#1 October 21 2013

SirajMansour
Member

Advice on developing a social network

Hello Everyone,

I am doing research on assembling a team, using the right tools, and the cost to develop a highly responsive social network that is capable of dealing with a lot of users. Similar to the Facebook concept but using the basics package for now. Profile, friends, posts, updates, media upload/download, streaming, chat and Inbox messaging are all in the package. We certainly do not expect it to be as popular as Facebook or handle the same number of users and requests, but in its own game it has to be a monster, and expandable for later on.

Neglecting the hosting, and servers part, i am looking for technical advise and opinions, on what kind of team i need ? how many developers ? their expertise ?

What are the right tools ? languages ? frameworks ? environments ?

Any random ideas about the infrastructure ? Quick thoughts on the development process ? Please use references, if you have any to support your ideas.

Development cost mere estimation ? *NEGLECTING THE COST OF SERVERS*

I heard the guys at EL-SAWT did an amazing job ? i did try it for a little bit and i can seriously congratulate them.
Any information or notes based on their experience are highly appreciated.

I know my question is too broad, for any help you can offer i thank you in advance.

Regards,
Siraj Mansour

Offline

#2 October 21 2013

Joe
Member

Re: Advice on developing a social network

Build a product as quickly as possible, release early, release often and iterate fast.
Don't worry about scaling until it becomes an issue.

If you're 100% sure you're going to need scaling, consider hosting your app on a public cloud like Amazon or Rackspace. The advantage is that they make scaling incredibly easy, dynamic and flexible. The downside is that it's expensive.

Offline

#3 October 21 2013

SirajMansour
Member

Re: Advice on developing a social network

Thanks for the advice.
Any idea about the team ? Expertise ? tools ?

Offline

#4 October 21 2013

Joe
Member

Re: Advice on developing a social network

Any team that can get a product up and running in less than a month. You'll deal with specific problems as they come.

Offline

#5 October 21 2013

SirajMansour
Member

Re: Advice on developing a social network

Your answers target the methodology to follow and that is one important aspect, but i am looking into much more information, i have totally no idea in terms of numbers and quality and tools. Lets say you are picked to do the task of assembling a team, picking the tools, technologies and languages, framework and such stuff. What would you do in detail ? How many developers would you pick ? what are their expertise ? what technologies ? architecture ideas ? and such things

Offline

#6 October 21 2013

Joe
Member

Re: Advice on developing a social network

I don't think you're understanding my answer.

If I were to do it, here's how I would proceed:

  • Spend a weekend reading up on web development. I'm already a programmer, I'm most productive using Python. I'd use Python.

  • I have to choose a framework. I'm not familiar with any, but I have friends pretty fluent with Django. I'll go with Django.

  • I'm not a database expert, so I'll probably choose MySQL. It's simple to deploy (locally and in production) and default config will do the trick for the first few visitors.

  • Next, I'll spend a few days working on publishing the simplest tiniest app that implements my idea.

  • For hosting, I'll choose the cheapest plan I can find. For 10$/month (probably less now), I'll get a simple VM, deploy my app on it.

  • I'll buy a domain name, preferably something catchy, with an arabic sounding pun, and redirect it to my VM.

That's about it. I'd probably contact a designer, because I suck balls at it, but even then, something like Bootstrap will allow me to get by in the beginning.

You cannot plan for the problems you will encounter. You'll deal with them as they come. Over-planning is probably the number 1 reason so many startups fail. I'm not saying the techs I mention are best. They're what's best for me.

You want to know how to proceed? Get one developper you trust. Ask her to write a website using whatever tools she's comfortable with. Publish, then fix one problem at a time. Scaling to a large amount of users is the last problem you'll ever have to deal with when building a website. To make an analogy, you're asking us "how to train for a marathon?" while worrying about the final 2 minute sprint.

For a more general answer, I strongly suggest you get familiar with the notion of "Lean Startup".

Offline

#7 October 22 2013

user
Member

Re: Advice on developing a social network

I am creating my own social networking online app now(it is not very similar to your idea, and it is a mobile app only) but server costs are ALL I worry about (since I am the developer, I am not costing myself anything)

-For chat/inbox you will need a messenger system. I personally I am looking into jabberd, openfire and node.js(still did not figure out which would suit me best/be the easiest to integrate to my database) but I think a true expert on either system would have made them work(they are made to work and to be integrated into custom made systems, I'm still learning how)

-You will need a mysql expert. I do not really recommend looking into other database solutions, since most are not as mature and popular/if you had to change your database administrator, you'll find it more difficult to find a database expert on lets say... cassandra.

-Use varnish where you can to cache requests, but be careful not to cache very customized pages.

-You will need a designer. Speaking for myself I am a good programmer but terrible at designs, extremely terrible. So I wouldn't rely on a programmer to make beautiful looking things, get a designer to draw your website and the programmer will bring it to life.

-Please be aware that server costs are not negligible, you can easily run into the hundreds of dollars a month(starting out, thousands of dollars if you get popular, facebook server costs are in the tends of millions). You will also need someone on call for when your server crashes, someone hacks your system, you get too popular and thus need to install another server etc... Do yourself a solid and get an ubuntu servers expert and not windows servers, that alone will cut your server costs in half(windows eats up a lot of hardware resources and is more expensive)

These were general tips and things that you should more or less consider as required things. Now as far as frameworks and programming languages go, whether it is done in php or python or c or even java, it does not matter. What matters is that it should be clean code, easy to maintain, well documented, avoid doing unnecessary steps(that will slow down your server and force you to spend extra money on more powerful servers where one line of code less could have saved you the trouble) You should be careful about leaving security holes(the more popular you get, the more people will try to hack you) I don't envy your position in trying to find good programmers.

It does not matter how many programmers you get, facebook was basically done by Mark Zuckerburg alone(at least starting out, as you are now) you should care more about the skills of the programmers, and their loyalty and honesty (I know people who were ripped off by programmers taking payments and delivering excuses about why the project is not yet done, or promising things they actually don't know how to do or cannot be done)

Last edited by user (October 22 2013)

Offline

#8 October 22 2013

samer
Admin

Re: Advice on developing a social network

While user's advice seems sane, I think he's a bit too optimistic as to whether the idea will find an audience.

What rahmu is getting at is that you're better off not worrying about scalability until you start having scalability issues. This will allow you to validate whether your idea has product–market fit without wasting too much time fine-tuning your platform. If you ever reach a point where you get a massive influx of users and your infrastructure can't handle it, it would be much easier to get outside investment from family and friends (or more formal investment entities) as you have successfully demonstrated that your product has an audience (and hence is more likely to be profitable). The odds are against you, and chances are you will fail and will move on to the next project. That is part of the risk of being an entrepreneur. However, your failures usually teach you a lot, so it's not like you wasted a lot of time (unless of course, you wasted it building the product).

Offline

#9 October 22 2013

user
Member

Re: Advice on developing a social network

Well I am speaking as a developer, so in my point of view developer time is free(I have no life and nothing better to be doing sadly), that is why I mention all the caching and stuff. I'd say it's better for it not to work because no one likes it, than for it to start working and then fail because we couldn't keep up. 

I like the video you posted Samer. And it is correct. I would not recommend anyone throwing money trying to recreate facebook. I'm personally doing something very small with a set budget of 100$ a month max at first, and I am counting on the huge learning experience not on quitting my daytime job anytime soon. I would not be excited about throwing thousands of dollars on an already over fished industry, so yes your advice is very good.

Offline

#10 October 22 2013

rolf
Member

Re: Advice on developing a social network

Hello,
If you want to do "something like Facebook", Facebook being so hugely popular, chances are someone did it already, and chances are you can find something that fills up your requirement in the form of an open source project and adapt it to your needs. This gives you the rare opportunity of testing your market with very low costs.

I remember coming across an open source Facebook copy a couple of years ago, but forgot it's name.

Offline

#11 October 23 2013

samer
Admin

Re: Advice on developing a social network

I'd say it's better for it not to work because no one likes it, than for it to start working and then fail because we couldn't keep up.

Except it won't fail only because it didn't keep up for a certain period of time. Remember the fail whale? Twitter was going down daily. Sure, people were pissed off, but did that make them fail? No, they simply got a buck-load of money at a high valuation (because now they proved they had product-market fit) and re-engineered the whole platform to sustain the load.

I remember coming across an open source Facebook copy a couple of years ago, but forgot it's name.

I think you're referring to Diaspora.

Offline

Board footer