Skip to content
Skip to content
Goodspeed

Build apps with Expo

Expo manages the build pipeline, native module registry, and over-the-air update channel for every Goodspeed app. Goodspeed generates Expo as a standard part of every app, so the output is a working codebase from day one, not a scaffold you have to finish yourself.

WHAT GETS GENERATED

Built into every Expo build

Every app Goodspeed generates with Expo includes these production-ready patterns, wired together from the first build.

ItemDescriptionStrength
app.config.js bridging gas.config.tsA generated app.config.js reads from gas.config.ts and writes the app name, bundle ID, scheme, splash, and icon into the Expo config object at build time.Configuration
eas.json with dev/staging/production profilesThree EAS Build profiles: development (development client), staging (internal distribution), and production (store submit).Build
Expo SDK packages throughout package.jsonexpo-notifications, expo-secure-store, expo-localization, expo-device, expo-image-picker, and expo-camera are version-locked to the SDK.Dependencies
EAS Update channel wiredgasConfig.app.updateBranch resolves at runtime from EXPO_PUBLIC_RELEASE_CHANNEL env var, controlling which OTA channel the app subscribes to.Deploy
MinVersionGate componentA MinVersionGate screen blocks users on stale runtimes and shows an update prompt, using gasConfig.app.minRuntimeVersion and gasConfig.app.appStoreUrl.Reliability
Expo Go deep-link schemegasConfig.app.scheme registers the custom URL scheme used for OAuth redirect URIs, deep links from email, and universal link fallbacks.Navigation

Source: gas-template repository · Development Platform

REAL GENERATED CODE

A snippet from a Expo app the studio shipped

This pattern comes directly from the gas-template codebase, the foundation every Goodspeed app is generated on. The studio generates Expo code like this for every app in the pipeline, not just a hello-world scaffold.

  1. Runtime channel

    // gas.config.ts: OTA update branch from env
    app: {
      slug: 'my-app',
      version: '1.0.0',
      scheme: 'my-app',
      minRuntimeVersion: '1.0.0',
      updateBranch:
        (process.env.EXPO_PUBLIC_RELEASE_CHANNEL ?? 'production')
        as 'preview' | 'staging' | 'production',
    },
GDaily Allergens

Today's log

Gluten
Tree nuts
Shellfish
Dairy
HomeScanLogProfile

START WITH EXPO

Your Expo app, generated