The Studio

Describe an app, watch it run on a phone in your browser, then build a signed iOS and Android release from the same screen.

What the Studio is

The Studio is where an app is written. You describe what it should do; Claude writes a real Expo (React Native) project — TypeScript, file-based routing, the same code you would write by hand — and the result runs in a phone frame beside the conversation within seconds.

Each app gets its own look from the start: a palette built from one accent colour — surfaces, text, tints and dark mode, all contrast-checked — and its own character, a mascot drawn for that app. Change the accent in Settings and the whole palette is rebuilt from it.

Every assistant turn that changes files is a version. Versions are numbered, summarised in a sentence, and restorable, so trying an idea costs nothing: if the app was better two turns ago, roll back to it.

The same screen carries the rest of the app's life, as tabs. Chat is the conversation that writes it. Code is the file tree, editable and saveable. Test is how you try it — in the browser, and on the phone in your pocket. Checklist is the list of what has to be true, in the order it happens. Onboarding is where the onboarding funnel is designed — theme and screens — and where two to four versions of it are tested against each other. App Store is the pictures the store shows and the button that sends it. Settings holds the app's identity, its colour and the App Store record it ships to.

What it costs

  • The preview is free. Snack runs in your browser and needs no account, and a browser run is a free GitHub job.
  • EAS Build's free plan covers 15 iOS and 15 Android builds a month. Builds queue behind paying customers on the free tier, so a build can wait before it starts.
  • Apple: $99/year for the Developer Program. Google: $25 once.
  • Build artifacts expire on Expo's servers after about 30 days. Download anything you want to keep.

Limits worth knowing before you start

  • An app the Studio generates uses remote https images; local images and fonts arrive with an imported project, not from a prompt.
  • Only packages on the allowed list can be imported, and the list is chosen so that everything in it runs in both the preview and a native build.
  • One generation at a time per app. A second prompt while the first is still writing is refused rather than queued, because two writers on one file set is how a project breaks.
  • The live phone link ends when the Studio tab closes. Save a permanent link, or make a build, for anything you want to hand to someone else.
  • A bundle id cannot be changed once an app is on a store. Set it deliberately the first time — or, for an imported project, in its own app.json.