Local topology without port bookkeeping
Run application processes through Portless with stable HTTPS names and automatic Git-worktree isolation.
From stable local URLs to selective pull-request previews and Kubernetes deploys.
tsops sits between application code and cluster infrastructure. It owns the product-level graph—apps, builds, ports, environments, service relationships, previews, and Kubernetes workloads—while leaving cluster and cloud provisioning to dedicated infrastructure tools.
tsops.config.ts
│
├── tsops dev stable local URLs
├── tsops build affected, reusable images
├── tsops plan validated Kubernetes diff
├── tsops up/down isolated preview lifecycle
├── tsops deploy deterministic workloads
└── config.url() runtime service discoveryThat boundary is intentionally narrower than general-purpose infrastructure as code and broader than a manifest generator. The same application identity survives from a developer's worktree to a pull-request namespace and production.
pnpm add -D tsops portless
# Local processes, stable *.localhost routes
pnpm tsops dev
# Production delivery
pnpm tsops plan --namespace production
pnpm tsops build --namespace production --source-key
pnpm tsops deploy --namespace production
# Selective pull-request environment
pnpm tsops up preview --var pr=42 --apps-from-changes
pnpm tsops down preview --var pr=42Start with the getting-started guide, then read what tsops is and the comparison before deciding whether its boundary matches your system.