Slack - this is a multi-platform corporate closed ecosystem for managing and developing internal projects, including integration into modern cloud services, referring to itself as a corporate messenger.
The messenger market is overheated: When Slack was being created, there weren't big competitors with internal ecosystems like Whatsapp/a>.
To create a practical solution, you need a CSP: A messenger with a good optimization and security isn't enough to compete with existing solutions. You need to decide on additional functionality.
Slack hasn't immediately grown into its current functionality: Originally, it was a corporate messaging app with a convenient system for navigating through the dialogue. During the developing process, it is necessary to focus on the main things and introduce further functionality gradually.
Comprehend the popularity of Slack: at the stage of its creation, Corporate Messenger acted as an alternative to e-mail services and IRC systems like ICQ and Skype. Taking the best of each platform and avoiding the drawbacks.
However, Slack, just like the other narrow business solutions has its disadvantages. For example, storing the information on global cloud servers, getting a lot of work, limits the usability of the whole ecosystem.
Using the disadvantages of existing software complexes, it is possible to create your own software that specializes in solving them. For example, create a local copy on the company's hosting/servers as an additional and unique opportunity to provide continuity and fault-tolerance of the system.
How to develop Slack? In brief, we will need:
Messenger. Fault tolerance, optimization of traffic usage, security, and instant delivery are important factors in creating app like Discrod. You can use existing IRC protocols, or their analogues, as a foundation for the software.
Hosting with optimization. The main task of such hosting - to simplify the transfer of simple media, and be independent from third-party servers. If the storage channel is better organized for the user, the less delay and therefore less discomfort he will feel while working with documents, files and worxpace. At the first stage, there is no need to go deep and create your own GitHub. Earlier we reviewed a similar solution.
Creating and/or integrating functionality for chatbots. It's important not to write ready-made chatbots for integration at the start, but to create convenient api functionality, which will allow the community to develop and integrate appropriate bots into the software package on their own.
Integration into cloud services. Here it is important to maintain a balance between the speed of the resulting software package and its usability. To begin with, you can limit yourself to manual implementation of cloud services from related areas. Later, after passing the MVP stage, move towards more complex implementations.
The links allow you to review in detail and estimate the cost of the complex development of each element. Remember that the functionality needs to be bundled into one well-optimized software package.
The total user base is not equal to the number of customers. Even at slack, the number of people who buy software on a subscription basis is less than one percent of the total user base. This must be considered both in the development and support of the software product.
Advertising as a force-factor for moving from Free to Premium. Advertising as an element of monetization is used by a number of messengers such as Telegram, Whatsapp, Viber. It will help to get a basic projected income to support the team of developers serving and upgrading the application in the early stages.
Marketing. Market overheating was mentioned earlier. Consequently, in order to stand out from the competition, the app needs to be visible to users. It is not enough to develop and publish it in the store. Marketing costs can absorb up to 50% of the development budget in the early stages, and exceed this cost several times during the active promotion of the app.
As Slack is an ecosystem, it is important to segment of the app development to optimize costs. Take "enterprise messenger" as the basis.
Slack's technical foundation is built on:
+ Additional language for cross-platform implementation. Here it depends on your preferences and wishes. But the functionality must be fully duplicated and synchronized with smart devices.
++ In addition at the start you need to put money and effort into UI/UX optimization of the interfaces. You need a separate specialist, or you can use the standards UI for native apps.
The previously mentioned programming languages are not the only ones.
As part of Back-end development, Merehead can offer development based on the following technologies!
Let's take a look at the basic functionality of Slack. This functionality is a basic necessity for a user migrating to a competitive platform.
Message delivery system. Preferably with the ability to encrypt. Consider the TG solutions with end-to-end encryption. You can manage without encryption at all.
It is important to synchronize messages across all devices and have local copies of the history on the device itself (preferably in encrypted form).
The pitfall: Optimizing traffic consumption. The system has to work fast.
This is the main difference between a modern messenger with a corporate bias and a household one. Convenient navigation. Development should be based on the client's needs.
If you are working with documents - Create an opportunity to search for text from the document itself.
If you work with files - you can collect them using tags or other markers.
The pitfall: it is necessary not to overcomplicate the navigation in the process of deepening and flexibility of settings.
An advanced search feature designed more for programmers than for residential users. It allows to set the most exact search parameters with special "regular expressions".
The pitfall: RegExpr has certain standards and it's important to balance convenience, and compliance with the standards of queries through RegExpr.
A feature less related to IRC, and referring more to forum correspondence. It's important that quoting be multi-leveled, in order to quickly understand what the current discussion is about.
The pitfall: Avoiding screen clutter with multi-level citations.
It means creating an internal editor capable of quick editing the main popular document formats.
The pitfall: given the internal encryption of various containers (PDF, DocX), you need to decompress and pack the container internally so as not to damage it.
Notification management is important for enterprise development management. The notification system "needs to be flexible." For example, in Slack, users can be notified by groups or by keywords. Additionally, the user should be able to disable notifications, or change their sound and visual.
A feature that allows for more successful migration from other corporate ecosystems. If possible, use a public format for importing and exporting dialogs, without encryption, such as XML.
The pitfall: different standards in ecosystems for importing and exporting data.
When all modern messaging app like Wechat tend to make the interface heavier, with stickers, gif animations and sets of emoticons (emoji), you should leave it to the user to switch to a simplified view, with an emphasis on the textual component.
If the slack clone is developed as a corporate ecosystem, even at the basic stage you should leave the ability to store and transfer files, via intermediate cloud storage.
The pitfall: Local copies on client servers.
The pitfall: such a depth of integration can create big problems with fault tolerance and security of the resulting product!
Slack has an advanced architecture and internal components to make the application work quickly. The platform has a number of advantages for working with teams and is well suited for corporate communications. The cost of developing an application like Slack will range from $200,000 to $500,000 and will largely depend on the implementation requirements. The development team will be engaged in coding for 6 to 12 months in order to implement a project with the specified set of functions.
Mobile application, desktop application and web version makes it convenient for use on different devices. But you can always start with the profit center version and a minimum set of functions. This will make it possible to launch the project in the near future and with a small budget from $40,000 to $80,000. The project will use a micro-service architecture for easy scaling in the future.