ProductClientsDevice Studio
Native Companion Expo Boundary
Status: Proposed / future.
Decision Record
Status: Proposed / future.
Decision: Use Expo for a native companion app only when mobile-native capabilities are validated by Mobile Launchpad PWA usage and Studio View JSON renderer maturity.
This is not an implementation approval. Do not initialize Expo, React Native, or a native app project from this document.
Why Expo Fits A Future Companion
Expo can be a practical future path for a solo builder or small team because it offers:
- fast iteration across iOS and Android;
- managed native capabilities before deeper native code is justified;
- OTA-oriented iteration for app-shell code within platform policy limits;
- mature patterns for camera, media, push, sharing, files, deep links, and permissions;
- a smoother path from prototype to store builds than a fully custom native setup.
Native Capabilities That May Justify Expo
| Capability | Device Studio use case |
|---|---|
| Camera | Capture receipts, whiteboards, product states, places, or visual notes. |
| Photo library | Attach images to Studios, Sources, or AI context with explicit consent. |
| Push notifications | Approval requests, AI run completion, connector alerts, and digest prompts. |
| Share extension | Save links, text, images, files, and screenshots into a Studio. |
| Files | Upload or preview user-selected documents with clear retention boundaries. |
| Contacts | Optional relationship context only after strict permission and privacy review. |
| Background upload | Large media capture flows after user intent is clear. |
| Deep links | Open Studio, View, approval, capture, or AI routes from notifications and links. |
| Biometric auth | Confirm high-impact approvals or sensitive local access. |
Boundary
The native app should be a companion shell around Device Studio capabilities. It should not become the full Prox OS runtime.
Appropriate native responsibilities:
- host Mobile Launchpad;
- render Studio View JSON with trusted blocks;
- provide native capture and share affordances;
- receive notifications and deep links;
- mediate permissions and high-impact actions;
- hand off complex editing to Web Studio.
Inappropriate native responsibilities:
- execute arbitrary remote JavaScript or React bundles;
- host a general third-party app runtime;
- expose native APIs directly to user-generated experiences;
- replace the Web Studio editing surface;
- launch an unreviewed app marketplace;
- bypass app-store payment or content policies;
- ship before privacy policy, permission copy, and store review posture exist.
Launch Triggers
Start an Expo exploration only when all of these are true:
- Mobile Launchpad PWA has validated high-frequency use.
- Capture, notifications, or share extension are clear product needs.
- Permission descriptions and privacy policy are ready for mobile review.
- A store review plan exists for dynamic views, UGC, payments, and native API boundaries.
- Studio View JSON renderer is stable enough to share with native.
- High-impact mobile actions have audit, confirmation, and rollback posture.
Consequences
Positive consequences:
- Prox OS can add mobile-native capture and notification loops without moving the whole platform away from Web Studio.
- The same Studio View JSON contract can serve PWA and native companion surfaces.
- Native work stays tied to validated needs.
Trade-offs:
- Native release cycles and store review create operational overhead.
- Permission, privacy, and content policy obligations become more visible.
- The team must maintain a mobile renderer in addition to the web renderer.
- Dynamic view governance must be stricter on native than on desktop web.
Non-goals
- No Expo project now.
- No React Native app now.
- No native marketplace now.
- No native mini app runtime now.
- No payment, billing, or store-submission implementation from this document.