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

# Introduction

> ubx is an HCL-inspired IaC language that compiles to Pulumi TypeScript — bridging the gap between infrastructure provisioning and application deployment.

# What is ubx?

**ubx** is an Infrastructure-as-Code language and compiler. You write `.iac` files using familiar HCL-inspired syntax, and ubx compiles them to [Pulumi](https://pulumi.com) TypeScript and deploys your infrastructure.

The core innovation: **output wiring is a first-class language feature.** Cloud resource outputs wire directly into Helm charts, ArgoCD configs, and other resources — with no manual copy-paste, no pipeline glue, no External Secrets Operator.

> Part of the [Ubiquex](https://ubiquex.io) ecosystem.

## The Problem

Every team managing cloud infrastructure hits the same wall:

```
Terraform apply
    → manually copy RDS endpoint
    → paste into Helm values.yaml
    → commit, push, wait for ArgoCD
```

This handoff is manual, error-prone, and breaks every time infrastructure changes.

**ubx makes output wiring a first-class language feature.**

## How It Works

```hcl theme={null}
# Provision an RDS instance
unit "aws_rds_instance" "db" {
  engine         = "postgres"
  instance_class = "db.t3.micro"
  username       = "admin"
  password       = secret("aws_secrets_manager", "prod/db/password")
}

# Deploy a Helm chart — db endpoint flows in automatically
deploy "helm" "backend" {
  chart     = "my-backend"
  namespace = "backend"
  values = {
    database = {
      host = ~unit.aws_rds_instance.db.endpoint  # Pending<string>
    }
  }
}

# Export the endpoint for other stacks
output "db_endpoint" {
  value       = ~unit.aws_rds_instance.db.endpoint
  description = "RDS connection endpoint"
}
```

The `~` sigil marks a `Pending&lt;T&gt;` value — resolves at apply time. ubx compiles this to correct Pulumi `Output&lt;T&gt;.apply()` chains. No `depends_on`. No pipeline glue.

## Block Types

| Block       | Role                            | Equivalent           |
| ----------- | ------------------------------- | -------------------- |
| `unit`      | Single cloud resource           | Terraform `resource` |
| `component` | Reusable component              | Terraform `module`   |
| `deploy`    | Push-based deployment (Helm)    | *(none)*             |
| `sync`      | Pull-based GitOps (ArgoCD/Flux) | *(none)*             |
| `input`     | Input variable                  | Terraform `variable` |
| `local`     | Computed local value            | Terraform `locals`   |
| `data`      | Query existing cloud resource   | Terraform `data`     |
| `output`    | Stack output                    | Terraform `output`   |
| `policy`    | Compile-time compliance rules   | *(none)*             |

## Key Features

<CardGroup cols={2}>
  <Card title="HCL-inspired syntax" icon="code">
    Familiar block-based syntax for Terraform users. Write `.iac` files, not TypeScript.
  </Card>

  <Card title="`Pending<T>` type system" icon="link">
    The `~` sigil marks async values. ubx tracks propagation and generates correct `Output&lt;T&gt;` chains.
  </Card>

  <Card title="Native output wiring" icon="arrow-right-arrow-left">
    Wire database endpoints into Helm charts and GitOps configs — as a language feature.
  </Card>

  <Card title="AI-powered commands" icon="sparkles">
    `ubx explain`, `ubx fix`, `ubx suggest`, `ubx review`, `ubx upgrade` — Claude in your IaC workflow.
  </Card>

  <Card title="Built-in testing" icon="flask">
    Write `.test.iac` files and run `ubx test` — no external test framework needed.
  </Card>

  <Card title="Policy as code" icon="shield">
    `policy` blocks enforce compliance rules at compile time — no OPA, no external tools.
  </Card>
</CardGroup>

## Supported Clouds

| Provider   | Resources                     |
| ---------- | ----------------------------- |
| AWS        | 1,672+ resources              |
| GCP        | 1,217+ resources              |
| Azure      | 2,334+ resources              |
| Kubernetes | Helm, Kustomize, ArgoCD, Flux |

## Next Steps

<CardGroup cols={2}>
  <Card title="Quick Start" icon="rocket" href="/v1/quickstart">
    Deploy your first stack in 5 minutes
  </Card>

  <Card title="Installation" icon="download" href="/v1/installation">
    Prerequisites and install instructions
  </Card>

  <Card title="Language Reference" icon="book" href="/v1/language/overview">
    All block types and syntax
  </Card>

  <Card title="CLI Reference" icon="terminal" href="/v1/cli/overview">
    All ubx commands
  </Card>
</CardGroup>
