# Introduction

> A collection of dynamically bridged Pulumi providers that enable you to use any Terraform provider within the Pulumi ecosystem

Welcome to the Pulumi Any Terraform documentation! This project provides seamless integration between Terraform providers and Pulumi, allowing you to leverage the extensive Terraform provider ecosystem while enjoying Pulumi's modern infrastructure-as-code experience.

Each provider is an npm package named `pulumi-` plus the provider name, for example `pulumi-namecheap`. Use only the resources, arguments, and configuration fields written on that provider's pages. Provider pages start at `/pulumi-any-terraform/providers/namecheap/overview` for Namecheap, and the Markdown for any page is its path with `.md` appended. If a URL is missing, follow the suggested pages or search `/search?q=` instead of guessing another path. The published site is https://docs.khanh.id/pulumi-any-terraform.

## What is Pulumi Any Terraform?

Pulumi Any Terraform is a collection of **dynamically bridged Pulumi providers** that automatically converts Terraform providers into fully-typed Pulumi packages. This means you can:

- Use any Terraform provider with Pulumi's state management
- Get complete TypeScript/JavaScript type safety
- Enjoy native integration with Pulumi's deployment engine
- Stay automatically synced with upstream Terraform providers

## Key Features

### 🔄 Full Terraform Compatibility
Use any Terraform provider with Pulumi without manual conversion. The bridge automatically handles the translation between Terraform's schema and Pulumi's resource model.

### 📘 Type Safety
Complete TypeScript definitions for all resources, inputs, and outputs. Get IntelliSense, auto-completion, and compile-time type checking.

### 🌍 Multi-Language Support
Generated providers work with TypeScript, JavaScript, Python, Go, and C#. Write infrastructure code in your preferred language.

### ⚡ Dynamic Updates
Automatically stay in sync with upstream Terraform providers. No manual regeneration needed when providers update.

### 🎯 Native Pulumi Experience
Full integration with Pulumi's state management, stack outputs, secrets, and deployment engine. All Pulumi features work seamlessly.

## Available Providers

<Columns cols={2}>
  <Card
    title="Better Uptime"
    href="/pulumi-any-terraform/providers/better-uptime/overview"
    icon={<img src="/images/providers/better-stack.svg" alt="" />}
  >
    Monitoring, alerting, and incident management
  </Card>
  <Card
    title="Bunnynet"
    href="/pulumi-any-terraform/providers/bunnynet/overview"
    icon={<img src="/images/providers/bunnynet.svg" alt="" />}
  >
    CDN and edge computing platform
  </Card>
  <Card
    title="Infisical"
    href="/pulumi-any-terraform/providers/infisical/overview"
    icon={<img src="/images/providers/infisical.svg" alt="" />}
  >
    Secrets management platform
  </Card>
  <Card
    title="Logtail"
    href="/pulumi-any-terraform/providers/logtail/overview"
    icon={<img src="/images/providers/better-stack.svg" alt="" />}
  >
    Log management and analytics
  </Card>
  <Card
    title="Namecheap"
    href="/pulumi-any-terraform/providers/namecheap/overview"
    icon={<img src="/images/providers/namecheap.svg" alt="" />}
  >
    Domain and DNS management
  </Card>
  <Card
    title="Portainer"
    href="/pulumi-any-terraform/providers/portainer/overview"
    icon={<img src="/images/providers/portainer.svg" alt="" />}
  >
    Container management platform
  </Card>
  <Card
    title="TeamCity"
    href="/pulumi-any-terraform/providers/teamcity/overview"
    icon={<img src="/images/providers/teamcity.png" alt="" />}
  >
    CI/CD platform
  </Card>
  <Card
    title="Time"
    href="/pulumi-any-terraform/providers/time/overview"
    icon={<img src="/images/providers/terraform.svg" alt="" />}
  >
    Time-based resources and operations
  </Card>
</Columns>

## Quick Start

Get started with any provider in seconds:

```bash
# Install a provider
npm install pulumi-namecheap

# Use in your Pulumi program
import * as namecheap from "pulumi-namecheap";

const record = new namecheap.Record("www", {
    domain: "example.com",
    type: "A",
    address: "192.168.1.1"
});
```

## Next Steps

<Columns cols={2}>
  <Card title="Getting Started" href="/pulumi-any-terraform/getting-started">
    Learn how to set up and use the providers
  </Card>
  <Card title="Architecture" href="/pulumi-any-terraform/architecture">
    Understand how the bridge works
  </Card>
  <Card title="Contributing" href="/pulumi-any-terraform/contributing">
    Contribute to the project
  </Card>
  <Card title="Troubleshooting" href="/pulumi-any-terraform/troubleshooting">
    Common issues and solutions
  </Card>
</Columns>

## Community & Support

- **GitHub**: [hckhanh/pulumi-any-terraform](https://github.com/hckhanh/pulumi-any-terraform)
- **Issues**: Report bugs and request features on GitHub
- **Pulumi Docs**: [pulumi.com/docs](https://www.pulumi.com/docs/)
- **Terraform Registry**: [registry.terraform.io](https://registry.terraform.io/)

## License

MIT - see individual package licenses for specific details.
