Intry App overview
Expo mobile client for residents — structure and Core integration.
Overview
tools/intry-app is the Expo / React Native application residents use to receive buzzer notifications, approve or deny visitors, and manage notification preferences.
Responsibilities
| Concern | Implementation |
|---|---|
| Auth | Clerk (target) or legacy /registration/* → JWT Bearer |
| Devices | Registers push tokens via /devices/* (Knock delivery) |
| Entry actions | /access/* approve/deny matching telephony flow |
| Deep links | Expo linking for invite / universal links |
| Support chat | Chatwoot widget via Core bootstrap |
Clerk Expo migration: docs/action-plans/intry-app-clerk-expo-migration.md.
Observability & analytics
| Tool | Role |
|---|---|
| EAS Observe | Production startup/render performance (SDK 55, integrated) |
| Sentry | Crashes, errors, session replay on errors (app/_layout.tsx) |
| Vexo / PostHog | Product analytics |
| expo-observe (EAS Observe) | Production perf — AppMetricsRoot + markAppInteractive() in _layout.tsx |
Build & release
- EAS profiles (
eas.json) for dev, preview, and production. - API base URLs must match Core deployment (Railway + TLS).
- Keep bundle identifiers aligned with APNs/FCM certificates for Knock push.
Related docs
Local development
cd tools/intry-app
npm install
npx expo startPoint at dev Core or ngrok tunnel when testing end-to-end voice.
Last verified: 2026-06-21 (commit 293c4a7)