Writing a new social networking engine

I want to start making a completely new social networking engine for my own use and anyone else who wants a similar social networking setup. I've played around with Elgg and Buddypress but neither of them fit what I was looking for. Most social networking engines are non-free and still have a lot of problems with their design and implementation. Elgg seemed pretty powerful and I liked it. It seemed a bit like old Facebook but it was different enough in critical ways that I feel it would throw off a lot of people or they just wouldn't feel familiar with it. Buddypress is just ok and feels more like Facebook but it's just a hack for Wordpress. The theme for it isn't even developed or included with it anymore so you have to get it off Github and it constantly directs users to the back end.

The problem that every social networking engine I've seen has is a severe lack of privacy. Buddypress gives users the ability to set everything as friends only, but it's still limited. It can be hacked by changing the default post settings and using CSS to remove the visibility selector but that only does so much.

I've said a lot about the problems with other platforms but I haven't got to what I want yet.

The new social networking engine will be simple and private, like the way Facebook used to be, not like the very public MySpace that all social networks have turned into. I don't know if I'm going to have Facebook-style pages. If so, I think they will be limited to brick-and-mortar organizations and non-cause websites. Political sites would use groups that will be discussion oriented and have forums like on Buddypress, but a lot less awkward. It might be done in the same way Facebook used to. Groups would be the only "public" discussion but they would still be on the deep web and an account would be needed to see them. I intended for them to also be anonymous, where user account information won't be attached to them. I'm not sure whether to allow group moderators to see accounts. I'm inclined not to allow that, but it does mean that they can't have any relationship with members and can't tell if they improve on requests to follow the rules and whether rule breakers are repeat offenders. It complicates banning users when moderators can't see what account they're banning. They'd have to click a ban link on the post itself.

That gets me to another point. In the interest of protecting free speech, all bans and deletions are flagged for review by site admins. If group admins delete posts and ban users against site policy, the users and posts will be restored to the group. Repeat violations will lead to offenders being deadmined from the group.

I've outlined a lot and haven't even gotten to the core of the project. The site itself is going to be focused on privacy. Only friends will be able to see anything besides each other's main profile picture and a single field marked as public that can help other users figure out if it's someone they know. There will be a message button and a friend request button, and that will be it for public profiles. For friends, there will be the wall and the ability to make posts and comments. Wall posts will have a single thread of comment. Facebook fixed this a long time ago, but they didn't always allow comments on wall posts, so every wall was a single thread and so group walls couldn't have multiple discussion topics.

I'm going to start with friend features before getting into public groups because the purpose of this social networking engine is to give the user a place to privately interact with their friends. Friends of friends are going to be treated exactly the same as any non-friend because it would be too easy for trolls to get added to friends and spy on people.