
How to build an app like Grab: Super app architecture for Southeast Asia
- Riya Thambiraj

- Build & Ship
- Last updated on
Key Takeaways
A super app is not just multiple apps stitched together. It's a shared platform (identity, payments, notifications, maps) with pluggable service modules that share user data and session state.
Grab started as a ride-hailing app and added services only after it had daily active users. The correct sequence is: one service with strong retention, then adjacent services that share the same user base.
GrabPay (Grab's e-wallet) is the real moat - users keep money in the wallet to pay for rides and food, creating financial lock-in that's much harder to compete with than convenience features.
Southeast Asia's super app market is fragmented by country - Grab is strong in Singapore and Malaysia, GoTo (Gojek + Tokopedia) owns Indonesia, Shopee leads in commerce. Building for a single country is more realistic than regional launch.
MVP approach: Start with ride-hailing or food delivery (high frequency, clear problem), add in-app wallet after 6 months of traction, then expand to adjacent services based on your user data.
Grab launched in 2012 as MyTeksi, a taxi booking app in Kuala Lumpur. The original app solved one problem: getting a licensed cab in a city where taxi availability was unpredictable.
Thirteen years later, Grab operates in 8 countries, serves 270 million users, and handles rides, food delivery, grocery delivery, package delivery, hotel booking, and financial services in a single app.
The technical journey from taxi app to regional super app is worth studying - not because you'll replicate it, but because the architecture decisions Grab made (and the ones it postponed) determine what you need to build first.
TL;DR
What a super app actually is
The term "super app" is used loosely. A simple definition: a super app is a mobile platform where users access multiple services - from different verticals and sometimes from third-party providers - under a single identity, with a unified payment method.
The key technical elements:
Shared identity: One login, one user profile, one trust score. A user who completes 200 Grab rides has identity history that works for renting a GrabCar, ordering GrabFood, and applying for GrabFinance.
Shared payment wallet: GrabPay balance moves between services. You top up once and use it for rides, food, and merchant payments. This creates switching costs that individual apps can't replicate.
Unified session state: The app knows what you did across services. Grab can recommend restaurants near your frequent ride destinations because ride and food data share the same user graph.
Third-party integrations (mini-programs): In mature super apps, third-party merchants integrate within the app via a mini-program framework - similar to WeChat Mini Programs. The user never leaves the app. The merchant reaches Grab's user base without building a separate app.
The wrong starting point
Most founders building a super app make the same mistake: they design the full platform on day one.
The resulting architecture looks right on a diagram but costs $1M+ to build, takes 18+ months, and launches with no users because no single service was built well enough to create daily habits.
Grab didn't launch as a super app. It launched as a taxi app. GrabFood launched in 2018, six years after the ride-hailing app. GrabPay launched in 2017. The super app platform evolved from a product that already had millions of daily active users.
The correct sequence:
- One service, built extremely well, with a retention mechanism (loyalty points, driver ratings, subscription)
- Active daily users from service 1
- Adjacent service 2 (food or delivery), sharing users from service 1
- In-app wallet once you have enough transaction volume to make it sticky
- Third-party integrations once you have the user base to attract merchants
Every step requires the previous one. The platform architecture should be designed to accommodate the full vision, but only the first service needs to be built on day one.
The two realistic starting services
Ride-hailing (high frequency, clear pain point, competitive intelligence available): If your market has unreliable or expensive taxis, ride-hailing creates daily habits quickly. The technical challenges are well-documented (see our Lyft build guide). The competitive risk: Grab, Gojek, and InDrive are well-established in most SEA markets.
Food delivery (high frequency, broad market, merchant recruitment challenge): Food delivery generates 2-3 orders per week for active users versus 2-3 rides per week. Retention is strong once users have ordering habits. The main challenge is merchant recruitment - you need enough restaurants before users find value.
For most Southeast Asian markets, the realistic starting point is a niche within one of these categories: a specific city, a specific cuisine type, or a specific customer segment (e.g., corporate meal programs, campus food delivery).
Platform architecture: building for expansion
The difference between a single-service app and a super app foundation is the shared platform layer.
Build these components to be service-agnostic from day one:
Identity and authentication
Single sign-on across services. User profile with trust signals (completed orders, dispute history, verification status). Role-based access that supports both consumer users and merchant/driver users.
Use Auth0 or Cognito for identity infrastructure. Don't build custom authentication - the security requirements are complex and vendor solutions are mature.
Payment layer
An in-app wallet that abstracts payment methods from service logic. A ride payment and a food payment both call the same payment API. The wallet layer handles:
Balance management (top-up, deduction, refund)
Multi-currency support (important for multi-country expansion)
Transaction history
Payment method abstraction (card, bank transfer, cash, wallet)
For the MVP, Stripe or payment gateways local to your market (Xendit in Indonesia, Midtrans in Indonesia, Omise in Thailand) handle the payment rails. The in-app wallet (stored-value) requires payment service licensing, which adds 6-12 months of regulatory process.
Build wallet-ready architecture from day one, even if you launch with card-only payments. Adding wallet functionality later to a non-wallet architecture is a complete rebuild.
Maps and location services
Both rides and food delivery use maps. Design a maps service layer that both can share:
Geocoding (address to coordinates)
Directions and routing
Real-time driver/delivery tracking
Service area management (which areas have active supply)
Mapbox is cheaper than Google Maps at scale. Google Maps is more accurate in most SEA markets. Budget for a hybrid approach or plan your maps vendor decision based on your primary market's data quality.
Notification system
Push notifications, SMS, and in-app messages for both users and drivers/merchants. A notification service that all service modules share, with:
Multi-channel routing (push first, SMS fallback)
Template management by service
Delivery tracking and retry logic
User notification preferences
Twilio handles SMS and push reliably at scale. Integrate via a notification abstraction layer so individual services don't call Twilio directly - this makes vendor switches cleaner.
Service module architecture
Each service (rides, food, deliveries) is a separate backend service domain that:
Has its own microservices for domain logic
Calls shared platform services (identity, payments, maps, notifications) via internal APIs
Does NOT directly access another service's database
Exposes an API for the mobile app's service-specific screens
This separation is what makes super apps maintainable at scale. Grab's engineering team can update GrabFood's restaurant matching algorithm without touching the ride-hailing codebase.
For an MVP with 2 services, you don't need Kubernetes and 50 microservices. A well-structured monolith with clear service boundaries works fine at under 10,000 daily active users. Build the separation cleanly so migration to microservices later doesn't require rewriting business logic.
The merchant/driver ecosystem
Super apps have two user types: consumers and supply-side partners (drivers, restaurants, merchants). The supply-side experience is as important as the consumer experience.
Driver app requirements: Accept jobs, navigate, track earnings, manage availability, access support. Drivers use this app for 8-12 hours daily in a moving vehicle. Every unnecessary tap is a safety issue.
Merchant app/portal requirements: Menu management, order acceptance, preparation status updates, analytics, payouts. Restaurants care about order flow and payout timing, not design awards.
Supply onboarding: Driver background checks, vehicle verification, restaurant KYC, merchant payment setup. These take weeks per partner at launch. Build onboarding automation from day one - manual onboarding doesn't scale.
Regional considerations for Southeast Asia
SEA is not one market. Regulatory, payment, and behavioral differences by country are significant:
Singapore: Most digitized market. GrabPay licensed under MAS. Competition from FavePay, PayNow, DBS PayLah. Stricter data protection requirements under PDPA.
Malaysia: Grab's home market. DuitNow real-time payment rails (similar to UPI). Bank Negara licensing for e-wallets. Grab holds a Digital Banking license as of 2022.
Indonesia: Largest market by population. GoTo (Gojek + Tokopedia) dominant. OVO and Dana as competing e-wallets. Multiple payment rails (QRIS, GoPay, Dana). Strong cash culture in non-metro areas.
Thailand: PromptPay instant payment rail. TrueMoney and LINE Pay competing e-wallets. Strict regulations on ride-hailing (legal gray area for motorcycle taxis).
Vietnam: Momo and ZaloPay dominant in mobile payments. Ride-hailing competitive (Grab, Be, Gojek). Local players strong in food delivery.
Building for a single country first is the right call. Treat multi-country expansion as a separate product phase, not a feature.
Tech stack
| Layer | Technology |
|---|---|
| Mobile | React Native or Flutter (cross-platform) |
| Backend | Node.js (real-time services) + Go (high-throughput APIs) |
| Database | PostgreSQL + PostGIS (geospatial), Redis (caching) |
| Message queue | RabbitMQ or Kafka |
| Payment | Stripe or local rail (Xendit/Midtrans/Omise) |
| Maps | Google Maps Platform or Mapbox |
| Notifications | Twilio + Firebase |
| Identity | Auth0 or AWS Cognito |
| Hosting | AWS with multi-region for SEA latency |
What to skip on the first version
Mini-programs: Third-party merchant embedding is a platform feature for when you have 1M+ monthly active users. Skip it entirely until you need it to retain merchants who want deeper integration.
AI recommendations: Personalized restaurant recommendations, surge demand prediction, route optimization. These require data volume you don't have at launch. Use rule-based recommendations and add ML when you have the training data.
Subscription tiers: Grab's subscription programs (GrabUnlimited) came years into the product. Launch with points and cashback instead - simpler to implement, easier to understand.
Financial services: Loans, insurance, and investment products require banking licenses that take 12-18 months to obtain. These are year 3+ product additions, not MVP features.
The decision framework
Before starting the build, answer these three questions:
-
Which single service creates daily habits in your target market? Rides are daily; grocery delivery is weekly; hotel booking is quarterly. Pick the highest-frequency service.
-
Do you have supply-side relationships before you launch? A food delivery app with 10 restaurants fails. A ride app with 20 active drivers fails. Plan driver/merchant acquisition as a pre-launch project.
-
What's the fintech path? Your long-term moat is a wallet. What payment service licensing is required in your target country, and what's the timeline? Start the regulatory process early - it takes longer than the build.
The right answers narrow the MVP scope dramatically. Most founders start with a cleaner, simpler product after working through these questions.
How much does it cost to build an app like Grab?
Cost scales quickly with the number of services. The shared platform layer (identity, payments, maps, notifications) is the fixed cost regardless of how many services you add on top.
| Build scope | Cost range | Timeline |
|---|---|---|
| MVP - 1 service (rides or food) + shared platform layer | $150K-$200K | 24-36 weeks |
| 2-service platform + in-app wallet | $200K-$400K | 36-52 weeks |
| Full super app - 4+ services + merchant ecosystem | $400K-$800K+ | 18+ months |
How long does it take to build an app like Grab?
The shared platform layer is the most critical investment - building it right from the start means each new service takes weeks to add, not months. Rushing the platform layer is the most common reason super app builds fall apart.
| Phase | Duration |
|---|---|
| Discovery + architecture (platform layer design) | Weeks 1-3 |
| Shared platform (identity, payments, maps, notifications) | Weeks 2-8 |
| First service module (rides or food) + supply-side app | Weeks 6-16 |
| QA + supply onboarding | Weeks 14-18 |
| Total (RaftLabs MVP - 1 service) | 16-18 weeks |
RaftLabs ships a working single-service platform with the full shared layer in 16-18 weeks. A second service can be added in 6-8 weeks on top of that foundation. Building the right architecture first is the only way to hit this timeline.
Building a multi-service platform or marketplace? Talk to us. We've shipped marketplace platforms, real-time apps, and payment systems across 100+ products and know what scope actually gets to launch.
Frequently Asked Questions
An MVP with 2 services (e.g., rides + food delivery) costs $150K-$300K and takes 28-48 weeks. A full super app with rides, food, deliveries, and an in-app wallet costs $400K-$800K. A mature platform with 6+ services, driver/merchant ecosystems, and financial services costs $1M+. Grab itself raised $2.3 billion before launching in its 10th country.
A super app uses a shared platform layer (authentication, payment wallet, push notifications, maps SDK, user profile) with pluggable service modules on top. Each service (rides, food, deliveries) has its own microservices for domain logic but shares the platform layer. A mini-program framework lets third-party merchants integrate directly within the app without building separate apps.
Three things: shared identity (one login for all services), shared payment wallet (GrabPay balance used across all services), and unified user history (Grab recommends restaurants based on your ride patterns). These create compounding lock-in that separate apps can't replicate. Each new service makes the others more valuable.
GrabPay is a stored-value e-wallet licensed as a payment service in each country. Users top up via bank transfer, card, or cash at partner locations. The wallet balance pays for rides, food, and third-party merchants. Grab earns interchange on merchant transactions and interest on stored balances. Building an equivalent requires payment service provider licensing - a 6-18 month regulatory process in Singapore, Malaysia, Indonesia, and other SEA markets.
RaftLabs has shipped 100+ products including marketplace platforms, real-time location apps, and payment systems. A super app combines all three. We architect the shared platform layer first so each additional service doesn't require rebuilding core infrastructure. Our 12-week delivery framework gets you to a working MVP in one service before committing to the full platform.

