Hello!
Today we decided to tell about our friends from Belarus -
KUKU.io - a service for
SMM , which supports Facebook, Twitter, Linkedin, Pinterest, Tumblr, Instagram, and Vkontakte, Odnoklassniki and Telegram. With the help of KUKU.io, marketers, SMM specialists, entrepreneurs, bloggers and users (who are already more than 25,000), actively interacting with social networks, can create content, plan and publish it (more than 4 million posts have already been created) in desired profiles, groups and pages in a few clicks, as well as receive a complete
analysis of social networks .

')
Under the cut - about technology and technology.
Above was about
social media marketing in a few clicks. With an extension for Google Chrome, this is not just a beautiful phrase, because if you want to share, say, an article, it will take you exactly two clicks from you:

After the user has created an account, he can not only publish content, but also analyze its effectiveness in detailed analytics of social networks, showing not only metrics, but also dependencies between them.
About the direction of developmentIn the application, we focused not only on the functional features, but also on the intuitive UX / UI. We initially wanted to make all the functional features of the application as intuitive as possible: from connecting social networks and publishing calendar to grouping frequently used accounts into channels. Why? Now users do not just get a ready-made solution and start working with it - they choose and compare. And the sooner the user figured out how to take the first step, the greater will be the depth of viewing.
In short, the work of the service can be described as:
The user creates an account in kuku.io. Connects multiple social network accounts. We get from them the tokens needed to interact with the social networking APIs. Tokens are saved to the base.
After that, we allow you to create posts in the connected social networks, plan them for a certain time, add images, links, etc. Every 10 seconds we check which of the planned posts are ready for publication. They are in the redis-queue for each of the social networks. Roughly the same thing happens with analytics gathering queues.
In fact, everything is somewhat more complicated and divided into services and subsystems, each of which has its own set of tasks.
About migrationWe partially migrated from Digital Ocean to reduce server maintenance costs at an early stage of the project. At the moment we use
BizSpark for startups for 3 years (5 subscriptions, each for $ 150 per month.). So far we have been using a free BizSpark subscription for 3 years. The main problem will arise if in 3 years we will not be able to pay for what we built in Azure. I think there will be no such problem. In any case, until the financial performance of growth kuku.io kept at the expected level.
DO and we moved the servers fairly quickly. The control panel is very functional and convenient. There were problems with the initialization of subscriptions, which quickly decided to communicate with support.
After several weeks, there were questions about combining 5 subscriptions into one “general” subscription. It turned out that it was impossible to do so out of the box. Therefore, we maximally used the resource of each of the subscriptions and combined all the servers from different subscriptions using openVPN. Over a cup of coffee with the guys from Microsoft, we learned that this is not a dirty hack, as we thought at the beginning, and has the right to life.
Another interesting coffee revelation was that you could not use Microsoft products in Ajura - like, want, use, don't want - pick up a ready virtual machine with Ubuntu and enjoy all the benefits of
Open Source . In fact, we are now using Azure as an IaaS. Microsoft has very cool stuff for CI, node-applications, queues, NoSQL, but so far we are just eyeing it.
Under the hood, we have a node.js server with the ifNode framework. The client uses marionette.js and many other open source libraries.
We use 3 databases:
- MySQL - for storing users, accounts, groups, profiles, posts, and so on. The use is justified by the large number of connections between entities in the application.
- MongoDB - for storing “raw” data collected from social networks. The use is justified by the weak structure of this data, as well as the need for their quick writing / reading in large quantities.
- Redis - for storing sessions, providing publication queues and analytics collection queues. The use is based on the ease of use and speed of queuing Redis.
The main database (MySQL) is still on Digital Ocean. This is due to the speed of writing / reading in Azure machines, which we can raise for $ 150 (1 BizSpark subscription).
On the server, the application is divided into 4 main services.
1) Client API
2) Publication and collection of analytics, sending emails
3) Link shortener
4) Payment system
From our internal features - we have our own load testing. In our case, it is slightly different from the classic test loading pages. The main task of kuku.io is to make posts in social. network and collect a lot of analytics from the social. networks. It takes the main server resources. The trick is that we cannot do mass testing posting, for example, facebook or vk.com. We are simply banned for it.
For such purposes, we have a subsystem that emulates the load when posting and collecting analytics from the social. networks.
About the teamThe project is now doing what it is, 12 class experts in their fields. Dima Dudin - CTO and driving center. Danik Tsyrkunov, Lyosha Saskevich, Seryozha Kucheiko and Artyom Nikolaev are responsible for the backend, and Yura Melnikov for the frontend. Our incredible UX / UI designer Zhenya Artsmenya created a key feature of KUKU.io - an intuitive interface. Pavel Kastenevich as a project manager ensures that the releases are timely, and Yulya Kerdol answers all questions from users. With the help of Karina Dubovik, a high-level SMM manager, we validate our ideas and develop social networks. Also in QA, Masha Kislova helps us incredibly.
We have a large enough team, and this allows us to implement the ideas and recommendations of our users quickly enough. For example, we are currently working on a content plan and Team version for teams. We started developing these massive features in early April and are planning to release live versions by the end of May.
About the futureToday, at peak loads, we can easily publish about 6 posts per second on social networks and analyze activity at about 4 accounts per second. We have more than 3.5 million publications, 20 thousand users and about 600 active users every day.
And this is only the beginning, the audience and the number of actions performed by users is growing much faster than we expected.
By the way, our small achievements prove that we are moving in the right direction. KUKU.io twice got on Product Hunt, won the start-up competition Bel.biz Battle and IE Venture Day, and also ranked high and participated in a number of major international forums. In September we are going to submit a project to the Pirate Summit, and we also hope that the project will be highly appreciated.

Thank!