```json //[doc-seo] { "Description": "Run your ABP React Native application in the browser using ABP Studio or Expo Web with local HTTPS." } ``` ```json //[doc-params] { "Architecture": ["Monolith", "Tiered", "Microservice"] } ``` ```json //[doc-nav] { "Previous": { "Name": "Overview", "Path": "framework/ui/react-native" }, "Next": { "Name": "Running on Device", "Path": "framework/ui/react-native/running-on-device" } } ``` # Running on Web Running the React Native app in a browser is the **fastest way to test** login, navigation, and API integrations. No emulator, Cloudflare tunnel, or manual backend configuration is required. ## React Native project folder {{ if Architecture == "Microservice" }} - `apps/mobile/react-native/` {{ else }} - `react-native/` {{ end }} Install dependencies once with `yarn install` or `npm install` in that folder. ## Using ABP Studio (Recommended) Solutions created with ABP Studio include a **Default** run profile in the [Solution Runner](../../../studio/running-applications). {{ if Architecture == "Monolith" }} React Native Default Profile {{ else if Architecture == "Tiered" }} React Native Default Profile {{ else }} React Native Default Profile {{ end }} ### One-time setup: Initialize Solution Run the **Initialize Solution** task from the **Tasks** tab if you have not already. For React Native solutions, this task also creates local SSL certificates (`localhost.pem` and `localhost-key.pem`) in the React Native folder using [mkcert](https://github.com/FiloSottile/mkcert). These certificates are required by the **Default** profile's local SSL proxy. ### Start the Default profile When you start the **Default** profile, ABP Studio runs these main applications: 1. The backend host 2. **ReactNative.LocalSslProxy** — terminates HTTPS on **`https://localhost:8443`** and forwards to Expo Web on port `8081` 3. **ReactNative** — runs `npx expo start --web` and opens **`https://localhost:8443`** in your browser The solution template already adds `https://localhost:8443` to backend **CorsOrigins** and **RedirectAllowedUrls**, so no manual backend configuration is required. {{ if Architecture != "Microservice" }} React Native Web ABP Studio {{ end }} You can enter **admin** as the username and **1q2w3E\*** as the password to log in. ## Manual setup (without ABP Studio) If you are not using ABP Studio, use Expo Web with a local HTTPS proxy as described in the [Expo local HTTPS development guide](https://docs.expo.dev/guides/local-https-development/). 1. Navigate to the React Native folder and install dependencies if you have not already. 2. Generate SSL certificates in the React Native folder: ```bash mkcert localhost ``` 3. Start Expo Web: ```bash yarn web ``` 4. In a separate terminal, start the local SSL proxy (port `8443` matches the ABP Studio Default profile): ```bash npx local-ssl-proxy --source 8443 --target 8081 --cert localhost.pem --key localhost-key.pem ``` Alternatively, run `yarn create:local-proxy` and set `SOURCE_PORT=8443` if your template uses a different default port. 1. Open **`https://localhost:8443`** in your browser. ## Next steps To test on an Android emulator, iOS simulator, or physical device, continue with [Running on Device](./running-on-device.md).