ConfigForge — Expo App Config Generator
Enter your app name and company domain to get a valid iOS bundle identifier, Android package name, Expo slug, URL scheme, and a paste-ready app.json.
Shown under the icon on the home screen.
Your domain in normal order (e.g. acme.com). We reverse it for you — you don't need to own it, but a real one avoids clashes.
Note: Android package names can't contain hyphens and each part must start with a letter, so we strip those characters automatically. iOS and Android share the same identifier here for simplicity.
Expo slug
my-cool-app
iOS bundle identifier
com.acme.mycoolapp
Android package
com.acme.mycoolapp
URL scheme (deep links)
mycoolapp
{
"expo": {
"name": "My Cool App",
"slug": "my-cool-app",
"scheme": "mycoolapp",
"ios": {
"bundleIdentifier": "com.acme.mycoolapp"
},
"android": {
"package": "com.acme.mycoolapp"
}
}
}Frequently asked questions
What is an iOS bundle identifier?
A bundle identifier is a unique ID for your iOS app, written in reverse-domain notation (e.g. com.acme.mycoolapp). Apple uses it to identify your app across the App Store, provisioning profiles, and push notifications. It must be unique to your app.
How is an Android package name different from an iOS bundle identifier?
They look similar (both reverse-domain), but Android application IDs are stricter: they can't contain hyphens, and each dot-separated segment must start with a letter. This tool sanitizes your input so the same identifier is valid on both platforms.
Can I change the bundle identifier or package name later?
Before you publish, yes — freely. After you ship to the App Store or Google Play, no: the identifier is permanently tied to that store listing, and changing it means creating a new app. Choose carefully up front.
Do I need to own the domain I use?
No. The domain is only used to build a unique, conventional identifier — it isn't verified or connected to your website. That said, using a domain you control (or a unique one) avoids collisions with other apps.
What is the Expo scheme used for?
The scheme enables deep linking and OAuth redirects — for example myapp:// URLs that open your app directly. Expo Router and auth flows rely on it, so it's set in your app.json alongside the identifiers.
Now build the app
Skip the boilerplate — start from a production-ready Expo template with auth, navigation, and UI already wired up.
Browse Expo templates