This open source project provides a unified platform powered by micro app architecture, allowing you to seamlessly integrate multiple applications within a single container.
With this approach, you can deploy multiple Web apps inside one super app while customizing its functionalities to fit your specific requirements.
This repository serves as the foundation for hosting multiple micro-apps with seamless authentication, integration, and centralized management.
.
├── backend/ # Ballerina backend service for SuperApp
│ └── README.md # Backend setup and API docs
├── docs/ # Documentation and guides
│ ├── DEPLOYMENT_GUIDE.md # End-to-end deployment instructions
│ └── FUTURE_IMPROVEMENTS.md # Planned enhancements
├── frontend/ # React Native (Expo) frontend for SuperApp
│ └── README.md # Frontend setup and usage docs
├── observability/ # OpenTelemetry metrics and monitoring setup
│ └── README.md # Observability configuration
├── resources/ # Images, diagrams, and assets
├── sample-microapps/ # Example micro-apps for demonstration
│ └── government-calendar/
│ ├── frontend/ # React frontend
│ └── README.md # Micro-app documentation
├── scripts/ # Utility scripts for development and deployment
├── superapp-admin-portal/ # React web portal for uploading and managing micro-apps
│ └── README.md # Admin portal documentation
├── LICENSE # Apache 2.0 license
├── README.md # Project root documentation (you're here)
├── issue_template.md # GitHub issue template
├── package.json # Root package configuration
└── pull_request_template.md # GitHub pull request template- Language: Ballerina
- Framework: React Native (Expo)
- State Management: Redux Toolkit + Redux Persist
- External identity provider (OIDC/OAuth2 compatible)
Here’s a high-level view of the flow:

- SuperApp: The main container application that manages authentication, navigation, and micro-app lifecycle
- MicroApps: Individual web applications loaded in WebViews, each serving specific functionality
- Bridge: Communication layer between SuperApp and MicroApps (see
frontend/docs/BRIDGE_GUIDE.md)
- Micro-apps are listed in the Super App Store.
- Users can download micro-apps from the store.
- Downloaded micro-apps are stored using AsyncStorage.
- (if required) When launched, microapp specific tokens are issued by the superapp for access.
- The micro-app uses micro-app specific access tokens to communicate with the respective backends.
Each part of this repository has its own setup guide. Pick the guide that matches what you want to do:
- Super App Deployment Guide: Step-by-step instructions for setting up the entire SuperApp stack locally, including infrastructure (database, IdP), configuration. Ideal for new contributors or those working on the complete system.
-
SuperApp Core Deployer (main app, backend, admin portal):
- Frontend Setup: React Native mobile app development and local testing
- Backend Setup: Ballerina API service development
- Admin Portal Setup: Web portal for managing micro-apps
-
Micro-App Developers (third-party or in-house apps):
- Micro-App Developer Guide: Building, integrating, and deploying micro-apps within the SuperApp
- Sample Micro-Apps: Reference implementations and examples
The mobile app sends performance metrics to an OpenTelemetry Collector, which exports to Prometheus.
cd observability
docker compose up -dView metrics at http://localhost:9090 (Prometheus)
Set in frontend/.env:
EXPO_PUBLIC_OTEL_ENABLED=true
EXPO_PUBLIC_OTEL_COLLECTOR_URL=http://10.0.2.2:4318
api_request_count_total,api_request_duration_bucketmicroapp_load_count_total,microapp_load_duration_bucketauth_token_refresh_count_totalapp_start_time_bucket
See observability/README.md for details.
All known issues of Open Super App Mobile are filed at: https://github.com/LSFLK/superapp-mobile/issues. Please check this list before opening a new issue.
Read the planned enhancements and longer-term tasks in FUTURE_IMPROVEMENTS.md.
If you are planning on contributing to the development efforts of Open Superapp Mobile, you can do so by checking out the latest development version. The main branch holds the latest unreleased source code.

