> ## 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.

# Concepts Overview

> Core concepts in ubx — how the language, compiler, and runtime fit together.

ubx is a compiler, not a wrapper. Understanding how the pieces fit together helps you write better `.iac` files and debug issues faster.

## The Pipeline

```
.iac files
    ↓ Lexer        tokenizes HCL-inspired syntax
    ↓ Parser       builds typed AST (14+ block types)
    ↓ Merger       applies extend block overrides for target env
    ↓ Type Checker resolves symbols, validates `Pending<T>` refs,
    |              validates required fields against provider schemas,
    |              evaluates policy blocks, detects circular dependencies
    ↓ Code Gen     emits Pulumi TypeScript with `Output<T>` wiring
    ↓ pulumi up    executes against real cloud
```

Users never write or edit TypeScript — it's a build artifact in `.ubx/`.

## Core Concepts

<CardGroup cols={2}>
  <Card title="`Pending<T>` Type System" icon="link" href="/v1/concepts/pending-type">
    How ubx models async cloud outputs and generates correct Pulumi chains
  </Card>

  <Card title="Compilation" icon="code" href="/v1/concepts/compilation">
    Compiler pipeline stages and generated TypeScript
  </Card>

  <Card title="State" icon="database" href="/v1/concepts/state">
    How Pulumi state works and where it's stored
  </Card>

  <Card title="Environments" icon="layers" href="/v1/concepts/environments">
    Multi-environment patterns with extend blocks
  </Card>

  <Card title="Cross-Stack References" icon="arrow-right-arrow-left" href="/v1/concepts/cross-stack">
    Sharing outputs between stacks with remote blocks
  </Card>

  <Card title="Components" icon="puzzle" href="/v1/concepts/components">
    Registry and local .iac components
  </Card>
</CardGroup>

## What ubx Is NOT

* Not a fork of Terraform or OpenTofu
* Not a wrapper around Terraform (uses Pulumi exclusively)
* Not a Pulumi YAML replacement (richer syntax + output wiring)
* Not a general-purpose programming language
