One of my favourite apps and favourite IT subjects to chat about is WhatsApp. I could go on all day about it’s history, it’s founders, it’s technical architecture and the organization that I always think of when discussing WhatsApp (W00w00).
Once I start talking (or typing) about WhatsApp I usually can’t stop, so I better answer the question that most people want answered first… How much does it cost to build an app like WhatsApp? There’s a short answer and a very long answer. The short answer is that you can have your own WhatsApp style app developed and published on Android and iOS for anything from 10keur to 30keur depending on how many users you intend to target AND assuming you want the main features only. A lot of people don’t realize how feature rich WhatsApp really is. If you want to have your WhatsApp clone on other platforms such as Web, Nokia, Windows, Blackberry then the cost goes up quite dramatically. Ok, that’s the short answer and if that’s all you want to know then the rest of this post could prove boring. For the long answer keep reading… I’m going to discuss the history, architecture and the time it typically takes to develop each aspect of WhatsApp.
The History and the Founders.
There’s no point in me going into too much detail on this because Wikipedia have it covered and summarized nicely. WhatsApp was founded in 2009 by Brian Acton and Jan Koum, both met while working at Yahoo! I had heard of Jan Koum before I had heard of WhatsApp because he was part of the W00w00 group who were well known within IT circles. Sean Parker of Napster (and Facebook) fame was also part of this group along with a bunch of other IT mini-celebrities.
WhatsApp was the first significant messaging app to challenge traditional SMS usage. There were others that quickly followed but Viber and WhatsApp were the ones that were always on my radar and were the most dominant in Europe. It was launched on iPhone first and then on Blackberry. Today it’s available on iOS, Android, Web, BlackBerry OS, BlackBerry 10, Windows Phone, Nokia Series 40, Symbian, Tizen and Firefox OS
IT Architecture (warning, this paragraph is technical)
Again, I have to say that the WhatsApp architecture is almost legendary in the IT world and there’s no point in me going through it here in too much detail. You can check out one of my favourite websites HighScalability.com for an indepth breakdown of all the major components. The first thing that shocks most IT professionals is how simple and elegant the architecture is. Like all great architectures, the first thing that springs to mind is… I could have done that!! But of course it’s the simplicity and cleverness of the architecture that has contributed to it’s great success.
To summarize the architecture:
The Backend uses the Erlang language with custom patches to it’s virtual machine. It uses the default Erlang database. The FreeBSD operating system powers the servers and Yaws is used as the multimedia server and is also written in Erlang. PHP is also used on the backend with a custom XMPP installation. So the WhatsApp server is almost completely implemented in Erlang. The server systems that do the backend message routing are done in Erlang. The number of active users is managed with a really small server footprint largely because of the choice to go with the Erlang language.
The Frontend is written natively in each of the 10 platforms that are mentioned above. For example, on Android, native Java and XML is used, on iOS Objective C and more lately Swift is used and so on.
The Hardware is undoubtedly expanding at a ferocious rate, but according to HighScalability, WhatsApp uses Dual Westmere Hex-core (24 logical CPUs), 100GB RAM, SSD, Dual NIC (public user-facing network, private back-end/distribution);
Registration (30 hrs):
WhatsApp requires an active phone number to create an account. After you enter your phone number, an SMS is delivered to your phone. The SMS contains a 6-digit verification code, which you can enter on the verification screen in WhatsApp. The verification code changes each time you verify a new phone number or device, but technically it’s not unique.
Contacts (10 hrs):
WhatsApp software automatically compares all the phone numbers from the device’s address book with its central database of WhatsApp users to automatically add contacts to the user’s WhatsApp contact list.
Notifications (10 hrs):
Android and iOS provide very good native interfaces and servers to handle notifications so it’s very straight forward to implement.
Geo-Location (10 hrs):
Location is very well provided for on Android and iOS. Most of the time here is on testing and quality.
File Attachments (40 hrs):
Multimedia messages are sent by uploading the image, audio or video to be sent to an HTTP server and then sending a link to the content along with its Base64 encoded thumbnail. Again, this one is quite standard, but does require a lot of testing to make sure everything works to a high quality standard.
Design Documentation and All Screen UI/UX (50 hrs):
I’m assuming that even for a clone, there would be a unique user interface and user experience required that would be distinct from WhatsApp.
Messaging (150 hrs):
WhatsApp follows a ‘store and forward’ mechanism for exchanging messages between two users. When a user sends a message, it first travels to the WhatsApp server where it is stored. Then the server repeatedly requests the receiver acknowledge receipt of the message. As soon as the message is acknowledged, the server drops the message; it is no longer available in the server database. WhatsApps server keeps the message for 30 days. When it is not delivered (when the receiver is not active on WhatsApp for 30 days) it is discarded.
Voice over IP (200 hrs):
In January 2015, WhatsApp introduced a voice calling feature; this helped WhatsApp to attract a completely different segment of the user population. There are various open source solutions to voice over IP. WhatsApp uses a C based library that is also open source, but it can be very time consuming to get Voice over IP correct. Most of the work is on the back end.
Encryption (200 hrs):
On April 5, 2016 (just a week before writing this blog), WhatsApp and Open Whisper Systems announced that they had finished adding end-to-end encryption to “every form of communication” on WhatsApp. According to a white paper that was released along with the announcement, WhatsApp messages are encrypted with the Signal Protocol, which combines the Double Ratchet Algorithm, prekeys, and a 3-DH handshake. WhatsApp calls are encrypted with SRTP, and all client-server communications are “layered within a separate encrypted channel”. The Signal Protocol library used by WhatsApp is open-source.
Encrypting the messaging and multimedia files is very straight forward and encrypting the voice calls can also be achieved but taken in aggregate, the overall encryption effort is significant.
So for all main features we would require about 700 hrs of Design, Development, Test and Validation or for a Minimum Viable Product (MVP) Feature set you may want to leave out voice calls and encryption. This would require about half the effort at 300 hrs.
At 40eur/hour, the cost could range from 12keur to 28keur. Remember this is for one platform (Android or iOS). If you wanted to go for two platforms then the cost would increase. It certainly wouldn’t be double because you would not have to redevelop the backend, but you could add about 5000eur for each new platform or 2500eur for each new platform for a Minimum Viable Product.
Here are some of the existing WhatsApp features that we haven’t factored in:
- Bold, Italic and Understrike your text
- Send PDF documents
- Data Saving
- Curb Your Calls
- Star Messages for Easy Reference
- Preview Web Links
- 3D Touch Sensitive Controls
- WhatsApp on the Web
- Visual Reminders
- Custom Notifications
- See exact time that your messages were read
- Shortcuts to conversations
- Muting Group Chats
Most of these additional features are not difficult or particularly time consuming to implement, but taken all together they will add significantly to the overall cost.
I hope the above information gives a good idea as to the costs and time required to develop a quality messaging app. Remember that WhatsApp is valued at $19 billion! All of the above assumes a modest user base compared to the monster that is WhatsApp!!