Intry

Overview

Monorepo structure, main apps, and how traffic flows through Intry.

Overview

The intry-mvp repository is the primary backend and tooling workspace for Intry. The Core API is an Express 5 + TypeScript service backed by PostgreSQL (Prisma). Background jobs run via pg-boss on the same database. Operational dashboards and proxies run on Fly.io; the Core API is deployed to Railway.

Request flow (buzzer → resident)

  1. A visitor triggers the intercom; the carrier (Twilio or Telnyx) posts to /twilio/* or /telnyx/* depending on the virtual number's provider.
  2. Core resolves the unit and virtual number (e164), loads residents, and notifies devices through Knock (push, SMS, or voice fallback depending on configuration).
  3. The resident approves or denies from the app, portal, or phone keypad.
  4. Core signals the telephony provider (DTMF / TeXML) to release the door; Call and Approval rows record the outcome.

See Telephony for provider abstraction and migration status.

Top-level layout

intry-mvp/
├── prisma/              # Database schema & migrations
├── src/
│   ├── server.ts        # HTTP entry
│   ├── workers.ts       # pg-boss background jobs
│   ├── routes/          # HTTP routes (admin, twilio/telnyx, access, v1, …)
│   └── services/        # Domain logic (telephony, knock, billing, …)
├── docs/                # Markdown guides, OpenAPI, runbooks
└── tools/               # Adjacent deployables (portal, app, admin, docs, …)

Tools you will touch most often

ToolRole
intry-adminExpress proxy + static SPA; Clerk gateway; hits Core /api/admin/* with X-Admin-Env.
intry-portalResident-facing Next.js; Clerk auth; talks to Core /api/v1/*.
intry-appExpo client; device registration and entry approvals.
intry-mcpMCP bridge for operators and agents (Unkey / admin API).
intry-opsInternal ops console (Tailscale-gated).
intry-docs / intry-supportDeveloper docs and end-user help (Fumadocs + Next.js).
intry-core-telnyxRailway variant with TELEPHONY_PROVIDER=telnyx for cutover testing.

Last verified: 2026-06-21 (commit 293c4a7)

On this page