Why we built three wallets for the same ecosystem

One ecosystem. Three wallets. Why?
Building 3 Web3 wallets at once for a single blockchain network? It looks like a prioritization mistake. Here is why it was actually essential.
Web, native mobile (iOS and Android), Chrome extension. All built in TypeScript on JuneoJS, the open-source SDK we maintain.
It is not because we wanted extra work.
The web wallet: universal access, no installation required. Convenient for onboarding, but it cannot talk to external DApps. And on mobile, the experience is often mediocre.
The Chrome extension: the only format that injects into the browser and talks smoothly to DApps. It is the Web3 industry standard. Without it, developers have no bridge to interact with the blockchain.
The mobile wallet: for daily usage and retention. Biometrics, push notifications, a native interface designed for the screen. End users no longer manage their assets from a desktop.
Three use cases. Three technical constraints. Three distinct products.
One single source of truth for the business logic: our SDK. When we update the engine, all three front-end interfaces benefit instantly.
In the blockchain ecosystem, wallets are not just products. They are entry points with diametrically opposed constraints.