Social intranet for 100,000 employees

Customer

We implemented an internal social network for the Federation of Migros Cooperatives, Switzerland's largest retailer. 100,000 employees can create groups and share common interests. The companies and departments of the Federation of Migros Cooperatives communicate internal news on a group-specific basis. This brings employees closer together across the entire company.

What's the point

  • Social network for over 100ʼ000 users from over 50 different companies
  • Available on the web and as an iOS and Android app
  • Code sharing between React and React Native
  • High performance thanks to Optimistic Updates and Elasticsearch
  • Automated deployments to all target platforms

Agile approach leads to success

... or: How do you build a social network in six months?

By means of iterative project implementation, the requirements were divided into testable sub-packages that build on each other. Very complex topics such as group memberships, authorizations or notifications were further divided up and implemented according to prioritization. This agile approach ensured that the customer was able to track the progress of the work at all times. Targeted activation and presentation for each company makes it possible to go live in phases.

iOS, Android and web app with a common code base

The web version was implemented with React, the iOS and Android app with React Native. The front-end code for the user interface (UI) and business logic is clearly separated: the UI was created separately for the apps and web version. The business logic, on the other hand, can be used on all platforms thanks to React. 35% of the code is used across platforms. Less code is cheaper, both for development and for testing and maintenance.

Optimistic Updates in the frontend, Elasticsearch in the backend

100,000 employees should be able to communicate with each other quickly and easily. High performance is key here. We therefore use Elasticsearch to deliver data via the API. The average response time is less than 0.3 seconds. When creating or changing comments, posts or groups, we consistently use optimistic updates: for example, a comment becomes visible in the user interface after it has been saved, without feedback from the server as to whether the comment has already been saved. The perceived performance is so fast that you hardly notice the client-server communication.

Automated releases and deployments

We have been relying on automated releases and deployments for some time now. In order to utilize these advantages within the entire development environment, we have also completely automated our deployments for apps. Within minutes of a new release, the apps are ready for testing on iOS and Android. This guarantees faster iterations and high quality in app development and prevents manual errors during deployment.

Questions or interested? Robert will be happy to help you.