Tailfire is the Phoenix Voyages monorepo. It uses pnpm workspaces and Turborepo to run an API-first travel platform: Next.js frontends handle presentation and Supabase auth, while business data and workflow logic flow through the NestJS API.
tailfire/
├── apps/
│ ├── admin/ # Advisor and operations dashboard
│ ├── api/ # NestJS backend API
│ ├── client/ # Traveler portal and shared proposal access
│ └── ota/ # Public discovery, AI concierge, and advisor-led storefront
├── packages/
│ ├── api-client/
│ ├── config/
│ ├── database/
│ ├── shared-types/
│ ├── trip-proposal-ui/
│ └── ui-public/
└── docs/
pnpm install
cp apps/api/.env.example apps/api/.env
cp apps/admin/.env.example apps/admin/.env.local
cp apps/client/.env.example apps/client/.env.local
cp apps/ota/.env.example apps/ota/.env.local
cd apps/api && pnpm db:migrate && cd ../..
pnpm devpnpm dev runs the root predev hook first. Today that hook probes local Redis with redis-cli and may try to start redis-server, so filtered app commands are often easier on machines without local Redis tooling.
| Document | Purpose |
|---|---|
| Docs Index | Canonical doc entry point |
| Architecture | Current app, package, and data-flow model |
| Local Development | Working local setup paths, ports, and caveats |
| Environments | Environment mapping, frontend envs, and CORS behavior |
| Testing | Current scripts, coverage boundaries, and gaps |
| CI/CD | What the tracked GitHub Actions workflows actually do |
| API Deployment | Railway API deployment behavior |
| Repository Review Issues | Open platform and doc-audit findings |
| Surface | Documentation |
|---|---|
| API | apps/api/README.md |
| Admin | apps/admin/README.md |
| Client | apps/client/README.md |
| OTA | apps/ota/README.md |
| Database | packages/database/README.md |
| Shared Types | packages/shared-types/README.md |
| API Client | packages/api-client/README.md |
| UI Public | packages/ui-public/README.md |
| Trip Proposal UI | packages/trip-proposal-ui/README.md |
| Environment | Branch | Deployment Path |
|---|---|---|
| Local | local worktree | pnpm dev or filtered app commands on localhost:3100-3103 |
| Preview | preview |
deploy-preview.yml migrates Preview DB, deploys Railway api-dev, deploys Vercel previews, and aliases admin preview to tf-demo.phoenixvoyages.ca |
| Production | main |
deploy-prod.yml migrates Prod DB, deploys Railway api-prod, and targets api.tailfire.ca, tailfire.phoenixvoyages.ca, ota.phoenixvoyages.ca, and client.phoenixvoyages.ca |
Preview is not a fixed mirror of the old *-dev.phoenixvoyages.ca setup. The tracked workflow waits on a generated Railway URL for the API and uses Vercel preview deployments, with only the admin alias pinned in the workflow.
pnpm dev
pnpm build
pnpm lint
pnpm typecheck
pnpm test