Zapptales is a Munich-based startup, founded in 2015, that started out with the idea of giving its customers the possibility to turn their favourite WhatsApp chats into costumised books.
The zapptales web platform allows users to import their chats and edit them to their heart's content: changing colours, typographies, reordering the messages, deleting unneeded ones and adding photos here and there. These are just some of the things you can do with the online editor built in the web application to create your book.
In January 2016, we were approached by two young Germany-based entrepreneurs whose idea was to convert WhatsApp chats into books. They already had an MVP with which they were earning their first bucks.
Their MVP was good enough to launch and test their business hypotheses, but if they were to compete against real products, they needed a solid & scalable solution. At that time, they had identified a couple of competitors in the same field, and zapptales decided to invest heavily in building a more robust web application to help their business to ramp up.
The goal of the project was to ensure a correct transition from a working MVP to a real application without downtime, and releasing constant improvements to the UX and the feature set for their customers.
The e-commerce engine is a Shopify, which is one of the largest and most- reliable e-commerce platforms using Ruby. For the naysayers: Shopify currently supports millions of transactions per minute with little to no trouble at all.
We make heavy use of the Shopify API to provide a seamless integration with the platform and we have never stopped working on improving the checkout process. It's a critical part of any e-commerce.
From the engineering point of view, the most challenging part of the project was to ensure uptime as close to 100% as possible in order to avoid sales dropping. Downtime in early stage startups can kill the business, and even more so in e-commerces.
Besides that, we also had to reduce the bottlenecks we found in the initial MVP, in order to scale exponentially (for the always-wanted hockey stick growth!).
This was easy to achieve given that we were already working for high traffic sites like Zinio or Rakuten TV or Naiz that required a thoughtful analysis on performance and optimization during traffic peaks and high-concurrency conditions.
Project tech stack
Ruby on RailsRuby on Rails is a server-side web application providing default structures for a database, a web service, and web pages.
ShopifyShopify is the name of its proprietary e-commerce platform for online stores and retail point-of-sale systems.
AngularAngular is a TypeScript-based, free and open-source single-page web application framework led by the Angular Team at Google.
ElectronElectron is a free and open-source software framework designed to create desktop applications using web technologies.
Another challenging part of the project was to prepare the product so it would scale as much as the business required. The initial MVP was running on a single physical server, which was acceptable during the product validation phase. But once we stepped in, moving to the cloud turned out to be our main priority.
The process of parsing WhatsApp chats and generating the actual books involves heavy usage of CPU and RAM. We redesigned the whole process to allow multiple servers to work on those tasks in parallel and assign computational resources in a smarter way.
The whole deployment, tracking and monitoring systems were rebuilt so we could focus less on the operations part and concentrate our efforts in developing new features.
With the distributed architecture we devised, our client was also able to store all their customer conversations in a more secure and durable way, while providing them with faster access to their PDF books across different regions. Proof of that is that they are selling to many different countries around the world.
The platform is currently able to face a large number of book orders. However, our work doesn't finish here. We are constantly analysing the platform's systems and evaluating how we can make them more cost effective.
Another thing worth mentioning, is that books need to be printed. This has required that we take physical borders into account and other relevant criteria when designing the layouts of the books.
One of our frontend developers, Javier, used to work in a printing company, so he knew the procedures & measures inside out, hence reducing the number of iterations required to get it right when printing the books out.
Finally, WhatsApp are changing their platform constantly, as it is a breathing product, sometimes altering the structure of their chats and the messages. For instance, when they allow new file types to be sent through their platform or that time when they allowed human emoticons to have different skin tones.
We needed to react rapidly to these changes. This was done by having a fluid communication with the zapptales team using our shared Slack chat and touching base multiple times per week when such changes were detected and there was a risk of not being able to process chats for a limited amount of time, thus potentially affecting sales.
Our relationship continues well after the first years and looks like the future is bright for zapptales.
We are really happy to have helped them so far, and look forward to working together for many years.