# What's Next

import Intro from '@site/src/components/Intro'
import Link from '@docusaurus/Link'
import { FiArrowRight, FiCheck } from 'react-icons/fi'
import styles from './next-steps.module.css'

<Intro>
You know the basics of components, stacks, and shared configuration. Put them to work on a small project, then explore the features that solve your next problem.
</Intro>

<p className={styles.eyebrow}>Recommended next step</p>

## Build a stack you can reuse {#what-to-build}

Start with one component, such as a VPC, and use it in two environments. This brings imports, inheritance, and stack organization together in a working project.

1. **Start small.** Configure and deploy a single component in a development stack.
2. **Reuse the configuration.** Add a second stack that imports the same defaults and overrides its environment-specific values.
3. **Connect another component.** Use [remote state](/learn/connecting-components) to pass outputs between them.

<Link className={styles.primaryLink} to="/examples">
  Find an example to build on <FiArrowRight aria-hidden="true" />
</Link>

## Choose your next step {#learn-advanced-techniques}

Follow the path that matches what you're working on. You don't need to learn every feature before using Atmos.

<div className={styles.topics}>

<section>

### Advanced Stack Configuration

<div>

**When configuration starts repeating**, share defaults and make dependencies explicit.

[Advanced imports](/stacks/imports), [multiple inheritance](/howto/inheritance), [component dependencies](/stacks/dependencies/components), [overrides](/stacks/overrides), and [hooks](/stacks/hooks).

</div>
</section>

<section>

### Templates & Functions

<div>

**When configuration needs computed values**, choose the right function or template for the job.

[YAML functions](/functions/yaml/), [template functions](/functions/template/), and [template datasources](/templates/).

</div>
</section>

<section>

### Workflows

<div>

**When you repeat the same commands**, turn them into a reusable sequence.

[Workflows](/workflows), [shared steps](/steps), and [custom commands](/cli/configuration/commands).

</div>
</section>

<section>

### Validation & Policy

<div>

**Before changes reach production**, check configuration and enforce your team's rules.

[Schema validation](/cli/commands/validate/schema), [OPA policies](/cli/commands/validate/stacks), and [component validation](/cli/commands/validate/component).

</div>
</section>

<section>

### Vendoring

<div>

**When you adopt external components**, bring them into your repository and control their versions.

[Vendor configuration](/vendor/), [component manifests](/vendor/component-manifest), and [version management](/vendor/vendor-config).

</div>
</section>

<section>

### Best Practices & Patterns {#best-practices--patterns}

<div>

**As your project grows**, review established approaches to organization and maintenance.

[Best practices](/best-practices/), [design patterns](/design-patterns/), and [troubleshooting](/troubleshoot/debugging).

</div>
</section>

</div>

## Migrate from Other Tools

Apply what you already know using a guide for [native Terraform](/migration/native-terraform), [Terragrunt](/migration/terragrunt), [Terraform workspaces](/migration/terraform-workspaces), or [Terramate](/migration/terramate). The [Terraform Maturity Journey](/intro/why-atmos/) can help you decide which improvements to make first.

## Keep These References Close {#quick-reference}

- [CLI commands](/cli/commands/) for command syntax and flags.
- [Configuration reference](/cli/configuration) for `atmos.yaml` options.
- [Glossary](/terms/) for terminology and [cheat sheets](/cheatsheets/commands) for common operations.

### Real-World Examples

Browse [example stacks](https://github.com/cloudposse/atmos/tree/main/examples), reusable modules in the [Component Library](https://github.com/cloudposse/terraform-aws-components), and the [Reference Architecture](https://github.com/cloudposse/reference-architecture-aws) for a complete AWS implementation.

## Get Help & Connect

Ask a question in [Slack](/community/slack) or bring it to [Office Hours](/community/office-hours). Use [GitHub Discussions](https://github.com/cloudposse/atmos/discussions) for longer conversations and [GitHub Issues](https://github.com/cloudposse/atmos/issues) to report a bug.

### Keep Learning

Follow the [changelog](/changelog), [roadmap](/roadmap), and [Cloud Posse blog](https://cloudposse.com/blog/) for new features and guides.

## What You've Learned

<details className={styles.recap}>
<summary>Review the foundations you've covered</summary>

<ul className={styles.checklist} role="list">
  <li><FiCheck aria-hidden="true" /><span><strong>Why Atmos exists</strong> - Managing configuration complexity.</span></li>
  <li><FiCheck aria-hidden="true" /><span><strong>Core concepts</strong> - Separating components, stacks, and configuration.</span></li>
  <li><FiCheck aria-hidden="true" /><span><strong>Your first stack</strong> - Building a working example.</span></li>
  <li><FiCheck aria-hidden="true" /><span><strong>YAML in Atmos</strong> - Scope, deep merge, tags, and templates.</span></li>
  <li><FiCheck aria-hidden="true" /><span><strong>Imports</strong> - Sharing configuration across stacks.</span></li>
  <li><FiCheck aria-hidden="true" /><span><strong>Inheritance</strong> - Creating variations without duplication.</span></li>
  <li><FiCheck aria-hidden="true" /><span><strong>Organization</strong> - Structuring stacks for maintainability.</span></li>
  <li><FiCheck aria-hidden="true" /><span><strong>Connecting components</strong> - Sharing data through remote state.</span></li>
</ul>

</details>
