CSC CloudStack Canvas

What is CloudStack Canvas?

CloudStack Canvas (CSC) is a browser-based visual designer for AWS infrastructure. You drag services onto an infinite canvas, connect them, configure properties, and export production-ready Infrastructure as Code β€” no YAML hand-authoring required.

CloudStack Canvas β€” full canvas view with connected AWS resources
The CloudStack Canvas β€” resources are connected visually and the IaC is generated automatically.

The canvas understands AWS architecture rules: it automatically places resources inside the correct containers (EC2 instances go inside Subnets, Subnets inside VPCs), generates the dependent resources you need (IAM roles, Security Groups), and validates placement before letting you drop.

🧩
Visual design
Drag, drop, and connect AWS services on an infinite canvas
πŸ“„
IaC export
One-click CloudFormation JSON/YAML or Terraform HCL
πŸ’°
Cost estimates
See projected monthly costs as you design (Pro)
πŸ‘₯
Collaboration
Real-time cursor presence and node sync (Pro)

Quick Start

  1. 1

    Create a project

    From the Dashboard, click "+ New Project". Choose Simple mode to get auto-wiring or Advanced mode for full control.

  2. 2

    Add resources from the palette

    The left panel lists all available AWS services grouped by category. Drag any service onto the canvas to place it.

  3. 3

    Connect resources

    Hover over a node until you see the connection handle (a small circle on the edge). Click and drag to another node to draw an edge.

  4. 4

    Configure properties

    Click any node to open the Properties panel on the right. Change the label, instance type, storage size, or any resource-specific setting.

  5. 5

    Export your infrastructure

    Click "Export IaC" in the toolbar. Choose CloudFormation JSON, CloudFormation YAML, or Terraform. The file downloads immediately.

Tip: Start with a Template instead of building from scratch. Click β€œTemplates” in the canvas toolbar to load a pre-wired architecture (web app, microservices, data pipeline, and more).

Navigating the Canvas

The canvas is an infinite, pannable workspace. All standard React Flow navigation gestures apply:

ActionHow
PanClick and drag on empty canvas space
Zoom in / outScroll wheel, or pinch on trackpad
Fit all nodes to viewPress F or use the Controls panel (bottom-left)
Select a nodeClick it
Multi-selectHold Shift and click, or drag a selection box on empty space
Move a nodeClick and drag the node
Move multiple nodesMulti-select first, then drag any selected node
Note: The minimap in the bottom-right gives a bird's-eye view of the full canvas. Click anywhere on it to jump there instantly.

Resource Palette

The resource palette β€” left sidebar with AWS services grouped by category
The left panel lists all supported AWS services. Drag any of them onto the canvas.

The left sidebar lists every supported AWS service, organized into categories: Compute, Storage, Database, Networking, Security, Messaging, and more. Use the search box at the top to filter by name or keyword.

Dropping a resource

Drag any service icon from the palette and drop it onto the canvas. CSC checks placement rules before adding the node:

  • Resources that require a VPC (EC2, RDS, ECS, etc.) are automatically placed inside one. If no VPC exists yet, CSC creates one for you.
  • Resources that require a Subnet are placed inside a Subnet inside the VPC.
  • If a required container doesn't exist, CSC creates the full hierarchy automatically.

Auto-generated dependencies

Many services create companion resources automatically. For example, dropping an EC2 instance also generates:

  • An EC2 Security Group (inside the Security Zone)
  • An IAM Instance Role (inside the IAM Zone)

These auto-generated nodes are linked visually and included in all IaC exports. You can hide them with the layer toggles if they clutter the view.

Simple vs Advanced Mode

Every project runs in one of two modes. You choose when creating the project, and can switch in Settings.

Simple Mode β€” auto-created IAM role and security group shown with dashed borders
Simple Mode: drop an EC2 and CSC auto-creates the IAM role (dashed amber) and security group (dashed red).
Simple Mode
  • βœ“ Auto-naming (env + project prefix)
  • βœ“ Auto-generated Security Groups and IAM roles
  • βœ“ Auto-wired dependencies on drop
  • βœ“ Infrastructure layer hidden by default
  • βœ“ Best for prototyping and learning
Advanced Mode
  • βœ“ Full control over all resource names
  • βœ“ Manually place any resource anywhere
  • βœ“ All infrastructure nodes visible
  • βœ“ Fine-grained property editing
  • βœ“ Best for production and team use
Note: Mode affects the canvas UX but not the IaC output β€” both modes generate the same complete CloudFormation or Terraform templates.

VPCs, Subnets & Zones

CSC uses container nodes to represent AWS grouping constructs. Child resources live visually inside their parent containers, and this hierarchy is reflected in the IaC output.

ContainerWhat goes inside
VPCSubnets, Security Zones, IAM Zones, and VPC-level resources
SubnetEC2 instances, RDS, ECS tasks, Lambda (VPC-mode), etc.
Security ZoneEC2 Security Groups, Network ACLs β€” organizational only
IAM ZoneIAM Roles and Policies β€” organizational only

Resizing containers

Hover over the edge or corner of any container (VPC, Subnet, etc.) to reveal the resize handle. Drag to expand or contract. The canvas enforces a minimum size so children are never clipped. Resizing is undoable with Ctrl+Z.

Security Zone and IAM Zone

These two zone types are CSC-only organizational containers. They do not map to an AWS resource and are excluded from IaC exports. They exist solely to keep Security Groups and IAM Roles visually separated from your main architecture.

Connecting Resources

Edges represent relationships between resources (data flow, network access, IAM trust, etc.). In the exported IaC they become references or dependency declarations between resources.

  1. 1

    Hover over a node

    A small circle (connection handle) appears on the edges of the node.

  2. 2

    Click and drag the handle

    Pull to another node. A preview edge follows your cursor.

  3. 3

    Release on the target node

    CSC resolves the relationship type automatically based on both resource types (e.g. EC2 β†’ S3 generates a bucket policy reference).

Deleting an edge

Click an edge to select it (it turns highlighted), then press Delete or Backspace.

Note: You can select multiple edges with Shift+click and delete them all at once.

Resource Properties

The property panel β€” right sidebar showing editable fields for a selected resource
Click any resource to open its property panel. Fields vary by resource type.

Click any node to open the Properties panel on the right side of the canvas. The panel shows fields specific to that resource type.

Common fields

  • Label β€” the display name shown on the canvas node. Editable inline by double-clicking the node label.
  • Logical ID β€” the CloudFormation logical resource ID. Auto-generated from the label, editable in Advanced mode.
  • Resource-specific fields β€” instance type, engine version, storage class, memory size, etc.

Naming configuration

In Simple mode, all resource names follow the pattern [prefix]-[environment]-[project]-[resource]. Change the environment, project name, and prefix in the canvas toolbar's naming settings.

Templates

Templates give you a pre-wired starting point for common architectures. Access them via the Templates button in the canvas toolbar.

TemplateTierWhat it includes
Static WebsitefreeS3 + CloudFront with OAC, HTTPS-only, SPA routing
Serverless APIfreeAPI Gateway + Lambda + DynamoDB + IAM execution role
Web ApplicationfreeEC2 + ALB + RDS inside a VPC with public/private subnets
3-Tier ArchitectureproALB + EC2 app tier + RDS in isolated subnets + SGs
ECS Fargate MicroserviceproECS Fargate + ECR + ALB + RDS + task/exec IAM roles
Serverless Full-StackproCloudFront + S3 + API Gateway v2 + Lambda + DynamoDB
Event-Driven PipelineproSNS + SQS + Lambda + DynamoDB with DLQ and IAM
CI/CD PipelineproCodePipeline + CodeBuild + ECR + ECS + S3 artifact store
Data Analytics PipelineenterpriseS3 data lake + Glue ETL + Athena + Redshift
High Availability Web AppenterpriseCloudFront + WAF + ALB + ECS + Aurora + ElastiCache
Billing AlarmproCloudWatch billing alarms ($10/$50/$100/daily) + SNS email
Warning: Loading a template replaces the current canvas. Save your work first if needed β€” use the Export IaC button or allow the auto-save to complete.

Undo & Redo

CSC maintains a 50-step history for every canvas change: adding/removing resources, connecting nodes, moving nodes, resizing containers, editing labels, and changing properties.

ActionShortcut
Ctrl+Z
Undo last action
Ctrl+Y
Redo
Ctrl+Shift+Z
Redo (alternative)
Note: On macOS, use Cmd instead of Ctrl. Undo/Redo works for positional changes too β€” if you drag a node or resize a container, Ctrl+Z will revert it.

Each logical action is one undo step. Dragging a node across the canvas is one step, not one step per pixel. Dropping a resource that auto-creates dependencies (VPC + Subnet + SG + IAM role) is also a single undo step.

Layer Visibility

The toolbar contains three layer toggles that let you hide categories of nodes without removing them from the canvas. Hidden nodes are still included in all IaC exports.

LayerWhat it hides
IAM LayerIAM Roles, IAM Policies, and IAM Zone containers
Security Group LayerEC2 Security Groups, Network ACLs, and Security Zone containers
Networking LayerVPC and Subnet containers (child nodes remain visible, floating)
Tip: Toggle off all three layers to get a clean high-level diagram showing only your application resources β€” great for presentations.

Keyboard Shortcuts

All shortcuts work when focus is on the canvas (not inside a text input).

ShortcutAction
Ctrl+Z
Undo
Ctrl+Y
Redo
Ctrl+Shift+Z
Redo (alternative)
Delete
Delete selected nodes or edges
Backspace
Delete selected nodes or edges
Shift+Click
Add to selection
Escape
Deselect all
F
Fit all nodes to view
Scroll
Zoom in / out
Space+Drag
Pan the canvas
Note: On macOS, Ctrl shortcuts use Cmd instead (Cmd+Z, Cmd+Y, Cmd+Shift+Z).

Minimap & Controls

The bottom-right corner of the canvas shows the minimap β€” a scaled overview of all nodes. Click anywhere on the minimap to jump the viewport to that location. Colored squares on the minimap match the primary color of each resource node.

The Controls panel (bottom-left) provides three buttons:

  • Zoom In β€” increase zoom level
  • Zoom Out β€” decrease zoom level
  • Fit View β€” zoom and pan to show all nodes

Both the minimap and controls can be toggled in the canvas toolbar's View menu if you prefer a cleaner workspace.

CloudFormation

CloudFormation export is available on all plans. CSC generates a complete, deployable CloudFormation template from your canvas.

The Export IaC modal β€” shows resource summary, validation warnings, and download button
The export modal shows a resource summary, any validation issues, and billing awareness notes before you download.
  1. 1

    Click "Export IaC" in the toolbar

    The export dialog opens showing available formats for your plan.

  2. 2

    Choose JSON or YAML

    Both formats are identical in content. JSON is the default; YAML is more human-readable for version control.

  3. 3

    Download

    The file downloads as cloudformation.json or cloudformation.yaml. Deploy it with the AWS Console, CLI, or CDK.

What gets exported

  • All resource nodes on the canvas (including hidden layer nodes)
  • All edges as DependsOn or reference properties
  • Resource properties set in the Properties panel
  • Naming config (prefix, environment, project)

What is excluded

  • Security Zone and IAM Zone containers (CSC-only organizational nodes)
  • Canvas metadata (positions, colors, labels used only for display)

Deploying with the AWS CLI

# Deploy a new stack
aws cloudformation deploy \
--template-file cloudformation.yaml \
--stack-name my-stack \
--capabilities CAPABILITY_NAMED_IAM

Terraform

Pro

Terraform HCL export is available on Pro and Enterprise plans. CSC generates a singlemain.tffile with all resources and their relationships expressed as Terraform references.

  1. 1

    Click "Export IaC" β†’ "Terraform"

    Downloads main.tf with the AWS provider configured for the resources on your canvas.

  2. 2

    Initialize and plan

    Run terraform init && terraform plan in the same directory to preview the deployment.

  3. 3

    Apply

    Run terraform apply to create the infrastructure in your AWS account.

# Initialize providers
terraform init
# Preview changes
terraform plan
# Deploy
terraform apply

Export Limits

Export quotas are enforced per calendar month and reset on the 1st of each month.

PlanExports / monthFormats
Free5CloudFormation JSON
ProUnlimitedCloudFormation JSON + YAML, Terraform
EnterpriseUnlimitedAll formats

Decommissioning Deployed Resources

If you deployed a CSC-generated template as a CloudFormation stack, tearing it down is a single command. CloudFormation tracks every physical resource it created β€” VPC IDs, subnet IDs, ARNs β€” and deletes them in the correct reverse-dependency order automatically.

Via the AWS CLI

# Delete the stack and all resources it created
aws cloudformation delete-stack \
--stack-name my-stack \
--region us-east-1
# Wait for full deletion to confirm
aws cloudformation wait stack-delete-complete \
--stack-name my-stack \
--region us-east-1

Via the AWS Console

  1. 1

    Open CloudFormation

    Go to the AWS Console β†’ CloudFormation β†’ Stacks. Find the stack you deployed (it uses the stack name you provided at deploy time).

  2. 2

    Select the stack

    Click the stack name to open its detail view.

  3. 3

    Click Delete

    Click the "Delete" button at the top right. Confirm the prompt. CloudFormation will delete all resources in dependency order β€” subnets before VPCs, instances before security groups, etc.

  4. 4

    Monitor progress

    The Events tab shows deletion progress in real time. The stack disappears from the list once all resources are removed.

For Terraform exports

# Destroy all resources tracked in Terraform state
terraform destroy
Note: CloudFormation can only delete resources it created and tracks in the stack. Resources deployed outside of CloudFormation, or resources with a DeletionPolicy: Retain attribute, are not removed on stack delete and must be cleaned up manually.

Partial teardown

If you want to remove specific resources without deleting the entire stack, update the template β€” remove those nodes in CSC, re-export, and redeploy. CloudFormation will delete only the resources that were removed from the template.

Resource Tagging

Every resource CloudStack Canvas generates β€” EC2 instances, Lambda functions, S3 buckets, RDS databases, IAM roles, NAT Gateways, VPCs, and every other CloudFormation resource in your exported template β€” is automatically tagged with:

# Applied to every resource in every exported template
Key: ManagedBy
Value: CloudStackCanvas

This tag is present on every single resource in every template β€” including auto-generated sub-resources like Internet Gateways, NAT Gateways, route tables, CloudWatch log groups, SQS dead-letter queues, and IAM roles. If CSC generated it, it has the tag.

Finding your deployed resources

You can use ManagedBy = CloudStackCanvas as a filter in any AWS service that supports tag-based filtering.

AWS Resource Groups

Create a tag-based Resource Group to see everything CSC has deployed in one place:

# AWS Console β†’ Resource Groups & Tag Editor β†’ Create Resource Group
# OR use the CLI:
aws resource-groups create-group \
--name CloudStackCanvas-Resources \
--resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"TagFilters\":[{\"Key\":\"ManagedBy\",\"Values\":[\"CloudStackCanvas\"]}]}"}' \
--region us-east-1

AWS Cost Explorer

Filter or group your AWS bill by ManagedBy to see exactly what CSC-deployed infrastructure costs vs resources you created manually or with other tools.

# Enable the ManagedBy tag for Cost Allocation first (one-time setup):
# AWS Console β†’ Billing β†’ Cost Allocation Tags β†’ Activate "ManagedBy"
# Then in Cost Explorer β†’ Group by: Tag β†’ ManagedBy
Note: It takes up to 24 hours after the first deploy for tags to appear in Cost Explorer. Activate theManagedBykey as a Cost Allocation Tag in Billing settings before you need cost data.

AWS CLI β€” find all tagged resources

# List all resources tagged ManagedBy=CloudStackCanvas in a region
aws resourcegroupstaggingapi get-resources \
--tag-filters Key=ManagedBy,Values=CloudStackCanvas \
--region us-east-1 \
--output table
# Count how many resources CSC has deployed
aws resourcegroupstaggingapi get-resources \
--tag-filters Key=ManagedBy,Values=CloudStackCanvas \
--query 'length(ResourceTagMappingList)' \
--output text

AWS Config

Use AWS Config rules or conformance packs to audit CSC-deployed resources. For example, require that all resources tagged ManagedBy=CloudStackCanvas have encryption enabled or Multi-AZ turned on.

IAM β€” restrict who can modify CSC resources

Add a tag-based condition to IAM policies to prevent engineers from manually modifying resources that should only be changed through CloudStack Canvas:

# IAM policy condition β€” deny manual changes to CSC-managed resources
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/ManagedBy": "CloudStackCanvas"
},
"StringNotEquals": {
"aws:RequestedRegion": "us-east-1"
}
}
}

Overriding the tag

If your organization uses a different tagging standard (for example managed-by instead of ManagedBy), you can add your own tag with the same key in the canvas Tags panel β€” user-set tags always override the CSC defaults. The CSC default tag will be replaced by your version.

You can also add additional identifying tags (team name, project, cost centre) per resource in the Tags panel in Advanced mode, or globally via the Naming Config section.

What is not tagged

A small number of AWS resource types do not support tags at all β€” notablyAWS::ApiGateway::Deployment,AWS::ApiGateway::Stage method settings, and some networking entries. These are edge cases in the AWS tagging API β€” the parent resources (the API Gateway itself, the VPC) are always tagged.

Installing the AWS CLI

The AWS CLI (Command Line Interface) is a program you install on your computer that lets you control AWS directly from your terminal β€” deploying templates, checking resource status, and more. You need it to follow the CLI paths in the per-template deployment guides. The Console path works without it.

macOS

Recommended: download the installer β€” no extra tools required.

# Download and open this file in your browser β€” it runs like any Mac app installer:

https://awscli.amazonaws.com/AWSCLIV2.pkg

If you already use Homebrew (a Mac package manager), you can also run: brew install awscli

Windows

Download the installer file (.msi = a standard Windows installer, like .exe) and double-click to run it.

https://awscli.amazonaws.com/AWSCLIV2.msi

After installing, open a new PowerShell or Command Prompt window before continuing.

Linux

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscliv2.zip

sudo ./aws/install

Verify the installation worked

Open a new terminal window and run:

aws --version

# You should see something like: aws-cli/2.x.x ...

# If you see "command not found", close and reopen your terminal and try again.

Note: Always install v2 (the current version). v1 is outdated and will cause errors with modern CloudFormation features.

Configuring AWS Credentials

The AWS CLI needs credentials to make API calls on your behalf. The recommended approach is to create a dedicated IAM user with programmatic access, then run aws configure.

Console β€” create access keys

  1. 1

    Open IAM in the AWS Console

    Navigate to IAM β†’ Users β†’ select your user (or create one β€” see IAM Permissions section below).

  2. 2

    Create access key

    Click Security credentials β†’ Create access key β†’ choose "Command Line Interface (CLI)" β†’ Next β†’ Create.

  3. 3

    Download credentials

    Copy the Access Key ID and Secret Access Key. You cannot retrieve the secret again after closing this dialog.

Configure the CLI

Run aws configure in your terminal. It will ask you four questions β€” paste or type your answers:

aws configure

# Paste your Access Key ID from the IAM dialog (starts with AKIA...):

AWS Access Key ID [None]: paste-your-access-key-id-here

# Paste your Secret Access Key (the long string shown once in IAM):

AWS Secret Access Key [None]: paste-your-secret-access-key-here

# Type your AWS region (us-east-1 works for most CSC templates):

Default region name [None]: us-east-1

# Press Enter to accept the default (json):

Default output format [None]: json

Your credentials are saved automatically in a file on your computer. You will not need to run this again unless you create new keys.

Verify credentials are working

aws sts get-caller-identity

# Expected output:

{

"UserId": "AIDA...",

"Account": "123456789012",

"Arn": "arn:aws:iam::123456789012:user/your-user"

}

Using named profiles (optional)

If you manage multiple AWS accounts, use named profiles instead of the default:

aws configure --profile mycompany

# Use the profile for any command:

aws cloudformation deploy --profile mycompany ...

Warning: Never share your access keys, commit them to Git, or paste them into any website including CloudStack Canvas. Running aws configure stores them securely in a hidden folder on your computer (~/.aws/credentials on Mac/Linux, or C:\Users\YourName\.aws\credentials on Windows). If you accidentally expose your keys, go to IAM immediately and delete them β€” then create new ones.

IAM Permissions for Deployment

Your IAM user needs specific permissions to deploy CloudFormation templates and the AWS resources inside them. The safest approach is to create a dedicated deployment user with a scoped policy.

Minimum permissions for CSC templates

Permission setTemplates that require it
cloudformation:*All templates
s3:*, s3:GetBucketPolicyAll templates (CFN stores state in S3)
iam:CreateRole, iam:AttachRolePolicy, iam:PassRoleAll templates (CAPABILITY_NAMED_IAM)
cloudfront:*, acm:*Static Website, HA Web App
lambda:*, apigateway:*, dynamodb:*Serverless API, Serverless Full-Stack
ec2:*, elasticloadbalancing:*, rds:*Web App, 3-Tier, HA Web App
ecs:*, ecr:*ECS Fargate, CI/CD Pipeline, HA Web App
sns:*, sqs:*, events:*Event-Driven Pipeline
glue:*, athena:*, redshift:*, kinesis:*Data Analytics Pipeline
wafv2:*, cloudwatch:*, elasticache:*HA Web App
codepipeline:*, codebuild:*, codecommit:*CI/CD Pipeline
cloudwatch:PutMetricAlarm, sns:*, cloudwatch:SetAlarmStateBilling Alarm
Tip: For a quick start, attach the AWS managed policy PowerUserAccess to your deployment user β€” it covers most services but not IAM. Add IAMFullAccess separately (required for CAPABILITY_NAMED_IAM templates). For production, scope down to the specific services your templates use.

Console β€” steps to create a deployment IAM user

  1. 1

    Go to IAM β†’ Users β†’ Create user

    Enter a name like "csc-deploy". Do not enable Console access β€” this user only needs programmatic (CLI) access.

  2. 2

    Attach permissions

    Choose "Attach policies directly". Search for and attach PowerUserAccess + IAMFullAccess, or create a custom policy scoped to the services your templates use.

  3. 3

    Create access keys

    After creating the user, go to Security credentials β†’ Create access key β†’ CLI β†’ create. Copy the keys and run aws configure.

Note: The --capabilities CAPABILITY_NAMED_IAM flag is required on all CSC template deploys. Without it, CloudFormation refuses to create IAM roles even if your user has the permission.

CloudFormation Troubleshooting

When a CloudFormation deployment fails, the stack enters ROLLBACK_COMPLETE or CREATE_FAILED state and automatically undoes any resources it created. Here is how to diagnose and fix failures.

Step 1 β€” Find the root cause

Console: In the AWS Console, go to CloudFormation (search for it in the top bar). Click on your stack name in the list. At the top of the stack detail page, click the Events tab. The list shows newest events at the top β€” scroll to the bottom to find the oldest (first) failure. Red rows are failures. Read the Status reason column β€” that is your error message.

CLI:

aws cloudformation describe-stack-events \

--stack-name YOUR-STACK-NAME \

--query "StackEvents[?ResourceStatus=='CREATE_FAILED'].[LogicalResourceId,ResourceStatusReason]" \

--output table

Common errors and fixes

InsufficientCapabilities β€” requires CAPABILITY_NAMED_IAM

Add --capabilities CAPABILITY_NAMED_IAM to your deploy command. All CSC templates create IAM roles and require this flag.

Access Denied / not authorized to perform: iam:CreateRole

Your IAM user is missing iam:CreateRole, iam:AttachRolePolicy, or iam:PassRole. Attach IAMFullAccess or add these actions to your policy.

BucketAlreadyExists / BucketAlreadyOwnedByYou

The S3 bucket name is already taken globally. Open the S3 node in CSC, change the Bucket Name, and enable the unique suffix checkbox before re-exporting.

AlreadyExistsException β€” stack already exists

A stack with this name already exists. Either delete it first (aws cloudformation delete-stack) or use a different stack name.

Invalid parameter: Endpoint Reason: Cannot create a subscription to an email address

The email address in the SNS subscription is invalid. Correct it in the SNS node property panel and re-export.

ResourceNotFoundException or ThrottlingException mid-deploy

Usually a transient AWS API issue. Wait 2–3 minutes and redeploy. If it persists, check the AWS Service Health Dashboard.

Stack is in ROLLBACK_COMPLETE state and cannot be updated

Delete the failed stack first, then redeploy: aws cloudformation delete-stack --stack-name YOUR-STACK-NAME

Export name already exists in another stack

A CloudFormation Output with this name is already exported by another stack. Rename the export or use a different stack name.

Step 2 β€” Delete a failed stack before redeploying

# Console: CloudFormation β†’ select stack β†’ Delete

# CLI:

aws cloudformation delete-stack \

--stack-name YOUR-STACK-NAME \

--region us-east-1

# Wait for deletion:

aws cloudformation wait stack-delete-complete \

--stack-name YOUR-STACK-NAME \

--region us-east-1

Warning: If a stack fails to delete due to a non-empty S3 bucket, empty the bucket first:aws s3 rm s3://YOUR-BUCKET --recursive

Step 3 β€” Fix the issue in CloudStack Canvas

Most failures come from one of: a missing required property, a name collision, or a missing IAM permission. Fix the root cause in the CSC property panel, re-export the template, then redeploy. Do not try to deploy the same template twice without fixing the issue β€” CloudFormation will reject it.

CloudFormation Console walkthrough (for all templates)

  1. 1

    Open CloudFormation in the AWS Console

    Navigate to CloudFormation using the search bar. Make sure your region (top-right) matches where you want to deploy β€” most CSC templates use us-east-1.

  2. 2

    Create stack

    Click "Create stack" β†’ "With new resources (standard)". Under "Specify template", choose "Upload a template file". Click "Choose file" and select the JSON or YAML file exported from CloudStack Canvas.

  3. 3

    Name the stack

    Enter a stack name (e.g. csc-static-site). Names must be unique per region. Click Next.

  4. 4

    Fill in parameters

    If the template has parameters (visible in the Parameters section of the export modal), fill them in here. Leave environment as "dev" unless you are deploying to staging or production.

  5. 5

    Configure stack options

    Leave defaults. Optionally add tags. Click Next.

  6. 6

    Review and acknowledge IAM

    At the bottom of the review page, check the box: "I acknowledge that AWS CloudFormation might create IAM resources with custom names." Click Submit.

  7. 7

    Monitor the Events tab

    Watch the Events tab as resources are created. Green = success, red = failure. If any resource fails, read the Status reason β€” this is your error message.

  8. 8

    Check Outputs after completion

    When the stack status changes to CREATE_COMPLETE (shown in green), click the Outputs tab. This is a list of key information about your deployed resources β€” URLs, connection strings, resource names β€” that CloudFormation surfaces so you don't have to go hunting. You will need these values to configure your application.

Creating an Organization

Pro

Organizations let Pro and Enterprise teams share projects under a single workspace. All members of an organization can see and open org projects from their dashboard.

Organization settings tab β€” showing member list, roles, and invite form
The Organization tab in Settings β€” create an org, invite members, and manage roles.
  1. 1

    Open Settings β†’ Organization

    Navigate to Settings and select the Organization tab, or follow the Set up Org prompt on your dashboard if you're on a Pro or Enterprise plan with no organization yet.

  2. 2

    Create an Organization

    Click Create Organization. Enter a unique name β€” this becomes your org's display name and slug used in the system.

  3. 3

    Invite Members

    Once created, use the Invite member field under your org to add teammates by email. Invited users must already have a CloudStack Canvas account.

  4. 4

    Share Projects

    Create new projects inside the org from your dashboard (the + New Org Project card), or move an existing personal project into the org using the Move to Org button (double-arrow icon) on any personal project card.

Note: Organizations require a Pro or Enterprise plan. Free accounts cannot create or join organizations.

Roles & Permissions

Pro

Every org member has one of four roles. Roles are ranked β€” higher ranks can only be assigned by someone of equal or higher rank.

RoleView ProjectsEdit ProjectsCreate ProjectsManage MembersDelete Org
Ownerβœ“βœ“βœ“βœ“βœ“
Adminβœ“βœ“βœ“βœ“ (up to admin)β€”
Editorβœ“βœ“βœ“β€”β€”
Viewerβœ“β€”β€”β€”β€”

An Owner cannot leave an organization unless they first transfer ownership or delete the org. Admins can invite members, change roles below their own rank, and remove editors/viewers.

Org Projects

Pro

Org projects are visible to all members of the organization regardless of who created them.

  • Create β€” click + New Org Project on the dashboard (editors and above).
  • Move β€” transfer a personal project into an org via the double-arrow icon on any personal project card.
  • Open β€” any org member can open and view an org project.
  • Edit β€” editors, admins, and owners can make and save changes.
  • Delete β€” owners and admins can delete org projects from the dashboard (the trash icon appears for eligible roles only).
Note: Org project counts count toward the org-level limit, not your personal project limit. Pro orgs support up to 10 shared projects; Enterprise orgs are unlimited.

Real-time Collaboration

Pro
Real-time collaboration β€” multiple colored cursors visible on the same canvas
Pro and Enterprise teams see each other's cursors and selections in real time.

Pro and Enterprise plans support real-time collaboration on saved projects (not the unsaved /canvas/new sandbox). Multiple team members can work on the same project simultaneously.

Collaboration uses a Server-Sent Events (SSE) stream from the server to each connected client, plus lightweight REST calls from clients to the server. No WebSocket server is required.

What syncs in real time

  • Cursor positions (throttled to 20 updates/second per user)
  • Node selection (which node each user has clicked)
  • Node moves (when a user finishes dragging a node)

What does not sync automatically

  • Adding or removing resources β€” these appear after the next auto-save cycle
  • Property changes β€” same, reflected after auto-save
Note: Full structural sync (add/remove in real time) is on the roadmap. For now, a banner appears when a collaborator's auto-save updates the project, prompting you to reload.

Cursor Presence

Pro

When collaborators are on the same canvas, their cursors appear as colored SVG pointers with their name. Each user gets a unique color assigned automatically.

Selected nodes show a colored ring matching the collaborator's color, so you can see what each person is working on at a glance.

Tip: Cursors are overlaid on top of the canvas and are pointer-events-none β€” they never interfere with your own interactions.

Cost Estimation Overview

Pro

The cost estimation engine computes a projected monthly AWS bill for the resources on your canvas based on AWS public pricing. Estimates are updated each time you open the cost panel or add/remove resources.

Costs use the following default assumptions:

  • Region: us-east-1 (prices vary by region)
  • On-Demand pricing (no Reserved or Savings Plan discounts)
  • 730 hours / month for compute resources
  • Data transfer within the same region is free
  • Managed service overhead (EKS control plane, etc.) is included where applicable
Warning: Cost estimates are approximations for planning purposes only. Actual AWS bills depend on usage, region, data transfer, and negotiated pricing. Always verify costs in the AWS Pricing Calculator before committing to a design.

Reading the Cost Panel

Pro

Click the $ Cost button in the canvas toolbar to open the cost panel. It slides in from the right alongside the Properties panel.

Panel layout

  • Total monthly estimate β€” sum of all nodes in large text at the top
  • Per-resource breakdown β€” each node with its estimated monthly cost and a line-item breakdown (compute, storage, etc.)
  • Computed at β€” timestamp of the last estimate run

Resources with no pricing data (IAM Roles, Security Groups, VPCs) show $0.00 since they have no direct cost.

AWS Billing Alarms

Pro

The Billing Alarm template (Pro and Enterprise) deploys four CloudWatch alarms that notify you when your AWS spend crosses configurable thresholds β€” protecting you from unexpected charges.

What gets deployed

AlarmDefault thresholdWhat it monitors
$10 Warning$10Month-to-date spend β‰₯ threshold
$50 Alert$50Month-to-date spend β‰₯ threshold
$100 Critical$100Month-to-date spend β‰₯ threshold
Daily Spend$5/daySingle day's spend β‰₯ threshold (catches spikes)

All thresholds are editable in the property panel before you export. Click any alarm node and change the Alarm Threshold field.

Before you deploy

  • Enable billing alerts in your AWS account β€” go to Billing β†’ Billing Preferences β†’ Receive Billing Alerts and save. Without this, CloudWatch never receives billing data and all alarms stay in INSUFFICIENT_DATA.
  • Deploy in us-east-1 β€” AWS billing metrics are only published to us-east-1 regardless of where your other resources live.
  • Enter a notification email on the SNS node in the property panel before exporting. CloudFormation creates the subscription automatically and AWS sends a confirmation link to that address.
Warning: You must click Confirm subscription in the AWS confirmation email after deploying. Alarms fire immediately when thresholds are breached, but notifications are only delivered to confirmed subscribers.

Email subscription

Select the Billing Alerts SNS node on the canvas and enter your email in the Notification Email field. When you deploy the exported template, CloudFormation creates an AWS::SNS::Subscription resource that triggers AWS to send a confirmation email. Check your inbox β€” the email comes from no-reply@sns.amazonaws.com with subject "AWS Notification - Subscription Confirmation".

How the Daily Spend alarm works

AWS publishes your total month-to-date spend to CloudWatch once every 24 hours. By itself that number grows throughout the month, so a simple threshold alarm would fire every day once your monthly total crosses it β€” not useful.

The Daily Spend alarm solves this by calculating how much your bill grew since yesterday. For example: if your month-to-date total was $12 yesterday and is $19 today, the daily spend is $7. If your threshold is $5, the alarm fires. If the bill grew by only $3 today, the alarm stays quiet. This catches sudden spikes β€” like a runaway process or an accidental large resource β€” that the monthly alarms would not catch until later in the month.

Note: Billing metrics update once per day, so all alarms evaluate on a 24-hour period. New alarms show INSUFFICIENT_DATA until the first daily metric arrives β€” this is normal and can take up to 24 hours after deploying.

Free Plan

The Free plan is permanent β€” no credit card required, no trial expiry.

LimitFreeProEnterprise
Projects120Unlimited
Nodes per canvas15200Unlimited
Exports / month5UnlimitedUnlimited
Export formatsCFN JSONCFN + TFCFN + TF
Cost estimationNoYesYes
CollaborationNoYesYes
Team members03Unlimited
Pro AWS servicesNoYesYes
API accessNoYesYes

Pro Plan

Pro

Pro unlocks the full canvas experience for individual developers and small teams. Billed monthly or annually (annual saves 20%).

  • Up to 20 projects with 200 nodes each
  • Unlimited CloudFormation and Terraform exports
  • Organization collaboration β€” up to 2 users simultaneously on a single Org project
  • Cost estimation panel
  • Pro-tier AWS services in the palette (EKS, SageMaker, Redshift, etc.)
  • API access for CI/CD integrations
View Pro pricing

Enterprise Plan

Enterprise

Enterprise removes all limits and adds SSO, audit logs, and a dedicated support SLA.

  • Unlimited projects and nodes
  • Unlimited subscribed members in a shared Organization, with role-based access
  • SAML/SSO integration
  • Audit log of all canvas changes
  • Dedicated Slack support channel
  • Custom SLA and uptime commitments
  • Private cloud deployment option
Contact sales