Shared product surface
Expo Router keeps core workflows consistent across web and native clients while preserving platform-specific scanning features.
Cross-platform commerce
An iOS, Android, and web rental platform for inventory, payments, agreements, staff operations, and time-sensitive waitlists.

The product
The application manages the complete rental lifecycle: onboarding, role-aware access, inventory discovery, checkout readiness, pickup approval, recurring billing, returns, refunds, and legal agreement artifacts. The same Expo product surface runs across native and web clients.
Architecture
A public, high-level view of the system. Credentials, private data, deployment identifiers, and source code remain protected.
One Expo Router product for web, iOS, and Android
→Self-hosted web failover plus Workers business rules and scheduled jobs
→Better Auth, organization roles, D1 records, and R2 documents
→Stripe, Postmark email, and push notifications
→CI checks, migrations, deployments, and mobile releases
Engineering decisions
Expo Router keeps core workflows consistent across web and native clients while preserving platform-specific scanning features.
Pickup approval, active rental, pending return, and verified return states make billing and inventory behavior auditable.
Signed agreements produce retained records and immutable R2 artifacts with integrity checks instead of relying on transient UI state.