Add Expo Orbit landing page and deeplink handler#355
Draft
gabrieldonadel wants to merge 8 commits into
Draft
Conversation
Static website that handles deeplink URLs (download, update, go, snack, auth) by attempting to open Expo Orbit via the local server or custom URL scheme, with a fallback landing page for users who don't have Orbit installed. https://claude.ai/code/session_019MdLSKWvRCTJxGPeiBKghQ
Replace the static HTML site with a proper React app using Vite, React Router, and CSS Modules. Routes: / (landing page), /:action (deeplink handler for download, update, go, snack, auth). Includes EAS config for deployment. https://claude.ai/code/session_019MdLSKWvRCTJxGPeiBKghQ
- Add associated domains entitlement (applinks:orbit.expo.dev) to both debug and release entitlements files - Add application(_:continue:restorationHandler:) to AppDelegate to handle Universal Links by posting to RCTOpenURLNotification - Serve apple-app-site-association from website with correct AASA config for team C8D8QTF339 and bundle ID dev.expo.orbit - Add Vite plugin to set correct Content-Type for AASA in dev server - Add tests verifying https://orbit.expo.dev/* URLs parse correctly https://claude.ai/code/session_019MdLSKWvRCTJxGPeiBKghQ
Add applinks:expo-orbit.expo.app to associated domains entitlements alongside orbit.expo.dev. Add tests for the new domain. https://claude.ai/code/session_019MdLSKWvRCTJxGPeiBKghQ
- Fix LocalServer /orbit/open to extract pathname from full URLs instead of naive string replacement, so https://orbit.expo.dev/download?url=... becomes expo-orbit:///download?url=... (not expo-orbit://orbit.expo.dev/...) - Fix website openViaScheme to use window.location.href directly instead of unreliable hidden iframe approach - Fix website tryLocalServer to send a proper full URL to the local server https://claude.ai/code/session_019MdLSKWvRCTJxGPeiBKghQ
Add ?mode=developer variants of the associated domains entitlements so Universal Links work when running from Xcode without Apple's CDN having cached the AASA file. https://claude.ai/code/session_019MdLSKWvRCTJxGPeiBKghQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a new website application for Expo Orbit that serves as both a landing page and a deeplink handler for the desktop application.
Key Changes
index.htmland404.html): Created a responsive, dark-themed website showcasing Expo Orbit features with download links for macOS, Windows, and Linux/auth,/download,/update,/go, and/snackexpo-orbit://)vercel.jsonto rewrite all routes toindex.htmlfor SPA routing supportpackage.jsonwith basic scripts for the website appImplementation Details
https://claude.ai/code/session_019MdLSKWvRCTJxGPeiBKghQ