# FAQ

> Quick answers to the most common questions about Grovs links, SDKs, pricing, and self-hosting.

Source: https://docs.grovs.io/docs/troubleshooting/faq

## Do links work if the app isn't installed?

Yes. The link sends the user to the store or your fallback URL. After install, Grovs delivers the link's payload on first launch. This is deferred deep linking, and it's automatic. See [Deferred deep linking](https://docs.grovs.io/docs/troubleshooting/deferred-deep-linking) to test it correctly.

## What platforms are supported?

Native SDKs for iOS (Swift/Objective-C), Android (Kotlin/Java), Flutter, React Native and Web, plus a [REST API](https://docs.grovs.io/docs/api-reference) for server-side link generation. Start from the [SDK Reference](https://docs.grovs.io/docs/sdk).

## Can I use my own domain for links?

Yes. Custom Domains serve links from a subdomain you own, like `links.acme.com`, instead of the default `*.sqd.link` host. SSL is provisioned for you. It requires an active paid subscription. See [Custom Domains](https://docs.grovs.io/docs/links/custom-domains).

## Does the React Native SDK work with Expo?

Yes, with a development build (`expo-dev-client`), not Expo Go. The config plugin automates native setup for projects with a Swift `AppDelegate` and Kotlin `MainApplication`/`MainActivity` (the current Expo templates).

1. Add the plugin to `app.json` with your `apiKey` and `scheme`. Optional: `useTestEnvironment`, `associatedDomains`, `baseURL`, `clipboardDomains`.
2. Run `npx expo prebuild`.

The plugin never edits a file that already contains `Grovs.configure`. After upgrading the wrapper or changing its options, run `npx expo prebuild --clean`. See [Expo integration](https://docs.grovs.io/docs/sdk/react-native/quick-start#expo-integration).

## How are MAUs counted?

A Monthly Active User is a unique device that connects to Grovs servers in a calendar month. That includes visitors who open Grovs links and users of apps with the SDK. The first 10,000 MAUs are free on every plan, and counts reset monthly. See [What are MAUs?](https://docs.grovs.io/docs/analytics/maus).

## Is self-hosting available?

Yes. Grovs is open source. The `grovs-io/self-host` repository bundles the backend, dashboard, database, storage and workers into one Docker Compose stack. See the [Self-Hosting overview](https://docs.grovs.io/docs/self-hosting).

## Why does the dashboard give me two domains and two URL schemes?

One set is for **test**, the other for **production**. Register both so development and release builds each resolve their links. `useTestEnvironment` picks the environment at configure time. See [Test vs production environment mismatch](https://docs.grovs.io/docs/troubleshooting/sdk-configuration-issues#test-vs-production-environment-mismatch).

## Do links created via the REST API appear in the dashboard?

No. API links are for server-side use and don't show in the dashboard. See [Generate a link](https://docs.grovs.io/docs/api-reference/links#generate-a-link).

## Can I migrate from Branch, AppsFlyer, or Firebase Dynamic Links?

Yes. See the [Migration Guides](https://docs.grovs.io/docs/migration-guides). To keep old Branch or AppsFlyer links working, move the subdomain to Grovs as a [custom domain](https://docs.grovs.io/docs/links/custom-domains).

## Do Universal Links work in the iOS Simulator?

No. Test Universal Links on a physical device. The Simulator can test the URL scheme path. See [Test the right way](https://docs.grovs.io/docs/troubleshooting/deep-link-not-opening-app#4-test-the-right-way).

## Can I regenerate my API key?

Contact <support@grovs.io> if your `PROJECT-KEY` was exposed. The key is in the dashboard under **Developers → API Key**.

## Can AI tools create and manage my links?

Yes. The Grovs MCP server lets assistants like Claude, Cursor or ChatGPT manage projects, links, campaigns and analytics. See [MCP Integration](https://docs.grovs.io/docs/ai/mcp).
