Food ordering app
A complete Expo Router app for a donut shop: onboarding once, sign in, a rolling menu, coupons, bag with checkout, profile and settings with a working light / dark switch.
ProExpo SDK 55+Expo Router13 files
9:41
What’s inside
- Flow
- Onboarding shows once, then sign in, then the tabs. Signing out returns to sign in. The session is saved on the device (AsyncStorage) and guarded with Expo Router’s Stack.Protected.
- Tabs
- Menu (rolling donut shelf), Offers (coupons that unlock with the bag total), Bag (checkout) and Profile. The kit’s BottomNav is the tab bar, with the bag count as a badge.
- Bag
- Donuts added on the Menu land in the bag; a coupon picked on Offers is applied at checkout. Pay is a stand-in — wire it to your payment sheet.
- Settings
- Pushed from Profile. Appearance (System / Light / Dark) re-themes every kit component instantly.
- Your backend
- Auth handlers in app/sign-in.tsx and payment in app/(tabs)/bag.tsx are stand-ins that wait and succeed. Menu, coupons and the user live in lib/food-app/data.tsx.
Installation
A whole app: start from a new Expo Router project (npx create-expo-app@latest) and run it in the root. It writes app/_layout.tsx, the screens and every block they use, replacing the starter screens, and installs the dependencies. Then npx expo start — it runs in Expo Go.

