May 24, 2026
Share extension scaffold for iOS + Android (EAS Build only)
featuretitle: "Share extension scaffold for iOS + Android (EAS Build only)" date: "2026-05-24" tag: "feature"
The Inksong mobile app can now appear in the iOS share sheet and respond to Android share intents — "Humanize this" lands in /humanize (for text and URL shares) or /upload (for file shares) with the payload pre-filled.
What landed
expo-share-intentconfig plugin inmobile/app.jsonwith iOS activation rules for text + URLs + a single file, plus an Android intent filter fortext/*.mobile/src/lib/shareIntent.ts— a React hook that picks up incoming share payloads and routes them. Lazy-requires the native module so it gracefully no-ops when absent.- Root layout mounts
useShareIntentRouter()so the subscription is always live. /humanizeand/uploadscreens accept the routed payload viauseLocalSearchParamsand pre-fill on mount.
Important caveat
This only runs in EAS Build, not Expo Go. Expo Go is a single fixed app bundle that can’t add an iOS share-extension target or register Android intent filters at runtime. To test the actual share-sheet behavior you need a development build:
eas build --profile development --platform ios
eas build --profile development --platform androidIn Expo Go the share-intent code is a no-op and the rest of the app still works.
What this closes
This was the last item on the originally-decomposed mobile roadmap. We’ve shipped:
- 5a — scaffold + auth + 3 screens
- 5b — humanize-from-paste flow
- 5c — in-app document upload
- 5c.2 — system share extension (this one)
- 5d — voice profile CRUD
- 5e — push notifications
- 5f — workspaces + webhooks read UIs
Source ships now. First App Store / Play Store submission is still a maintainer task (separate Apple Developer + Google Play accounts) and would happen via EAS Build / EAS Submit.