Можно взять и изучить социальные сервисы OpenSource на базе фреймворков, например
https://www.humhub.org/en на базе Yii2 или
https://elgg.org/ который сам по себе, на компонентной основе.
Для себя надо найти ответ на вопрос: Чем простой сервис типа блога отличается от социального сервиса?
Будем считать блогом сервис, где один автор публикует записи, а другие регистрируются, чтобы оставить комментарии к записям.
Ключевым отличием соц сервиса является многопользовательский режим, всякие "дружилки" и группы по интересам.
Обычно групп много, но иногда программисты решают сделать свой соц сервис по одной группе интересов, чем значительно сужают целевую аудиторию.
Вот несколько отличий в формате утверждений "User Story":
1. Как пользователь соц сервиса (далее ПСС для краткости, тут ограничение на длину ответа) я хочу публиковать свои записи и фотографии (далее КОНТЕНТ)
2. Как ПСС я хочу изменять или удалять свой КОНТЕНТ
3. Как ПСС я хочу, чтобы другие не могли менять свой КОНТЕНТ
4. Как ПСС я хочу читать КОНТЕНТ других отдельных ПСС
5. Как ПСС я хочу добавить в избранное (like, fork, pin, retwit, repost) КОНТЕНТ других отдельных ПСС с возможностью добавления своего описания или изменения оригинального, но с сохранением ссылки на оригинальную запись/фото
6. Как ПСС я хочу добавить другого ПСС в избранное (friend, follow, watch)
7. Как ПСС я хочу видеть список всех других ПСС, которых *я* куда то там навыбирал в п.6
8. Как ПСС я хочу видеть список всех других ПСС, которые *меня* куда-то там навыбирали в п.6
9. Как ПСС я хочу отправить сообщение другому ПСС
10. Как ПСС я хочу видеть сообщения других ПСС, желательно instant, то есть в реальном времени
11. Как ПСС я хочу комментировать свой и чужой КОНТЕНТ
12. Как ПСС я хочу видеть напоминания о полученных сообщениях от других ПСС, которые я не получил в реальном времени (например, дайджест комментариев по электронной почте), а также о том, что кто-то меня зафрендил или лайкнул мой КОНТЕНТ, или прокомментировал мой КОНТЕНТ, или упомянул меня в комментариях где-либо
13. Как ПСС я хочу запретить комментирование своего КОНТЕНТа другими ПСС
14. Как ПСС я хочу создать сообщество по интересам (социальная группа, далее СГ) и стать её владельцем
14. Как владелец СГ, я хочу пригласить других друзей (см п.6) и других пользователей (см. п.9) в СГ
15. Как владелей СГ я хочу дать или забрать права модератора в СГ любому ПСС
16. Как владелей СГ я хочу передать владение СГ любому другому ПСС
17. Как ПСС я хочу видеть списки СГ и вступить (join, follow) в них, искать группы по заданным правилам, например, по ключевым интересам или хотя бы по названию
18. Как владелей СГ я хочу сам исключить СГ из общих списков групп (скрытые группы)
19. Как владелей СГ я хочу иметь возможность одобрять включение ПСС в СГ (приватные группы с ограничением на вступление)
20. Как участник СГ я хочу публиковать свои записи и фотографии (далее КОНТЕНТ) в СГ
21. Как модератор СГ я хочу менять/удалять записи участников СГ, опубликованные в СГ
22. Как ПСС я хочу пожаловаться на другого ПСС или отдельный КОНТЕНТ
23. Как глобальный модератор сервиса я хочу видеть жалобы от ПСС
24. Как глобальный модератор сервиса я хочу забанить/разбанить любого ПСС
25. Как глобальный модератор сервиса я хочу видеть КОНТЕНТ любого ПСС без ограничений
26. Как глобальный модератор сервиса я хочу видеть все СГ без ограничений
27. Как глобальный модератор сервиса я хочу отправить сообщение любому ПСС без ограничений
Дейтинг, как во вКонтакте, и карму, как в Хабре, я не стал упоминать.
Вот под это всё надо продумать модель данных, модель безопасности, агрегацию данных, мгновенные оповещения, уведомления по электронной почте.
За кадром остаётся финансовый вопрос: как обеспечить стабильный доход для поддержания работы соц сервиса.
Надеюсь, ответ поможет составить картину мира социальных сетей :)