Bun 1.3.14, matching the root packageManager field
Xcode and CocoaPods for iOS development
Android Studio, an Android SDK, and an emulator for Android development
An Expo account and EAS CLI access when pulling environments or creating cloud builds
The mobile app uses native Firebase, RevenueCat, OneSignal, secure storage,
and biometric modules. Use a native build or development client; Expo Go is
not sufficient.
The repository uses EAS environments as the intended source for local mobile environment values:
bun run env
This runs eas env:pull from apps/mobile and moves the generated file to the repository root as .env.local. You can also create a root .env.local manually for local-only values. Never commit credentials.See Environment variables for every supported key.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"AMiSi Mobile Starter","description":"Documentation for the production-ready Expo and React Native starter with authentication, subscriptions, notifications, analytics, security, and release infrastructure.","colors":{"primary":"#2B59D3","light":"#5C82E6","dark":"#2449AE"},"logo":{"light":"https://mintcdn.com/amisi/OQCBB6T0Z3f8eiII/assets/amisi.svg?fit=max\u0026auto=format\u0026n=OQCBB6T0Z3f8eiII\u0026q=85\u0026s=4d6c9a8a297eb08561c0cc6088098912","dark":"https://mintcdn.com/amisi/OQCBB6T0Z3f8eiII/assets/amisi-light.svg?fit=max\u0026auto=format\u0026n=OQCBB6T0Z3f8eiII\u0026q=85\u0026s=9fb2fd1b6e4320910d1006b6a5cadeec","href":"https://mobile-starter.amisi.ai/"},"favicon":"https://mintcdn.com/amisi/OQCBB6T0Z3f8eiII/assets/favicon.svg?fit=max\u0026auto=format\u0026n=OQCBB6T0Z3f8eiII\u0026q=85\u0026s=16f42f55fbd9060d43eddeed7b7a9d38","appearance":{"default":"system"},"background":{"decoration":"gradient","color":{"light":"#FAFAF9","dark":"#16161A"}},"navbar":{"links":[{"href":"https://mobile-starter.amisi.ai/","label":"Website"},{"href":"https://discord.gg/XtP4jWXw","label":"Discord","type":"discord"}],"primary":{"type":"button","label":"Get the starter","href":"https://mobile-starter.amisi.ai/#pricing"}},"footer":{"socials":{"x":"https://x.com/AmisiMobile","github":"https://github.com/amisi-dev-tools/react-native-expo-starter-kit","discord":"https://discord.gg/XtP4jWXw"},"links":[{"header":"Product","items":[{"label":"Website","href":"https://mobile-starter.amisi.ai/"},{"label":"Pricing","href":"https://mobile-starter.amisi.ai/"},{"label":"Live demo","href":"https://fir-demo-mobile-starter.web.app"}]},{"header":"Resources","items":[{"label":"Quickstart","href":"/getting-started/quickstart"},{"label":"Architecture","href":"/architecture/overview"},{"label":"Changelog","href":"/changelog"}]},{"header":"Community","items":[{"label":"GitHub","href":"https://github.com/amisi-dev-tools/react-native-expo-starter-kit"},{"label":"Discussions","href":"https://github.com/amisi-dev-tools/react-native-expo-starter-kit/discussions"},{"label":"Discord","href":"https://discord.gg/XtP4jWXw"}]},{"header":"Company","items":[{"label":"Enterprise","href":"https://mobile-starter.amisi.ai/enterprise"},{"label":"Terms","href":"https://mobile-starter.amisi.ai/terms-and-conditions"},{"label":"Privacy","href":"https://mobile-starter.amisi.ai/privacy-policy"}]}]},"search":{"prompt":"Search AMiSi docs..."},"fonts":{"heading":{"family":"Sora"},"body":{"family":"Onest"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"amisi","hasAudioNarration":false,"actualSubdomain":"amisi","customDomains":["docs.mobile-starter.amisi.ai"],"gitSource":{"type":"github","owner":"amisi-dev-tools","repo":"amisi-mobile-starter","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a897b392953dae940903627","collectionId":"b45e0c27-3374-483e-aafe-c7edced231ff","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a897b392953dae940903627"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6a897b392953dae940903627","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Features","count":25},{"language":"default","tag":"Components","count":23},{"language":"default","tag":"Packages","count":11},{"language":"default","tag":"Forms","count":9},{"language":"default","tag":"Content and layout","count":8},{"language":"default","tag":"Introduction","count":7},{"language":"default","tag":"Tips \u0026 Tricks","count":7},{"language":"default","tag":"Configuration","count":6},{"language":"default","tag":"Getting started","count":6},{"language":"default","tag":"Working with the starter","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"getting-started/quickstart","slug":"/getting-started/quickstart","pageMetadata":{"title":"Quickstart","description":"Install dependencies, sync development configuration, and run the native app and local tools","icon":"rocket","href":"/getting-started/quickstart"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Install dependencies, sync development configuration, and run the native app and local tools\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tab,Tabs,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Node.js 20 or newer`}),`\n`,_jsxs(_components.li,{children:[`Bun 1.3.14, matching the root `,_jsx(_components.code,{children:`packageManager`}),` field`]}),`\n`,_jsx(_components.li,{children:`Xcode and CocoaPods for iOS development`}),`\n`,_jsx(_components.li,{children:`Android Studio, an Android SDK, and an emulator for Android development`}),`\n`,_jsx(_components.li,{children:`An Expo account and EAS CLI access when pulling environments or creating cloud builds`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`The mobile app uses native Firebase, RevenueCat, OneSignal, secure storage,\nand biometric modules. Use a native build or development client; Expo Go is\nnot sufficient.`})}),`\n`,_jsx(Heading,{level:`2`,id:`install-the-workspace`,children:`Install the workspace`}),`\n`,_jsx(_components.p,{children:`From the repository root:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The postinstall scripts patch React Native podspec paths and synchronize generated mobile theme CSS.`}),`\n`,_jsx(Heading,{level:`2`,id:`configure-development-values`,children:`Configure development values`}),`\n`,_jsx(_components.p,{children:`The repository uses EAS environments as the intended source for local mobile environment values:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` env`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This runs `,_jsx(_components.code,{children:`eas env:pull`}),` from `,_jsx(_components.code,{children:`apps/mobile`}),` and moves the generated file to the repository root as `,_jsx(_components.code,{children:`.env.local`}),`. You can also create a root `,_jsx(_components.code,{children:`.env.local`}),` manually for local-only values. Never commit credentials.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/configuration/environment-variables`,children:`Environment variables`}),` for every supported key.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-and-run-a-native-app`,children:`Create and run a native app`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`iOS`,id:`ios`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ios`})]}),`\n`]})})}),_jsx(_components.p,{children:`The iOS wrapper patches the Podfile before running the native project.`})]}),_jsx(Tab,{title:`Android`,id:`android`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` android`})]}),`\n`]})})})})]}),`\n`,_jsx(_components.p,{children:`Start Metro for the installed native app:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` start`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`bun run start:clear`}),` when Metro caches become stale.`]}),`\n`,_jsx(Heading,{level:`2`,id:`regenerate-native-projects`,children:`Regenerate native projects`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` prebuild`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`To remove both generated native directories and regenerate them offline:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` clear`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`bun run clear`}),` removes `,_jsx(_components.code,{children:`apps/mobile/ios`}),` and `,_jsx(_components.code,{children:`apps/mobile/android`}),`. Commit or\npreserve intentional native changes before running it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`run-local-tools`,children:`Run local tools`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` configurator:dev`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` docs:dev`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The Configurator listens on port `,_jsx(_components.code,{children:`5173`}),` by default. Mintlify normally opens its preview on port `,_jsx(_components.code,{children:`3000`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-workspace`,children:`Verify the workspace`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` verify`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This runs affected Nx lint, typecheck, and test targets. See `,_jsx(_components.a,{href:`/development/testing`,children:`Testing`}),` for targeted commands.`]}),`\n`,_jsx(Heading,{level:`2`,id:`useful-commands`,children:`Useful commands`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` check`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` nx:show:mobile`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`bun`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` doctor`})]}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`check`}),` runs Biome checks across the workspace.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`nx:show:mobile`}),` displays resolved mobile targets.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`doctor`}),` runs Expo Doctor.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Quickstart","description":"Install dependencies, sync development configuration, and run the native app and local tools","icon":"rocket","href":"/getting-started/quickstart"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Install the workspace","slug":"install-the-workspace","depth":2,"children":[]},{"title":"Configure development values","slug":"configure-development-values","depth":2,"children":[]},{"title":"Create and run a native app","slug":"create-and-run-a-native-app","depth":2,"children":[]},{"title":"Regenerate native projects","slug":"regenerate-native-projects","depth":2,"children":[]},{"title":"Run local tools","slug":"run-local-tools","depth":2,"children":[]},{"title":"Verify the workspace","slug":"verify-the-workspace","depth":2,"children":[]},{"title":"Useful commands","slug":"useful-commands","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"amisi","siteName":"AMiSi Mobile Starter","title":"Quickstart - AMiSi Mobile Starter","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-20T08:28:50.992Z","originalFileLocation":"getting-started/quickstart.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Install dependencies, sync development configuration, and run the native app and local tools\">\u003cmeta data-mint-head name=\"application-name\" content=\"AMiSi Mobile Starter\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Quickstart - AMiSi Mobile Starter\">\u003cmeta data-mint-head property=\"og:description\" content=\"Install dependencies, sync development configuration, and run the native app and local tools\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AMiSi Mobile Starter\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://amisi.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Quickstart\u0026amp;description=Install+dependencies%2C+sync+development+configuration%2C+and+run+the+native+app+and+local+tools\u0026amp;theme=e9fd690619fa01684fbd9bb1\u0026amp;signature=8a17612c85db467b1ca7dce3f3a2feb6b4d9551b49bdcc2de332b7227dab6e94\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Quickstart - AMiSi Mobile Starter\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Install dependencies, sync development configuration, and run the native app and local tools\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://amisi.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Quickstart\u0026amp;description=Install+dependencies%2C+sync+development+configuration%2C+and+run+the+native+app+and+local+tools\u0026amp;theme=e9fd690619fa01684fbd9bb1\u0026amp;signature=8a17612c85db467b1ca7dce3f3a2feb6b4d9551b49bdcc2de332b7227dab6e94\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/amisi/Mi364PzUVnbpdudy/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AMiSi Mobile Starter\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2B59D3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/getting-started/quickstart.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mobile-starter.amisi.ai/#organization\",\"name\":\"AMiSi Mobile Starter\",\"url\":\"https://docs.mobile-starter.amisi.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/amisi/OQCBB6T0Z3f8eiII/assets/amisi.svg?fit=max\u0026auto=format\u0026n=OQCBB6T0Z3f8eiII\u0026q=85\u0026s=4d6c9a8a297eb08561c0cc6088098912\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mobile-starter.amisi.ai#website\",\"name\":\"AMiSi Mobile Starter\",\"url\":\"https://docs.mobile-starter.amisi.ai\",\"publisher\":{\"@id\":\"https://docs.mobile-starter.amisi.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart#webpage\",\"url\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart\",\"name\":\"Quickstart\",\"description\":\"Install dependencies, sync development configuration, and run the native app and local tools\",\"dateModified\":\"2026-08-20T08:28:50.992Z\",\"isPartOf\":{\"@id\":\"https://docs.mobile-starter.amisi.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting started\",\"item\":\"https://docs.mobile-starter.amisi.ai/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quickstart\",\"item\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart#article\",\"headline\":\"Quickstart\",\"name\":\"Quickstart\",\"description\":\"Install dependencies, sync development configuration, and run the native app and local tools\",\"url\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mobile-starter.amisi.ai/getting-started/quickstart#webpage\"},\"dateModified\":\"2026-08-20T08:28:50.992Z\",\"publisher\":{\"@id\":\"https://docs.mobile-starter.amisi.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mobile-starter.amisi.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AMiSi Mobile Starter\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"AMiSi Mobile Starter","nav":{"global":null,"tabs":[{"tab":"Introduction","groups":[{"group":"Getting started","pages":[{"title":"Ship your React Native app. Not the boilerplate around it.","description":"Build on a production-ready Expo and React Native foundation with mobile flows, adapters, shared packages, and local tooling","icon":"house","href":""},{"title":"Quickstart","icon":"rocket","href":"/getting-started/quickstart"},{"title":"Development workflows","description":"Run, verify, and troubleshoot the mobile app, Configurator, and documentation site","icon":"terminal","href":"/development"},{"title":"Testing","icon":"flask","href":"/development/testing"}]},{"group":"Architecture","pages":[{"title":"Architecture overview","icon":"blueprint","href":"/architecture/overview"},{"title":"Mobile navigation","icon":"route","href":"/mobile/navigation"},{"title":"Mobile onboarding","icon":"person-walking-arrow-right","href":"/mobile/onboarding"}]}]},{"tab":"Features","pages":[{"title":"Features","href":"/configuration/overview"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/ai-tools/overview"}]},{"tab":"Tips \u0026 Tricks","pages":[{"title":"Tips \u0026 Tricks","href":"/essentials/markdown"}]},{"tab":"Components","pages":[{"title":"Components","href":"/ui/intro"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Quickstart - AMiSi Mobile Starter","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":[],"chunks":[]}