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.

