How Mosayic Works
Mosayic is a guided workshop. You point it at an empty folder, follow the in-app guide, and end up with a real React Native app and a real Python backend — both yours, both in your own GitHub repos, both ready to ship.
What Mosayic does for you
Section titled “What Mosayic does for you”When you click a button in the dashboard, it doesn’t run your app or host your data. Instead, it does the thing you’d otherwise have to do yourself in a terminal:
- Runs
gh repo createto set up your GitHub repos - Runs
npm installto install your mobile app’s dependencies - Runs
supabase startto spin up a local database - Runs
eas buildto compile a dev build of your app - Runs
gcloud run deployto push your API to production
Every command runs on your machine, in your project folder. You can watch it happen in your VS Code terminal. Nothing is hidden.
What you end up with
Section titled “What you end up with”After you finish the setup guide, your project folder looks like this:
Directorymy-app/
Directorymobile/ React Native app (your code, your GitHub repo)
Directoryapp/
- …
Directorycomponents/
- …
- package.json
- app.json
Directoryapi/ FastAPI backend (your code, your GitHub repo)
Directoryapp/
- …
Directorysupabase/
- …
- pyproject.toml
Two clean codebases, written in standard React Native + TypeScript and standard Python — nothing Mosayic-specific in either of them. If you opened these folders in VS Code without ever having heard of Mosayic, you’d find a perfectly normal Expo project and a perfectly normal FastAPI project.
What’s yours
Section titled “What’s yours”Everything that matters to your app belongs to you:
| What | Lives in | Owned by |
|---|---|---|
| Your mobile and API code | Your GitHub account | You |
| Your app’s database and auth | Your Supabase project | You |
| Your deployed API | Your Google Cloud project | You |
| Your mobile builds | Your Expo / EAS account | You |
| Your secrets | Your Google Cloud Secret Manager | You |
| Your users’ data | Your Supabase database | You |
If you stopped using Mosayic tomorrow, none of this would change. Your app would keep running, your users would keep using it, your code would keep deploying. Mosayic helps you set things up; it doesn’t sit underneath them.
The day-to-day workflow
Section titled “The day-to-day workflow”Once setup is done, a typical day looks like this:
- Open VS Code in your project folder.
- Open the dashboard at app.mosayic.io and go to the Preview screen.
- Click “Start dev server”. Your local API and Expo dev server come up.
- Scan the QR code with your phone. Your dev build connects to the dev server and your app loads.
- Edit code in VS Code (or with Claude Code, Cursor, or your AI assistant of choice). Your phone hot-reloads as you save.
- Commit and push when something works — to your GitHub, like any other project.
When you’re ready to ship a new version, the Production Release screen handles the version bump, the deploy, and the GitHub releases in one click.
What the dashboard is actually for
Section titled “What the dashboard is actually for”You’ll spend most of your coding time in VS Code, not in the dashboard. The dashboard is for the in-between bits — the things that aren’t writing code:
- The Setup Guide, the first time you set up
- The Blueprint, when you want to add a new feature (push notifications, payments, etc.) and want a curated walkthrough
- The Preview screen, to start your local dev servers and get the QR code
- Service Connections, when you need to re-link GitHub or Google Cloud
- Secrets, when you add a new API key
- Production Release, when you cut a new version
You don’t have to use the dashboard for any of these — you could run every underlying command yourself. The dashboard is the easy mode.
What about the VS Code extension?
Section titled “What about the VS Code extension?”The dashboard can’t run things on your machine through your browser — browsers can’t open terminals. So Mosayic also gives you a small VS Code extension that the dashboard talks to. When you click “Start dev server” in your browser, the extension is what actually runs the command in your terminal.
You install the extension once during setup. After that, you don’t really interact with it directly — it sits in your status bar showing whether you’re connected. See the extension docs if you want to know more.