Skip to content

Goodspeed is in closed beta. Enter your email and we check your invite on the spot: invited accounts start free today, and everyone else joins the waitlist in one click. Get started

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
Web and native split cleanlyPlatform guards and .web.ts file extensions keep web-safe code apart from native-only modules across the codebase.Setup
Browser session storageOn web the Supabase client keeps its session in the browser rather than the device keychain, so a sign-in survives a reload.Auth
Environment variables at buildEXPO_PUBLIC_* values reach the Vercel build through the project dashboard or the command line.Setup
Web export configuredapp.config.js carries the export configuration Vercel needs to serve the Expo web build.Delivery
Native modules never load in a browserConditional imports keep the camera, keychain and notification modules out of the web bundle, where they would crash it.Reliability

Source: the Goodspeed app foundation · hosting/edge

REAL GENERATED CODE

A snippet from a Vercel integration the pipeline ships

This pattern is lifted from the engineered plumbing that ships inside every Goodspeed app. 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