Skip to content

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.

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 create to set up your GitHub repos
  • Runs npm install to install your mobile app’s dependencies
  • Runs supabase start to spin up a local database
  • Runs eas build to compile a dev build of your app
  • Runs gcloud run deploy to 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.

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.

Everything that matters to your app belongs to you:

WhatLives inOwned by
Your mobile and API codeYour GitHub accountYou
Your app’s database and authYour Supabase projectYou
Your deployed APIYour Google Cloud projectYou
Your mobile buildsYour Expo / EAS accountYou
Your secretsYour Google Cloud Secret ManagerYou
Your users’ dataYour Supabase databaseYou

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.

Once setup is done, a typical day looks like this:

  1. Open VS Code in your project folder.
  2. Open the dashboard at app.mosayic.io and go to the Preview screen.
  3. Click “Start dev server”. Your local API and Expo dev server come up.
  4. Scan the QR code with your phone. Your dev build connects to the dev server and your app loads.
  5. Edit code in VS Code (or with Claude Code, Cursor, or your AI assistant of choice). Your phone hot-reloads as you save.
  6. 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.

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.

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.