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) and Redis (BullMQ workers). Operational dashboards and proxies often run on Fly.io; the Core API is commonly deployed to Railway.

Request flow (buzzer → resident)

  1. A visitor triggers the intercom / Twilio inbound webhook.
  2. Core resolves the unit and virtual number (e164), loads residents, and notifies devices (push, SMS, or voice fallback depending on configuration).
  3. The resident approves or denies from the app (or fallback channel).
  4. Core signals Twilio (e.g. DTMF) to release the door; Call and Approval rows record the outcome.

Top-level layout

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

Tools you will touch most often

ToolRole
intry-adminExpress proxy + static SPA; hits Core /api/admin/* with X-Admin-Env.
intry-portalResident-facing Next.js; Clerk auth; talks to Core APIs.
intry-appExpo client; device registration and entry approvals.
intry-mcpMCP bridge for operators and agents (Unkey / admin API).
intry-docs / intry-supportThis documentation stack (Fumadocs + Next.js).

On this page