Exporting to GitHub
At any point you can push your project's code to your own GitHub account. Once it's there, the code is yours: every file, every library, every decision the agent made. You can keep using Appsanic on top of it, edit it yourself, or hand it to a developer. Your call.
(If you don't know what GitHub is: it's a website where teams store and collaborate on code. Think Google Docs, but for code. Free for personal projects.)
The one-time setup
- In your Appsanic project, click Export to GitHub (top-right).
- The first time, click Connect GitHub. You'll be sent to GitHub's OAuth consent screen.
- Authorize Appsanic. We request the repo scope so we can create and push to the repository you choose - public or private (you pick when you create the repo).
- Name the repo, choose public or private, and click Create & push.
Appsanic creates the repo and pushes your project code to it in one commit. You get a link to the new repo on GitHub.
What ends up in the repo
Your repo contains the complete project. A few highlights:
- The screens of your app (one file per screen).
- The shared pieces - components, Zustand stores, and the
theme.tsdesign tokens. - The build settings (
app.json): app name, icon, splash, permissions, version. - The full dependency list (
package.json). - Standard project files added on export so it's a clean checkout:
babel.config.js,.gitignore, and aREADME.mdwith run instructions.
There are no secret API keys or private Storage bearer tokens in the repo. The only keys in the code are public-by-design values (your Supabase anon key, a Stripe publishable key - the kind built to be bundled into apps). Secret keys stay encrypted in Appsanic. Referenced account and brand assets are copied into assets/appsanic/ during the push, so the repository does not depend on an Appsanic session.
Keeping the repo in sync
After the initial export, day-to-day push and pull happens from the GitHub panel in the build header. See The GitHub Panel for the panel's full controls.
Every time you hit Push in the panel, Appsanic snapshots your current project as a single new commit on the repo's default branch - new and changed files are written, and files you deleted in Appsanic are removed from the repo. Pull does the reverse: it reads the repo's latest text files back into your project, replacing the working copy.
Working on the code yourself
After you export, you can clone the repo locally:
git clone https://github.com/you/yourapp.git
cd yourapp
npm install
npx expo startIt runs as-is: the publishable keys the app needs are already embedded in the code (the kind designed to be bundled into apps), so there's no .env to set up. Secret keys are never in the repo - they stay encrypted in Appsanic and your app never needs them.
You can now edit any file. Common edits:
- Tweak a React Native component in
components/. - Add a custom Zustand store in
stores/. - Adjust design tokens in
theme.ts. - Change the app icon and update
app.json.
When you're done, commit and push, then open GitHub → Pull in Appsanic to bring your edits back in. Push and pull each replace a whole snapshot, so avoid editing the same file in both places at once. See Editing Exported Code for the conventions.
Handing the repo to a developer
A clean repo from Appsanic is straightforward to pick up:
- Add the developer as a collaborator on GitHub.
- They clone,
npm install, andnpx expo start. - They inherit the same codebase Appsanic built, in React Native + TypeScript + Expo + Supabase (or your chosen stack).
Most senior engineers can orient themselves in a weekend.
Privacy
By default, the repo is created as private. Flip the toggle in the create form if you want it public - but read the asset-link note above first if your app uses uploaded assets.
If you made a repo public by mistake, you can switch its visibility in GitHub's repo settings.
Revoking access
To revoke Appsanic's GitHub access:
- In Appsanic, open the GitHub panel in the build header and click Disconnect at the bottom.
- Or go directly to GitHub > Settings > Applications > Authorized OAuth Apps, find Appsanic, and click Revoke.
After revocation, existing exports stay in your GitHub account. We can't touch them. New exports won't work until you reconnect.
Next
With the code in your hands, you can publish to the App Store. Read Publishing to the App Store.
