> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gapstack.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Provision AWS resources with environment isolation, multi-account and multi-region deploys, GitHub, and cost visibility.

Gapstack is a platform for provisioning AWS resources with a click. You define what to run, and Gapstack creates and manages the infrastructure for you.

Use it to keep environments isolated, deploy across AWS accounts and regions, ship your own code from GitHub, and see cost and stack information in one place.

## How provisioning works

Gapstack operates a control plane. That is the only infrastructure we host. We use it to connect your AWS account, manage projects and environments, and run deploys.

We do not host the resources that belong to your environments.

When you connect an AWS account, CloudFormation creates an IAM role in **your** account. Gapstack assumes that role and creates a CloudFormation stack for each environment. Those stacks provision APIs, functions, data stores, and the rest of the environment in your AWS account and region. A project only groups environments. It does not create a stack.

You own the stacks. You can revoke access from Gapstack or by deleting the connection stack in AWS.

![Diagram showing your code, config, and linked AWS account flowing into the Gapstack orchestration engine, which assumes your IAM role and provisions resources in your AWS account.](https://mintcdn.com/gapstack/2LNizQW8NkqSFS-m/images/architecture-overview.svg?fit=max\&auto=format\&n=2LNizQW8NkqSFS-m\&q=85\&s=6e9cfd534a4f4bb06f2121f4e351749d)

Gapstack orchestrates deploys. Environment resources land in your AWS account.

## What you can do

> [card] Provision on AWS
>
> Create AWS resources from Gapstack. They land in your account, so you own the stack.

> [card] Separate environments
>
> Keep environments isolated from each other so you can run development, staging, and production as distinct stacks.

> [card] Split accounts and regions
>
> Deploy each environment to its own AWS account, its own region, or both. Gapstack currently supports every AWS region in the United States (`us-*`).

> [card] Deploy from GitHub
>
> Connect your GitHub account and deploy your own application code onto the infrastructure Gapstack provisions.

> [card] Monitor AWS cost
>
> Track AWS spend for the accounts and environments you manage in Gapstack.

> [card] See your stack
>
> View infrastructure details for the resources Gapstack created, so you know what is running and where.

## Get started

> [card] [Quickstart](https://docs.gapstack.dev/quickstart.md)
>
> Sign up, create an organization, connect AWS and GitHub, and create your first project.

> [card] [Connect an AWS account](https://docs.gapstack.dev/guides/connect-aws-account.md)
>
> Create the CloudFormation stack and confirm the account shows as Connected in Organization settings.

> [card] [Supported AWS resources](https://docs.gapstack.dev/guides/supported-resources.md)
>
> See the resource types you can provision today. If one is missing, contact us and we add it within two weeks.

> [card] [Duplicate an environment](https://docs.gapstack.dev/guides/clone-environment.md)
>
> Copy resource definitions to a new environment. The first deploy only creates the artifacts bucket and OIDC role.

> [card] [Workflows](https://docs.gapstack.dev/guides/workflows.md)
>
> Watch CloudFormation stack events for each deploy without leaving Gapstack.

> [card] [Webhooks](https://docs.gapstack.dev/guides/webhooks.md)
>
> Set up webhooks on a project or an environment. Gapstack POSTs when those resources change.

> [card] [Environment variables](https://docs.gapstack.dev/guides/environment-variables.md)
>
> Define variables on a project or environment. Environment values override project values and are injected into every Lambda.

> [card] [View AWS costs](https://docs.gapstack.dev/guides/view-aws-costs.md)
>
> Activate cost allocation tags in AWS, then turn on cost analytics only when you need spend data.

> [card] [Deploy an artifact to S3](https://docs.gapstack.dev/guides/deploy-artifacts.md)
>
> Each environment creates an artifacts bucket and a GitHub OIDC role. Upload without storing AWS keys.

> [card] [Failed first deploy](https://docs.gapstack.dev/guides/failed-first-deploy.md)
>
> If the first deploy of an environment fails, delete the AWS stack and the environment, then recreate it.

## Use the API

The API reference is generated from the Gapstack OpenAPI 3 specification.

> [card] [API overview](https://docs.gapstack.dev/api-reference/introduction.md)
>
> Base URL, tenant context, and how resources nest.

> [card] [Authentication](https://docs.gapstack.dev/api-reference/authentication.md)
>
> Call the API with a Cognito JWT or a tenant API key.

> [card] [Interactive playground](https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/swagger/)
>
> Try endpoints in Swagger UI against the production spec.

> [card] [Changelog](https://docs.gapstack.dev/changelog.md)
>
> Release notes for the API and product.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.