React Native, Expo 54, and Expo Router implementation for the native ordering app, screen composition, navigation flow, and responsive mobile polish.
Mobile Commerce Case Study
Alla Vostra
Flagship full stack mobile commerce app
Alla Vostra unifies product browsing, multi-rail checkout, delivery validation, and customer confirmations in a cohesive native experience built for real-world release.



Overview
Overview

Alla Vostra turns a boutique grazing-board menu into a native ordering product: customers choose boards, enter delivery and contact details, pay through the best available payment rail, and receive confirmation through backend messaging. In addition, customers can access in-depth info about product offerings, learn about the brand's philosophy, and contact the business owner directly.
App Store release
Official listing- Version
- 1.0
- Released
- Oct 26, 2026
- App binary
- 1.0.4 (4)
- App download
- 47.3 MB
- Requires
- iOS 15.1+
- Category
- Food & Drink





Google Play release
Official listing- Version
- 1.0.4
- Updated
- Sep 17, 2026
- Store bundle
- 85.1 MB
- Play download
- Device-specific
- Requires
- Android 7.0+
- Category
- Food & Drink
Interactive Demo
Interactive Demo

A short autoplay walkthrough will show the app in motion, from browsing products to reviewing checkout.
Scope
Design Principles
Node.js and Vercel serverless commerce routes for payment sheet creation, PayPal orders, Stripe webhooks, contact messages, and server-owned order validation.
Stripe card checkout, Google Pay, Apple Pay, and PayPal redirect/capture flows with platform-specific availability checks.
Postmark-powered order confirmations after verified payment events plus backend-routed contact form messages with safe reply handling.
Android emulator and physical-iPhone QA, EAS development/preview/playTest/production builds, TestFlight validation, EAS Submit, and completed Google Play and App Store releases.
Product
Engineering Challenges
- Situation
- A basic product overlay evolved into a multi-step Products → Cart → Contact → Delivery → Payment → Confirmed journey.
- Task
- Control forward and backward movement, validation gates, empty-cart restrictions, and final confirmation state.
- Action
- Modeled explicit checkout stages and tied navigation availability to cart, form, payment, and confirmation state.
- Resolution
- The complete order journey behaved predictably, including cancellation, backward navigation, and final success handling.
- Situation
- Client-provided prices and totals could not be trusted for production checkout.
- Task
- Ensure the server remained authoritative over products, quantities, tax, and order totals.
- Action
- Validated product identifiers, reconstructed orders from trusted catalog data, rejected malformed payloads, and calculated totals server-side.
- Resolution
- Payment requests were created from verified server calculations instead of manipulable client values.
- Situation
- Stripe cards, Apple Pay, Google Pay, and PayPal required different SDKs, credentials, approvals, and platform flows.
- Task
- Offer multiple payment options through one coherent checkout.
- Action
- Added provider-specific adapters, merchant configuration, browser-session recovery, device capability checks, and appropriate fallbacks.
- Resolution
- The checkout supported multiple payment methods while respecting each platform’s technical and approval requirements.
- Situation
- The Shop used a dense, mostly non-scrolling overlay that fit large devices but clipped controls and content on smaller screens.
- Task
- Preserve the fixed visual concept without making essential actions inaccessible.
- Action
- Introduced device-aware dimensions, proportional spacing, internal overlay scrolling, and small-screen concessions.
- Resolution
- The Shop retained its design language while remaining usable across small and large Android and iOS devices.
- Situation
- Successful payments needed to trigger customer and merchant emails without accepting forged webhooks or sending duplicates.
- Task
- Build a secure, traceable post-payment notification pipeline.
- Action
- Verified Stripe signatures against raw request bodies, handled explicit error states, recorded email metadata, and added idempotency safeguards.
- Resolution
- Valid payment events reliably produced Postmark confirmations while invalid or repeated events were controlled.
- Situation
- Dense overlays, responsive controls, device frames, and platform-specific typography gradually produced alignment and spacing drift.
- Task
- Maintain a balanced, recognizable visual system across screen sizes, platforms, and interaction states.
- Action
- Standardized shared measurements, proportional spacing, paired control geometry, typography treatments, and screenshot-based cross-device comparisons.
- Resolution
- The app preserved consistent hierarchy, alignment, and symmetry while still adapting to each device’s available space.
UX Product Flow
UX Product Flow
Architecture
Architecture and Stack
React Native ordering UI
Validated commerce routes
Stripe, wallets, PayPal
Postmark confirmations
EAS, Google Play, App Store
React Native 0.81, React 19, Expo 54, Expo Router 6, native navigation handling, and bundled app assets.
Vercel serverless routes for health checks, Stripe payment sheets, PayPal order creation/capture, webhooks, and contact messages.
Backend pricing, tax, delivery fee, quantity, contact, delivery, and Florida service-area validation before payment creation.
Stripe PaymentIntents cover cards, Google Pay, and Apple Pay; PayPal uses server-created orders and app deep-link return handling.
Postmark handles confirmations and contact inquiries while EAS Build and Submit support native testing, Google Play packaging, TestFlight validation, and App Store delivery.
The project was implemented as an Expo mobile client backed by serverless commerce routes. The app owns the interaction layer, while the backend owns pricing, delivery rules, payment creation, webhooks, PayPal capture, and Postmark messaging. That split kept secrets out of the app and made checkout behavior easier to test across native build targets.
App
Commerce API
Payments
Messaging
Release / QA
Execution
Build Execution
The app sends order intent, while the backend owns product prices, delivery fee, tax, quantity limits, and Florida-only delivery validation before any payment is created.
Stripe card, Google Pay, Apple Pay, and PayPal each have distinct platform and configuration requirements, so the app validates the selected rail before starting checkout.
Postmark delivery is handled through server routes and payment webhooks, keeping email credentials out of the mobile runtime.
Development builds can disable Apple Pay entitlement requirements, while preview, playTest, TestFlight, and production profiles keep release paths explicit.
Android and iOS layouts, payment readiness, native store screenshots, app versioning, signed binaries, and production behavior were validated through both store-review paths.
Release Delivery
Alla Vostra shipped through both major mobile storefronts. The work included Android and physical-iPhone QA, Google Play AAB production rollout, signed App Store IPA delivery, TestFlight validation, native iOS screenshot correction, EAS Submit, and completed App Review.
Timeline
Responsive Prototype to Mobile Architecture
The project moved from an interface direction into a React Native, Expo 54, and Expo Router structure built for real mobile ordering paths.
Server-Owned Checkout Logic
Backend work established validated order totals, Stripe payment sheets, delivery constraints, webhook confirmation paths, and safe messaging boundaries.
Multi-Payment Expansion
Checkout grew beyond card payments into Google Pay, Apple Pay, and PayPal, with native/runtime checks for each path.
Dual-Store Testing and Release
EAS profiles, Android versioning, Google Play production rollout, TestFlight validation, native iOS screenshot correction, EAS Submit, and App Store review were completed as explicit release paths.
Full stack mobile work
Interested in this kind of build?
This project reflects the kind of work I want to keep doing: polished mobile interfaces, server-owned commerce logic, multi-payment integrations, dual-store delivery, and product decisions that hold up outside of mockups.