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.

React NativeExpo 54Stripe + PayPalServerless APIGoogle PlayApp StoreEAS BuildsPostmarkGoogle PayApple Pay
Alla Vostra startup screen
Alla Vostra confirmation screen
Alla Vostra products screen
Full-StackUI/UXF-EndB-EndRelease
PlatformsAndiOSWeb
399Quality GitHub Commits
71Real-Time Project Worklogs
2Storefront Releases
1Website

Overview

Overview

Alla Vostra Play Store feature graphic
Play Store 1

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
Alla Vostra App Store home screen
Alla Vostra App Store home screen
Alla Vostra App Store Piccola product overlay
Alla Vostra App Store Piccola product overlay
Alla Vostra App Store product board screen
Alla Vostra App Store product board screen
Alla Vostra App Store order confirmation screen
Alla Vostra App Store order confirmation screen
Alla Vostra App Store about screen
Alla Vostra App Store about screen

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

Alla Vostra app demo placeholder device frame

A short autoplay walkthrough will show the app in motion, from browsing products to reviewing checkout.

Scope

Design Principles

Mobile Frontend

React Native, Expo 54, and Expo Router implementation for the native ordering app, screen composition, navigation flow, and responsive mobile polish.

Backend / Server Logic

Node.js and Vercel serverless commerce routes for payment sheet creation, PayPal orders, Stripe webhooks, contact messages, and server-owned order validation.

Payments

Stripe card checkout, Google Pay, Apple Pay, and PayPal redirect/capture flows with platform-specific availability checks.

Messaging

Postmark-powered order confirmations after verified payment events plus backend-routed contact form messages with safe reply handling.

QA and Release

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

Cart and Checkout State Machine
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.
Secure Server-Authoritative Pricing
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.
Multi-Provider Payment Integration
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.
Fixed Shop Interface Across Device Sizes
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.
Reliable Webhook and Email Processing
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.
Visual Consistency and Symmetry
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

Mobile App

React Native ordering UI

Vercel API

Validated commerce routes

Payment Rails

Stripe, wallets, PayPal

Messaging

Postmark confirmations

Store Releases

EAS, Google Play, App Store

01Native App Shell

React Native 0.81, React 19, Expo 54, Expo Router 6, native navigation handling, and bundled app assets.

02Commerce Backend

Vercel serverless routes for health checks, Stripe payment sheets, PayPal order creation/capture, webhooks, and contact messages.

03Order Authority

Backend pricing, tax, delivery fee, quantity, contact, delivery, and Florida service-area validation before payment creation.

04Payment Orchestration

Stripe PaymentIntents cover cards, Google Pay, and Apple Pay; PayPal uses server-created orders and app deep-link return handling.

05Messaging and Release

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

React Native 0.81.5React 19.1Expo 54Expo Router 6

Commerce API

Node.jsVercel RoutesServer TotalsStripe Webhooks

Payments

Stripe RN 0.50.3PaymentIntentsWallet PayPayPal REST

Messaging

PostmarkOrder EmailsContact Routing

Release / QA

EAS Build + SubmitAndroid StudioGoogle Play AABApp Store IPATestFlightApp Store Connect

Execution

Build Execution

Server-Owned Commerce Rules

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.

Multi-Rail Payment Boundaries

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.

Backend-Only Messaging Secrets

Postmark delivery is handled through server routes and payment webhooks, keeping email credentials out of the mobile runtime.

Native Build Separation

Development builds can disable Apple Pay entitlement requirements, while preview, playTest, TestFlight, and production profiles keep release paths explicit.

Release-Oriented QA

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.

Android v1.0.4App Store v1.0Multi-Size Android QAPhysical-iPhone QAEAS Build ProfilesEAS SubmitTestFlight ValidationStripe Live + WebhooksNative Wallet ChecksPayPal Sandbox/LivePostmark MessagingPlay Store AABApp Store IPA

Timeline

01

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.

02

Server-Owned Checkout Logic

Backend work established validated order totals, Stripe payment sheets, delivery constraints, webhook confirmation paths, and safe messaging boundaries.

03

Multi-Payment Expansion

Checkout grew beyond card payments into Google Pay, Apple Pay, and PayPal, with native/runtime checks for each path.

04

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.