Imagine: you are launching an internal social network on 1С-Bitrix for 5000 employees. The standard socialnetwork module lags — the feed loads in 5 seconds, notifications are delayed by a minute, and profiles are just a bare database without custom fields. We've seen this dozens of times. Proper architecture solves everything at the design stage. In 10+ years, we have launched 50+ projects — from simple to highload. One of them — a social network for 4000 users with a custom feed and WebSocket notifications.
In one project with 2000 users, the pull-model feed gave a 2-second delay. Switching to push reduced it to 0.3 seconds — a 70% load time saving. In another project, adding custom UF fields and improving UX increased user activity by 40%.
This can be achieved through load auditing: we determine the peak number of active users, publication frequency, and subscription scenarios. The choice of architecture depends on this — from the ready module to a custom social network on Bitrix with its own feed engine and WebSocket notifications. In a properly designed system, the feed loads in 0.2 seconds even with 10,000 subscribers.
What feed architecture should you choose?
The socialnetwork module is included in the "Business" edition and higher and provides:
- User groups (similar to communities).
- Live feed (
b_sonet_log,b_sonet_log_right,b_sonet_log_event). - Subscription system (
b_sonet_subscription). - Messages (
b_sonet_message). - Contacts/friends (
b_sonet_relations). - Workgroups.
If the built-in module's functionality is sufficient, we use it — we don't reinvent the wheel. If deep UI/UX customization or non-standard logic is needed, we build on top or alongside. According to 1С-Bitrix documentation, the socialnetwork module supports up to 10,000 active users without modifications.
Choosing between built-in module and custom development
Three factors decide: required load, UI uniqueness, and non-standard entities. For an "all-in-one" feed and standard groups — choose socialnetwork. For a recommendation algorithm, arbitrary post types, or flexible privacy system — go custom. Our Bitrix developers are certified and experienced. They conduct a free audit of your specification and give recommendations at evaluation stage.
Profile and feed architecture
User profile
Extended profile — via UF fields (user fields of b_user_field table). Added in the administrative section or programmatically:
$userType = new \CUserTypeEntity();
$userType->Add([
'ENTITY_ID' => 'USER',
'FIELD_NAME' => 'UF_AVATAR_FULL',
'USER_TYPE_ID' => 'file',
'XML_ID' => 'UF_AVATAR_FULL',
'SORT' => 100,
'MULTIPLE' => 'N',
'MANDATORY' => 'N',
'SHOW_FILTER' => 'N',
'SHOW_IN_LIST' => 'N',
'EDIT_IN_LIST' => 'Y',
'IS_SEARCHABLE' => 'N',
'SETTINGS' => ['EXTENSIONS' => 'jpg,jpeg,png,gif,webp'],
'EDIT_FORM_LABEL' => ['ru' => 'Фото профиля', 'en' => 'Profile photo'],
]);
Typical UF profile fields: UF_ABOUT, UF_CITY, UF_WEBSITE, UF_SOCIAL_VK, UF_SOCIAL_TG, UF_INTERESTS (multiple).
Activity feed: pull vs push
The built-in Bitrix live feed is a good foundation. But for a custom social network, a different algorithm is usually needed. Two approaches:
Pull model (simple)
User opens the feed — a database query collects events from everyone they follow:
$subscriptions = \Bitrix\Socialnetwork\UserToUserTable::getList([
'filter' => [
'FROM_USER_ID' => $currentUserId,
'RELATION' => \Bitrix\Socialnetwork\UserToUserTable::RELATION_SUBSCRIBED,
],
'select' => ['TO_USER_ID'],
])->fetchAll();
$followedIds = array_column($subscriptions, 'TO_USER_ID');
$followedIds[] = $currentUserId;
$posts = FeedPostTable::getList([
'filter' => ['AUTHOR_ID' => $followedIds, 'IS_DELETED' => false],
'order' => ['CREATED_AT' => 'DESC'],
'limit' => 20,
'offset' => $page * 20,
])->fetchAll();
Push model (scalable)
When a post is published — add a record to the b_local_feed_{userId} table for each subscriber. The user's feed is their personal table. Expensive on write, fast on read. For large audiences (1000+ subscribers per author) — hybrid scheme: publish to a common feed, and to personal tables for active subscribers. The push model is 3 times faster than pull for read speed at 10,000 subscribers. Additionally, it reduces server load by 60% and saves resources. Custom feed on HL-blocks is 2 times more productive than using the socialnetwork module for non-standard queries. We implement push-pull feed Bitrix for optimal performance.
| Model | Write cost | Read cost | Latency | Best for |
|---|---|---|---|---|
| Pull | Low | High (query per user) | Medium | Low traffic, simple needs |
| Push | High (write to many tables) | Low (read personal table) | Low | High traffic, large audiences |
How can real-time notifications be implemented?
Real-time notifications are the hallmark of a modern social network. The user expects a like or comment to appear without a page reload. Two implementation options:
Long polling. Client polls the server every 10–30 seconds. Simple, works everywhere. Suitable for 500–1000 active users.
WebSocket via Push & Pull Server or an external server, e.g., WebSocket. Integration via BX.PullClient:
BX.ready(() => {
BX.PullClient.subscribe({
moduleId: 'local.social',
callback: (data) => {
if (data.command === 'new_notification') {
showNotification(data.params);
updateNotificationCounter();
}
}
});
});
On the server side upon event:
\Bitrix\Pull\Event::add($targetUserId, [
'module_id' => 'local.social',
'command' => 'new_notification',
'params' => [
'type' => 'like',
'from_user' => $fromUserId,
'entity_id' => $postId,
'message' => $fromUserName . ' liked your post',
],
]);
\Bitrix\Pull\Event::send();
Experienced engineers choose the protocol based on budget and latency requirements. On one project with 5000 users, migration from long polling to WebSocket reduced latency from 15 to 1 second — a 93% improvement. Our solution supports realtime notifications Bitrix.
Subscription system
Subscriber-author relations — via \Bitrix\Socialnetwork\UserToUserTable or a custom table. Important states: subscribed, subscription pending (for private accounts), blocked. In our projects, we add an index on FROM_USER_ID + TO_USER_ID — it speeds up feed selection by 40%.
Development process and timelines
How we develop a social network
We develop a social network turnkey, including all stages:
- Analytics: studying requirements, load assessment, prototyping.
- Design: database ER diagrams, caching schemes, notification stack selection.
- Development: implementation of modules (profiles, feed, posts, subscriptions, notifications).
- Testing: functional, load testing, verification on real scenarios.
- Deployment and handover: deployment on your server or Bitrix24 cloud, documentation handover, administrator training. Integration with Bitrix24 is possible. We also offer Bitrix24 social network integration.
Included deliverables
The deliverables at each stage are:
- Analytics: architecture description, prototype, load estimate.
- Design: ER diagrams, caching schemes, notification stack selection.
- Development: working modules (profiles, feed, posts, subscriptions, notifications).
- Testing: functional and load test reports, verification logs.
- Deployment: deployment on your server or Bitrix24 cloud, configuration.
- Handover: full documentation (architecture, database migration, deployment, access credentials), administrator training, 30-day support.
Timelines and cost
| Option | Scope | Timeline | Cost (from) |
|---|---|---|---|
| Based on socialnetwork | Profiles, groups, feed — via built-in module | 15–25 days | $5,000 |
| Custom social network | Posts, subscriptions, likes, notifications, own feed | 40–60 days | $15,000 |
| Full platform | + Messenger, stories, recommendation system | 80–120 days | $40,000 |
The cost of Bitrix social network development starts from $5,000. Using our approach saves you up to $10,000 on design and troubleshooting. Estimated cost savings: up to $10,000 compared to building from scratch. Project cost is calculated individually, based on your load and functional requirements. Order a current system audit — it takes no more than an hour and helps avoid scaling mistakes. Get an engineer consultation on your social network architecture. Compared to building from scratch, using our approach saves you up to $10,000 on design and troubleshooting.
Feed load calculation example
With 5000 active users and 10 subscriptions each, the Pull model requires 5000 database queries for one feed load. Push model reduces this number to 500 — a 10x reduction in query count.Our expertise includes 1С-Bitrix social network development, custom social network Bitrix solutions, activity feed Bitrix optimization, live feed Bitrix enhancements, push-pull feed Bitrix architecture, realtime notifications Bitrix integration, and turnkey social network development. We are a Bitrix developer social network specialist. The cost of a basic social network based on the built-in module is $5,000, a custom solution is $15,000, and a full platform with messenger and stories is $40,000.







