Skip to Content

What software is used for WhatsApp?

WhatsApp is a popular messaging app used by over 2 billion people worldwide. It allows users to send messages, photos, videos, documents, voice messages, and make voice and video calls for free. WhatsApp uses internet data plans or WiFi to send messages and make calls.

The app runs on both iOS and Android smartphones. It also has a desktop app that can be used on Windows PCs and Mac computers. WhatsApp uses a client-server model to deliver messages and sync data across devices. This means the WhatsApp client app on your device connects to WhatsApp servers to send and receive messages.

But what software and technologies power WhatsApp behind the scenes? Let’s take a look at the key software components that make WhatsApp work.

Client Apps

The WhatsApp apps that users install on their smartphones and computers are client apps. These clients are built using the following software:

Android App

– Java – The WhatsApp Android app is developed in Java programming language. Java is one of the most popular languages used for Android development.

– XML – Extensible Markup Language (XML) is used to design the user interface and layouts for Android apps. The developers use XML files to structure the UI components of the WhatsApp Android app.

– Android SDK – The app leverages the Android software development kit (SDK) to access platform APIs for notifications, camera access, networking, graphics rendering and more. The SDK provides all the building blocks needed for Android app development.

iOS App

– Swift – WhatsApp for iOS is built entirely using Swift, which is Apple’s own programming language for iOS and macOS development. Swift offers modern features like type safety, ARC, and concise syntax which makes the code more readable and maintainable.

– UIKit – This is Apple’s UI framework used to design the user interface elements like buttons, tables, navigation bars etc. The WhatsApp iOS client uses UIKit extensively for its front-end.

– iOS SDK – The iOS software development kit (SDK) provides the back-end functionality like push notifications, maps integration, camera access, databases etc. in iOS apps.

Desktop Apps

– Electron – WhatsApp desktop apps for Windows and MacOS use Electron framework. It allows building cross-platform desktop apps using web technologies like JavaScript, HTML and CSS.

– Chromium – The apps are bundled with the Chromium browser engine to power the built-in web browser components. Chromium provides fast rendering of web content.

– Node.js – The JavaScript runtime is used on the back-end for building desktop-specific functionality. Node.js offers speed and scalability on desktop apps.

Web App

Along with native and desktop apps, WhatsApp also has a web-based app that can be used on browsers. The WhatsApp web app is built using:

– React – This JavaScript library is used to build the user interface and components for the web app. React provides high performance and responsiveness required for web apps.

– WebRTC – The WebRTC framework enables real-time communication capabilities like audio/video calling within web browsers. This allows WhatsApp web to make voice and video calls.

– JavaScript – The core functionality and business logic is implemented in JavaScript. It enables dynamic real-time updates in the web app.

Server Infrastructure

While the client apps provide the user interface, the backend infrastructure powering WhatsApp sits on its servers. WhatsApp uses the following software on its server-side:

Erlang VM

– WhatsApp processes billions of messages daily. To handle this massive scale, it uses Erlang VM on the backend. Erlang offers high concurrency, distributed computing and fault tolerance needed to process the communication load.

FreeBSD

– The servers run on FreeBSD, which is an open source Unix-based operating system optimized for speed and stability. FreeBSD powers some of the largest web properties in the world.

MySQL

– MySQL is the database system used to store user data, profiles, messages, media files and other information on WhatsApp’s servers. It provides structured storage and querying of all this data.

Software Usage
Java Android app development
Swift iOS app development
Electron Cross-platform desktop apps
React Web app user interface
Erlang VM Scalable server-side messaging
FreeBSD Server operating system
MySQL Database for user data

Networking Protocols

For communication between clients and servers, WhatsApp uses various network protocols:

– XMPP – Extensible Messaging and Presence Protocol is used for instant messaging between WhatsApp clients. It handles chat delivery, push notifications and presence information.

– WebRTC – Used for real-time voice/video calls between WhatsApp users. WebRTC handles peer-to-peer media streaming with low latency.

– WebSocket – Provides full-duplex communication channels for timely updates and notifications in chats. Useful for real-time sync between devices.

– HTTPS – WhatsApp uses HTTPS encryption for secure data transmission over the internet. This prevents eavesdropping and tampering of messages.

Data Centers

WhatsApp has an extensive network of data centers across continents to store user data and deliver low-latency messaging globally. These data centers host the application servers, messaging infrastructure, media storage, databases and caching layers.

Some of WhatsApp’s key data center locations:

– California, USA
– Amsterdam, Netherlands
– Singapore, Asia Pacific
– Virginia, USA (Disaster recovery site)

The data centers utilize high-performance server hardware, network infrastructure and cooling systems for optimal uptime and efficiency.

Development Tools

WhatsApp engineers rely on advanced software tools and platforms to develop, test and deploy the service globally:

– React Native – To build and iterate on the iOS and Android apps efficiently using the same JavaScript codebase.

– Jenkins – An open source automation server for continuous integration and delivery of WhatsApp updates.

– Docker – WhatsApp uses Docker containers to streamline deployments and run microservices in production.

– Nagios – System and network monitoring tool used by WhatsApp for uptime tracking and incident response.

– Chef – Infrastructure automation software that allows WhatsApp to easily configure and manage its massive server fleet.

– Hadoop – Open source big data tools like Hadoop, Hive and HBase are used for analytics and data processing.

– Google Cloud – WhatsApp leverages Google’s cloud infrastructure for significant parts of its service delivery.

Security Features

User data security and privacy is a top priority for WhatsApp. The service implements advanced security measures:

– End-to-end encryption – Messages, calls and media transfers are encrypted from sender to recipient for maximum security. Not even WhatsApp can read users’ conversations.

– On-device encryption – Local message databases and backups on users’ devices are encrypted with keys not known to WhatsApp.

– Secure key exchange – WhatsApp utilizes the Signal Protocol for key verification and encryption key exchange between devices. This prevents MITM attacks.

– App lock – Apps like fingerprint scanning or face unlock can be used by users to add a layer of biometric security and prevent unauthorized access.

– Two-step verification – Users can opt to enable two-step verification for their WhatsApp account for enhanced security.

– Bcrypt password hashing – Passwords are hashed on the server using the bcrypt algorithm and salted hashes are stored. This prevents decryption of passwords.

– Code obfuscation – WhatsApp applies code obfuscation techniques to prevent reverse engineering of apps and circumventing encryption.

User Privacy

Along with security, WhatsApp also implements controls and policies to protect users’ privacy:

– Minimal metadata – WhatsApp collects very limited metadata like phone numbers and profile data needed to operate the service.

– No third-party ads – WhatsApp does not show any third-party ads in the interface to avoid tracking users for ad targeting.

– Disable forwarding – Limits on frequently forwarding messages help prevent viral spread of misinformation.

– Location sharing – Users must explicitly choose to share their location with contacts. Location is not shared by default.

– Delete messages – Users can delete sent messages from their device as well as the recipient’s device for privacy.

– Anonymous analytics – If enabled, anonymous usage and crash analytics are sent to WhatsApp for improving service quality.

– Block contacts – Users have the ability to block unwanted contacts to prevent harassment and spamming.

– Report issues – WhatsApp provides in-app reporting of safety issues, violations and bans to enforce its policies.

Conclusion

WhatsApp relies on a complex technology stack spanning mobile, web, desktop and backend platforms to deliver its service. The versatility of software enables WhatsApp to offer an unified and consistent messaging experience across billions of devices globally.

Advanced software also empowers WhatsApp with critical capabilities like security, scalability, reliability and performance. As WhatsApp usage continues to grow, the platform keeps evolving with new features and optimizations regularly. The backend systems and infrastructure are built to scale efficiently for the long term.