Skip to main content
Build a native mobile ordering app using React Native (Expo) and @craveup/storefront-sdk. The SDK is framework-agnostic and works anywhere fetch is available — including React Native.

Prerequisites

  • Node.js 18+ and a package manager
  • Expo CLI (npx expo)
  • A Crave API key from the Dashboard
  • At least one live location in your merchant account

1. Create an Expo project

2. Install the SDK

3. Set environment variables

Create a .env file and install expo-constants to access them:
Expo exposes variables prefixed with EXPO_PUBLIC_ at build time via process.env.

4. Create the storefront client

React Native includes a global fetch implementation, so no polyfill is needed.

5. Display the merchant

6. Create a cart hook

7. Add-to-cart screen

8. Run on a device

Scan the QR code with the Expo Go app on your phone, or press i for the iOS simulator / a for the Android emulator.

API key security on mobile

Mobile apps ship API keys to the device. For production apps, proxy API requests through your own backend so keys never leave your server. The SDK’s baseUrl option lets you point at your proxy instead of api.craveup.com directly.

Next steps

Display Menu

Fetch menus, categories, and products for a location.

Manage Cart

Add, update, and remove items with modifiers.

Fulfillment Methods

Set up delivery, table-side, and room service.

SDK Reference

Full SDK documentation with all available modules.

Slack Community

Ask questions and get help from the Crave team and community.

Discord

Join our Discord server for real-time discussions.

Email Support

Reach out to hello@craveup.com for direct support.