When a Mini App beats a native app
The biggest barrier for a mobile app is not development cost but the cost of getting users to install it. For daily-use apps like banking or ride-hailing, that barrier is worth crossing. For something used a few times a year, it is not.
Registering a warranty, checking loyalty points, enrolling in a dealer programme, filing a maintenance request — all infrequent tasks. Requiring a dedicated app for each is a reliable way to ensure nobody uses it.
Zalo is on nearly every phone in Vietnam. A Mini App uses that: nothing to install, no new password, and user identity already available from the Zalo account.
What it can do
On the Mitsubishi Heavy project, the Mini App covered three jobs: product warranty activation, care for the technician and dealer network, and running marketing campaigns. The stack was ReactJS on the front end and Laravel on the back end.
The Zalo platform exposes some device and platform capabilities: QR scanning, the user’s verified phone number with their consent, notifications through a Zalo Official Account, and ZaloPay payments.
QR scanning deserves separate mention: it turns warranty activation from a form requiring a typed serial number into pointing a camera at a label. That difference decides how many people actually finish.
Limits worth knowing first
Mini Apps have a package size limit, so they do not suit graphics-heavy applications. They run inside Zalo’s environment and cannot reach every operating system API a native app can.
More important commercially: your users live inside Zalo’s ecosystem, and platform rules can change. For core business functions, treat the Mini App as an additional channel rather than the only home for your logic. The back end should serve web, native app and Mini App through the same API.