> ## Documentation Index
> Fetch the complete documentation index at: https://doc.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.

<Frame caption="Gapstack orchestrates deploys. Environment resources land in your AWS account.">
  <img src="https://mintcdn.com/gapstack/2LNizQW8NkqSFS-m/images/architecture-overview.svg?fit=max&auto=format&n=2LNizQW8NkqSFS-m&q=85&s=6e9cfd534a4f4bb06f2121f4e351749d" alt="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." width="880" height="640" data-path="images/architecture-overview.svg" />
</Frame>

## What you can do

<Columns cols={2}>
  <Card title="Provision on AWS" icon="cloud">
    Create AWS resources from Gapstack. They land in your account, so you own the stack.
  </Card>

  <Card title="Separate environments" icon="layer-group">
    Keep environments isolated from each other so you can run development, staging, and production as distinct stacks.
  </Card>

  <Card title="Split accounts and regions" icon="globe">
    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>

  <Card title="Deploy from GitHub" icon="github">
    Connect your GitHub account and deploy your own application code onto the infrastructure Gapstack provisions.
  </Card>

  <Card title="Monitor AWS cost" icon="chart-line">
    Track AWS spend for the accounts and environments you manage in Gapstack.
  </Card>

  <Card title="See your stack" icon="diagram-project">
    View infrastructure details for the resources Gapstack created, so you know what is running and where.
  </Card>
</Columns>

## Get started

<Card title="Quickstart" icon="rocket" href="/quickstart" horizontal>
  Sign up, create an organization, connect AWS and GitHub, and create your first project.
</Card>

<Card title="Connect an AWS account" icon="cloud" href="/guides/connect-aws-account" horizontal>
  Create the CloudFormation stack and confirm the account shows as Connected in Organization settings.
</Card>

<Card title="Supported AWS resources" icon="cubes" href="/guides/supported-resources" horizontal>
  See the resource types you can provision today. If one is missing, contact us and we add it within two weeks.
</Card>

<Card title="Duplicate an environment" icon="copy" href="/guides/clone-environment" horizontal>
  Copy resource definitions to a new environment. The first deploy only creates the artifacts bucket and OIDC role.
</Card>

<Card title="Workflows" icon="list-check" href="/guides/workflows" horizontal>
  Watch CloudFormation stack events for each deploy without leaving Gapstack.
</Card>

<Card title="Webhooks" icon="webhook" href="/guides/webhooks" horizontal>
  Set up webhooks on a project or an environment. Gapstack POSTs when those resources change.
</Card>

<Card title="Environment variables" icon="key" href="/guides/environment-variables" horizontal>
  Define variables on a project or environment. Environment values override project values and are injected into every Lambda.
</Card>

<Card title="View AWS costs" icon="chart-line" href="/guides/view-aws-costs" horizontal>
  Activate cost allocation tags in AWS, then turn on cost analytics only when you need spend data.
</Card>

<Card title="Deploy an artifact to S3" icon="box-archive" href="/guides/deploy-artifacts" horizontal>
  Each environment creates an artifacts bucket and a GitHub OIDC role. Upload without storing AWS keys.
</Card>

<Card title="Failed first deploy" icon="triangle-exclamation" href="/guides/failed-first-deploy" horizontal>
  If the first deploy of an environment fails, delete the AWS stack and the environment, then recreate it.
</Card>

## Use the API

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

<Card title="API overview" icon="terminal" href="/api-reference/introduction" horizontal>
  Base URL, tenant context, and how resources nest.
</Card>

<Columns cols={2}>
  <Card title="Authentication" icon="key" href="/api-reference/authentication">
    Call the API with a Cognito JWT or a tenant API key.
  </Card>

  <Card title="Interactive playground" icon="play" href="https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/swagger/">
    Try endpoints in Swagger UI against the production spec.
  </Card>

  <Card title="Changelog" icon="list" href="/changelog">
    Release notes for the API and product.
  </Card>
</Columns>
