project.yaml file lives at orgs/<org-name>/<project-name>/project.yaml and defines project-level settings. The presence of this file is what tells Applad that the directory is a project — no explicit listing required.
Basic Structure
Unique identifier for the project (used in URLs and references)
Human-readable project name
Organization ID this project belongs to (must match parent org directory)
Optional description of the project
Project Features
Enable or disable features at the project level:Enable GraphQL API for this project
Enable real-time subscriptions
Enable messaging system (email, SMS, push, etc.)
Enable feature flags
Enable analytics collection
Enable deployment pipelines
Enable Applad Instruct for this project
Environments
Define environments and their infrastructure targets:Environment name (e.g.,
"development", "staging", "production")Base URL where this environment is accessible
Infrastructure Types
Local Infrastructure
Local Infrastructure
Runs on your local machine using Docker Compose. No authentication required.
applad up synthesizes a docker-compose.yml and runs it locally. Same containers as staging and production. Only Docker required — no Dart tooling needed.VPS Infrastructure
VPS Infrastructure
Runs on a VPS (Virtual Private Server) via SSH.
SSH hostname or IP address
SSH username (typically
"applad")SSH key label from
org.yaml ssh_keys sectionDocker socket path on the VPS
Cloud Infrastructure
Cloud Infrastructure
Provision resources on cloud providers (AWS, GCP, Azure, etc.)
Cloud provider:
"aws", "gcp", "azure", etc.Cloud region (e.g.,
"us-east-1", "eu-west-1")Credential reference from admin database
Cloud Adapters
Cloud resources used on-demand alongside VPS infrastructure:Cloud provider:
"aws", "gcp", "azure", "cloudflare", etc.Cloud region (provider-dependent)
Credential reference from admin database
List of services to enable (e.g.,
s3, ses, rds, r2, workers)Provisioning and Teardown
- Cloud adapters are provisioned by
applad upwhen first referenced - Torn down explicitly via
applad cloud tear-down <id> - Resources persist between deployments unless explicitly removed
Member Access
Project-level role overrides and time-limited access live in the admin database, managed via
applad access commands or the admin UI. They are not defined in project.yaml.Editing this file does not change what anyone can do.Complete Example
Project Structure
Once you’ve createdproject.yaml, organize your project with these subdirectories:
Next Steps
Environments
Configure environment-specific overrides
Database Schema
Set up database connections and tables
Functions
Create serverless functions
Deployments
Configure deployment pipelines