Core concepts
Workspaces, projects, deployment environments, services, deployments, and how monorepo stacks fit together on Bytstack.
Workspaces
A workspace is your team boundary: members, billing plan, and GitHub App connections. Switch workspaces from the dashboard header. Roles control who can deploy, manage billing, or read-only view resources.
It is not an environment-variable container and not a deployment stage. Env keys live on projects, env groups, and services — see Variables. Named stages are deployment environments.
Projects
A project is a stack: related services and (optionally) managed databases that ship together across one or more deployment environments. Shared Variables and env groups apply across those services within each environment. Most teams map one GitHub repository (including a monorepo) → one project.
Deployment environments
An environment is a stage under a project (testing → staging → production). Every project has production (protected by default). Extra persistent stages are created with Duplicate; Promote copies a soaked image into another stage. Free plans are production-only; Starter/Pro allow more — see Deployment environments and Pricing.
Services
A service is a deployable unit in one environment with a type:
| Type | Use for | Public URL |
|---|---|---|
| Web | APIs, SSR (Next.js, Remix), Node servers | Yes |
| Static | SPAs (Vite, CRA, etc.) | Yes |
| Worker | Background jobs, queue consumers | No |
| Cron | Scheduled tasks | No |
Rule of thumb: client-side SPA with npm run build → Static. Long-running Node HTTP process → Web.
Sibling services in another environment share a logical name so you can jump Staging ↔ Production from the service header.
Monorepos
One repo can become many services in one project. Analyze detects packages; you select which to create. Each service has its own rootDir, path filters, and build mode. See Monorepos.
Deployments
Each deploy is an immutable attempt: clone → build → publish → release. You can roll back to a previous live version without rebuilding. Preview deployments can be created for pull requests. Path filters skip services whose globs did not match the push. Git push routes to the environment whose services track that branch with auto-deploy.
Domains & edge
Services get a platform hostname by default (patterns differ per environment). Custom domains attach with DNS verification and automatic TLS, bound per environment. Traffic swaps to new web deployments with zero downtime.
Data
Managed PostgreSQL attaches on a private network per environment. Connection strings are injected as Variables; external TLS access is optional and allowlisted. Compose Postgres in a monorepo can become a managed database offer — we do not run Compose itself.
Hierarchy
Workspace (team + billing) → Project (stack) → Environments (stages) → Services + Databases. Members and billing hang off the workspace; domains and Variables hang off the project (overlay per environment).