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 platform was built using Ruby on Rails, so we decided to maintain the base language for the backend. For the frontend, multiple JavaScript frameworks are being used but mainly the platform was using AngularJS 1.x.

One of our first scheduled tasks was to move the AngularJS implementation to the new version of Angular or any other JavaScript framework of our choice. This task meant rewriting the whole frontend code, as it was making heavy use of shared scopes - which goes against the modern frameworks components model. We, in this process, analysed more lightweight alternatives like ReactJS or Vue.js.

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.

MarsBased have proven to be a partner willing to go the extra mile to exceed our needs and expectations. Over the years we have worked together they have continuously delivered excellent work. They were also ready to work long hours when things got complicated and help out in the weekends, which is something that makes a difference when you are building a business. This alignment with the customers goals is rare to find in an agency. We would not be where we are today without them.

Project tech stack

Ruby on Rails

Ruby on Rails is a server-side web application providing default structures for a database, a web service, and web pages.

Shopify

Shopify is the name of its proprietary e-commerce platform for online stores and retail point-of-sale systems.

Angular

Angular is a TypeScript-based, free and open-source single-page web application framework led by the Angular Team at Google.

Electron

Electron 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.

One of the most challenging parts of the project has been having to work on an already existing product with legacy code, refactoring without breaking existing functionalities, and growing it exponentially to serve new customers in the fastest and most efficient way possible.

Project wins

Experience in printing

Our team had previous experience in the printing sectors, so dealing with margins, paper sizes & types was easy as a pie.

Optimised for cloud

Once we saw this project was going to have multiple spikes of usage across the year, with an exponential growth, we decided to move it to the cloud.

Many years together

We've done design, UI/UX, development, strategic consulting, APIs, security, devOps, their desktop app and much more in almost 10 years together.

Cost-efficient decisions

zapptales is a quasi-bootstrapped company, so we have always had to take budgets very seriously. We always optimise for cost-efficiency in every aspect.