Why doesn't Zerodha combine all their apps into one universal Zerodha app?
On Zerodha's diverse product strategy -
"Why is there a Coin and Kite? Why can't all of Zerodha's apps be rolled into one?" is a question that comes up often. The reasons are manifold and complex and are made up of important business and technical reasons.
While all of Zerodha's products fall under the "investmentTech" umbrella, they differ considerably from each other. Kite is near real time application purpose built for fast intraday trading. Uptime is everything owing to its real time nature. Underneath its neat UI, there is an extremely complex stack. We've seen the chaos that rises when something goes wrong, often things that are completely out of our hands such as faults in exchange leased lines.
On the other hand, Coin is a relaxed, passive investment app. It's aimed at a different market segment altogether, and any potential bursts of downtime may not significantly effect on anyone's investment experience. Active traders access Kite for several hours every day, while mutual fund investors open the Coin app once in a while at their leisure. The business use cases and UX on these two applications are fundamentally different, and to a large extent, so are the target markets. The UI and UX of these applications are designed to cater to these different requirements and target markets. Coin is relaxed, is more visually appealing with colourful graphics. Kite cuts the chase straight to the point with dense, critical information.
Now imagine these two applications being rolled into a single app. They would have to have the same visual elements and UI for consistency. The neat mutual fund investment and SIP window would have to be redone to look like the Kite order window. The cards that show mutual fund investments will have to be rewired to fit the information-dense equity holdings view of Kite. All of this for UI consistency just because they'd be crammed into the same application.
Also, there'd be no more Coin, obviously. It'd just be another tab on Kite. Now imagine promoting this application to the passive investment crowd who are only interested in mutual funds. The pitch would be along the lines of "Download the Kite app and click on the "mutual funds tab". Skip positions, holdings, marketwatch, margins etc. as they are not relevant to mutual funds". Imagine the horror!
Let's consider Sentinel which is a utility that lets users set various triggers and price alerts on instruments. This is available to the general public and not just clients of Zerodha. How could it then be possibly integrated into Kite that only permits Zerodha's users to log in? The product couldn't have existed in its current form.
Let's consider one more example, Console, our new back office. It's the central dashboard where a user will access all their information pertaining to their Zerodha account, from exhaustive trade reports to tax reports and PDFs of their account opening forms. In its own right, Console has a dozen (and growing) or so unique screens that present different kinds of complex information. The profit and loss report tables occupy 90% of the screen to accommodate a large number of columns. Now imagine this being incorporated into Kite's UI. Not only will these screens be confined into a "reports" menu and would be difficult to navigate, Kite's non-wide screen layout would make it impossible to present the large report tables Console produces in any meaningful manner. Imagine the snappy and lightweight Kite being bogged by dozens of reports and rarely used PDF downloads. The use cases just do not align.
We've hypothesized with several examples here. Extend that a bit and imagine what would happen to Kite as Coin, Sentinel, Console (and more ...) products rolled into it. Kite will become clunkier. The UI will become crowded and confusing. As a business, instead of thinking "hey, let's add this feature to Coin and make it better", we'd be thinking, "hm, if we add this new thing to the mutual funds tab on Kite, what all will break? Oh now, we can't visualize mutual funds as little coins for easy navigation because that's not compaible with Kite's UI pattern". The freedom of continuously improving Kite's trading feature and Coin's investment feature in their own rights, in ways that are fundamentally suitable to those business use cases and product experiences will cease to exist. By keeping these products separate and giving them their own identities, we're doing them justice and are constantly improving them in ways where they shine in their verticals, without having to worry about other products.
Google's free office suite, Docs, Sheets, Present etc. are all separate products that work seamlessly with each other. How'd it be if all those separate tools were condensed into a single application? Consolidation is the exception and verticals are the norm, as the former is impractical to scale in meaningful ways. Social networking, messaging, photo and video sharing--Facebook + Whatsapp + Instagram, they all do it. Now why hasn't Facebook folded these apps into one? Imagine how terrible and cluttered the experience would be. It'd just alienate the target crowds completely and ruin all the apps.
Business wise, it is an impractical and unwise proposition to make a kitchensink app.
To make it easy for the users, all our applications are deep-linked. They all have a single login, and they are carefully linked to each other in the right contexts, for instance, the "Set alert" option that shows up over contract names in Kite will seamlessly open Sentinel without the need for a separate login, and the contract will appear pre-selected on the UI. This is how we've been building our plug-and-play Kite Connect ecosystem which enables us (and aspiring developers and startups) to be creative with new products. They plug into our ecosystem seamlessly without disrupting the core applications. Smallcase, Streak, Sensibull, these are all great applications built by different companies. They're free to build and run their businesses as they see fit as they have the freedom to plug-and-play. Imagine if they had to build their products as screens into Kite!
As mentioned earlier, Kite is a highly sensitive, real time trading application with a very complex backend. Coin, for instance, on the other hand, is on the opposite side of the spectrum. The underlying technologies and stacks are totally different. The developers who work on them have different skill sets. The infrastructure required is different. The pace and style of development is different. The product offerings and the UX are different and the designers have to step into different shoes to create them. They represent completely different business verticals, target markets, and even regulations.
Kite may internally get several updates per day. Coin may get once every week. If they were one app, every time something changed in one of their screens, the entire application would have to be updated for everyone, again, a highly impractical scenario.
Now imagine there's a bug in Coin that affects the app adversely. If Coin was within Kite, it could just take Kite down with it! This would create a huge predicament as every feature, every new screen that is added to an application creates added complexities and an unknown number of new pathways where something can go wrong. When you have one mega app that does everything, any issue that crops up has the potential to shut the entire thing down. It would be impossible to develop and release new products and features like we do today.
There are a large number of specific technical reasons that warrant separation of concerns in fundamentally different products and applications, just like their business counterparts. It's unnecessary to enumerate them here as there are more than enough business and product reasons to preclude the whole idea of "kitchen-sinking" applications.