Tech stack
Languages, frameworks, infrastructure, and third-party services used by Intry.
Intry is a TypeScript-first system: the Core API and most tools share Node.js runtimes, with mobile on Expo and several UIs on Next.js.
| Layer | Technology |
|---|
| Runtime | Node.js |
| HTTP | Express 5 |
| ORM | Prisma |
| Database | PostgreSQL |
| Queue / workers | Redis + BullMQ |
| Core deploy | Railway (typical) |
| Use case | Mechanism |
|---|
| Admin dashboard API | WorkOS SSO and/or Unkey API keys |
| Property managers / B2B | Clerk (clerkUserId on User) |
| Residents | JWT + bcrypt (see registration routes) |
| Capability | Provider |
|---|
| Voice / buzzer | Twilio Voice webhooks (/twilio/*) |
| Push (mobile) | FCM (Android) and APNs (iOS) |
| SMS fallbacks | Twilio (where enabled per user flags) |
| Area | Services |
|---|
| Subscriptions | Stripe (webhooks in Core) |
| Product analytics | Mixpanel, PostHog |
| APM / logs | New Relic (Core start script) |
| Surface | Base path | Consumers |
|---|
| Admin | /api/admin/* | Admin SPA, MCP, internal tools |
| Twilio | /twilio/* | Twilio callbacks |
| Access / devices / registration | /access/*, /devices/*, /registration/* | Mobile apps |
| App | Stack | Hosting (typical) |
|---|
| Admin SPA | HTML + Tailwind (CDN) via proxy | Fly.io (intry-admin) |
| Portal | Next.js + Clerk | Vercel / Fly / custom |
| Mobile | Expo / React Native | EAS builds |
| Prop1 | Vite + React + Express | Fly.io (separate DB) |
- Multi-environment admin: proxy sends
X-Admin-Env: DEV, TEST, STAGING, or PROD to route to the correct Core base URL.
- Secrets: Never commit
.env; use platform secrets (Railway, Fly, Vercel) per environment.