Collaborative Serverless Deployment with Laravel Vapor Teams

Overview of Teams in Vapor

provides a robust team management system that acts as a logical partition for your serverless infrastructure. By default, every user receives a personal team, but creating dedicated teams is vital for separating client work from internal side projects. This organizational structure ensures that sensitive resources, like your personal blog, remain isolated from the eyes of company employees or contractors.

Prerequisites

To follow this guide, you need a basic understanding of

and the
AWS
console. You should have the Vapor CLI installed globally via Composer and a registered account on the Vapor dashboard.

Key Libraries & Tools

  • Vapor CLI: The primary command-line interface for interacting with the Vapor platform.
  • AWS IAM: Credentials used to link specific teams to your cloud infrastructure.
  • Laravel Framework: The core environment where your project code resides.

CLI Team Management Walkthrough

Before initializing a project, you must ensure your terminal is pointed at the correct team context.

# Check your current active team
vapor team:current

# List all teams you belong to
vapor team:list

# Switch to a different team context
vapor team:switch

Once you switch to your company team using vapor team:switch, you can safely run vapor init. This attaches the current project directory to the selected team's billing and AWS accounts rather than your personal ones.

Collaborator Permissions and Environments

You can add members in the Team Settings dashboard. Critically, invited members need a Vapor account but do not require a paid subscription of their own. You can toggle granular permissions, such as the ability to create new environments without allowing the creation of entirely new projects.

For example, a developer with environment-only permissions can run:

vapor env "feature-testing"

This creates a sandboxed environment for testing without compromising the project's root configuration.

Syntax Notes

Vapor uses a colon-less or space-separated syntax for many commands (e.g., vapor team current). However, standard Laravel-style colon syntax often works interchangeably. The CLI is context-aware; it reads the local vapor.yml to understand project links but relies on your global authentication to determine team access.

Tips & Gotchas

  • AWS Linking: Remember that each team usually links to a unique
    AWS
    account to keep billing and resource limits distinct.
  • Authorization Errors: If a team member sees "You are not authorized," check the permissions toggle in the dashboard. Permissions can be updated in real-time without the user needing to log out.
  • Context Check: Always run vapor team:current before vapor init to prevent accidentally deploying a client site to your personal AWS account.
3 min read