I want to create a social network of participative democracy


I am a beginning developer and I want to create a social network of participative democracy. I have in mind what the site should look like, but I am a little bit lost as for how to begin.

I don't understand very well how elgg works, and I'd like to have some help. It would be very cool if I could meet someone personally (I live in Paris) or by skype. If someone is interested in my project, I would be glad he/she works with me.

Thank you in advance,

Adrien Fabre

  • Not sure if Elgg is the best choice for that.

    There isn't a particulary well integrated wiki for Elgg, so working on a constitution or thosething like that will be difficult and I also *think* that it doesn't scale very well beyond a few thousand users (and there isn't a multi-server setup as far as I know).

    Without having had a closer look at it, but maybe setting up a pod for the diaspora network would be a better idea?

  • Thank you for your advice !

    I'll have a look on diaspora. But in any case, if i choose elgg, I'll have to work hard to create many plugins in order to have the network i want : I'll have to create a wiki, for example.

    But the scale argument remains. Could you precise what structure I should choose for my server in such a network (i'm really a beginning developer, i didn't know that there was problems of scale with the servers).

  • Well, i think diaspora* is not flexible as i want, it is not a framework. So elgg is a better solution. Maybe the best solution is to create my network from scratch (?)

  • Elgg scales quite well. If you grow, you can split app en db server. By using memcache you can have multiple application servers. In the end the database server will be the bottleneck. But you can run millions of users before that would become a problem (with current hardware and depending on user behaviour on the site). But don't worry about that until you are there. It can be fixed with database clusters, but needs quite some changes to the code.

  • making more than arbitrary changes to code to support scaling does not equal 'scales quite well'.. at least not to me. ;)

  • Well given the fact that this project probably doesn't have a huge budget, a decentralized system like diaspora, which enthusiastic users can self-host to increase the scale of the site is probably the only possible solution. It's also more democratic ;)

    The kind of data-base clusters Gerard is talking about are quite expensive to rent.

    Maybe some sort of P2P social netowrk would be an option? There are some currently in active development, but I am not sure if any of them is "production ready". Just do a google search.


  • If you're talking millions of users, you're going to have non-trivial changes no matter what you use.

    That's a problem you don't need to start considering until you already have hundreds of thousands of existing active users.

  • Well... let's say I am going to use elgg, and fix the problem if I grow with the support of my future community. I still need some help to learn how to begin^^

    Another question : isn't it easier if I develop my network from scratch (in this cas, I'll still need some help :p) ?

  • Definitely not, even if you decide not to use elgg, I would very much caution you against striking out on your own building your own app - especially if you'll still need some help which implies you're not a world class coder :)

    Mature frameworks like Elgg, or any of the other big names benefit from having many contributors over a number of years building the framework collaboratively, handling security issues and design decisions that you would have to get through all over again all on your own.  It's a bit of a fools errand before you've even got your community off the ground.  A better plan if that's what you do want is to use an existing framework to build your community, grow it, and spec it out.  Then when you reach critical mass and profitability you can hire some world class coders to start a project from scratch to your exact specifications and import the data from the framework to your custom solution.

  • "Beginning from scratch" vs. "need help": I don't expect you will get much specific help anywhere if you really want to develop some social network framework from scratch. Developing a new framework is something you would need a certain knowledge to begin with. And when do you want to start using it? There are many years of development in Elgg and its plugins...

    The question is rather: what you mean by "participative democracy" exactly? You mentioned that you would need a wiki. But that's not necessarily a very specific requirement. The pages plugin that's bundled with Elgg offers some basic wiki functionality (though it might not stand the comparison with a real wiki platform). But what else is your definition of "participative democracy"? It will depend on your requirements what exactly you need and if existing plugins (in case you decide to use Elgg) will suit your needs out-of-the-box or if you would need to develop new plugins (or only modify existing plugins slightly if necessary).