

Ask HN: How would you implement something like twitter/facebook? - xelfer

Note: I'm just curious, I'm not attempting to make another social network. There's already too many.<p>I'm a System Administrator who was just made redundant and given my 2 weeks notice. I have a very wide range of Linux/Windows administration experience, but I'm a weak programmer (dabbled in python/php/objective C) who hasn't really coded since I graduated (Computer Science) in 2004.<p>I'm using twitter as an example because it's the most basic site I can think of. People register accounts, they post an update. Friends can see these updates. How would someone with my level of experience create something like this? Where would you start? Brushing up on coding is obvious, but when I read about twitter and facebook having APIs and things people can use to interact with them it goes so over my head I wouldn't know where to begin.<p>I know I could make the basics of the site in php without too much effort, but anything to do with security / providing an API / distributed programming (if required?) is all foreign to me.<p>Any comments really appreciated, it's more of a curiosity than a "I'm so going to make something better than twitter/facebook" idea someone might be attempting to execute. Thanks!
======
dbul
Think very basically. Just program with the tools you have and do research as
you need to implement something you aren't familiar with. If it is your first
time writing a site, you may end up having to scrap it and go to the beginning
(with experience you may be able to come up with a rough plan beforehand).

Facebook started out as a crude website and Zuckerberg even wrote a blog post
admitting that. If you go to archive.org and look it up then obviously the
creator had a limited skillset.

Don't get overwhelmed. Come up with an idea. If your mind wanders about all of
the future possibilities, write them all down and then say, "At the core, what
is this site?" Program what that core is. In your example, it is just what you
said: start with creating user accounts, then allow users to have profile
pages, then maybe comments, and finally be able to add friends. Just start
coding and you will learn a lot.

~~~
xelfer
Thanks for your reply, gives me some things to think about :)

------
nategraves
You may want to look into some PHP frameworks like CodeIgniter or Zend (if
that's your language of choice). For your API, you could start with a simpler
REST API that allows users to make requests through URLs and get back their
data as XML. Finally, you could do some distributing by using a service like
mosso.com. Mosso offers both cloud hosting and cloud servers that would allow
your site to scale pretty easily when you start getting a ton of traffic :)

~~~
xelfer
Thanks! frameworks would certainly make things easier now that you've
mentioned it. I've dabbled with django and web.py but never thought of a php
framework (which i'm probably more comfortable with than python).

------
aaronblohowiak
Don't try to make a Facebook or twitter for your first app. Make a toy that
fits on a platform you like. If it is fun/useful, other people might like it.
Learn as you go.

