Skip to content
Skip to content
Goodspeed

Connect Vercel to your Goodspeed app

Web export of the React Native app deployed to Vercel, giving every generated app a hosted web counterpart alongside iOS and Android. Goodspeed wires Vercel into every app that needs it at generation time, so you start with a working integration, not a blank config and a documentation tab.

WHAT GETS WIRED IN

Built into every Vercel build

Every app Goodspeed generates with Vercel includes these wired integrations from the first build. No manual setup required.

ItemDescriptionStrength
Platform.OS guards and .web.ts file extensions separate web-safe code paths from native-only modules throughout the codebasePlatform.OS guards and .web.ts file extensions separate web-safe code paths from native-only modules throughout the codebase01
WebStorageAdapter used in lib/supabase.ts on web instead of ExpoSecureStore so auth sessions persist in the browserWebStorageAdapter used in lib/supabase.ts on web instead of ExpoSecureStore so auth sessions persist in the browser02
EXPO_PUBLIC_* environment variables exposed to the Vercel build via the project dashboard or CLIEXPO_PUBLIC_* environment variables exposed to the Vercel build via the project dashboard or CLI03
next/image-compatible export config in app.config.js enables the Expo web export pipeline for Vercel deploymentnext/image-compatible export config in app.config.js enables the Expo web export pipeline for Vercel deployment04
Web-safe conditional imports prevent native modules (Camera, SecureStore, Notifications) from crashing the browser bundleWeb-safe conditional imports prevent native modules (Camera, SecureStore, Notifications) from crashing the browser bundle05

Source: gas-template repository · hosting/edge

REAL GENERATED CODE

A snippet from a Vercel integration the pipeline ships

This pattern comes directly from the gas-template codebase. The studio generates Vercel integration code like this for every app that includes it, not a placeholder you have to fill in yourself.

  1. Web storage adapter

    // lib/supabase.ts: web storage adapter
    const WebStorageAdapter = {
      getItem: (key: string) =>
        Promise.resolve(
          typeof window !== 'undefined'
            ? window.localStorage.getItem(key)
            : null
        ),
      setItem: (key: string, value: string) => {
        if (typeof window !== 'undefined')
          window.localStorage.setItem(key, value);
        return Promise.resolve();
      },
      removeItem: (key: string) => {
        if (typeof window !== 'undefined')
          window.localStorage.removeItem(key);
        return Promise.resolve();
      },
    };
GDaily Allergens

Today's log

Gluten
Tree nuts
Shellfish
Dairy
HomeScanLogProfile

START WITH VERCEL

Your Vercel integration, generated