# Azure Quickstart Templates: Community ARM and Bicep Examples

> The Azure Quickstart Templates repository is a large MIT-licensed collection of community-contributed ARM and Bicep templates for deploying resources on Microsoft Azure. It is maintained by Microsoft and the community, with a searchable template index at learn.microsoft.com and contribution guidelines that enforce deployment quality and security standards.

**Azure/azure-quickstart-templates** — Azure Quickstart Templates. To fix this, either use Bicep with modules & file functions, or parameterize links to external content.

- Repository: https://github.com/Azure/azure-quickstart-templates
- Website: https://aka.ms/azqst
- Stars: 14,883 · Forks: 16,197
- Language: Bicep
- License: MIT
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/azure-azure-quickstart-templates

## What the Repository Is and Who Uses It

Azure Quickstart Templates is a GitHub repository at github.com/Azure/azure-quickstart-templates that holds contributed deployment templates for Microsoft Azure. Engineers deploying infrastructure on Azure use it to find working examples for specific services, architectures, or deployment patterns before writing their own configurations from scratch.

The repository is MIT-licensed and maintained by Microsoft alongside community contributors. A searchable index of all templates is maintained at learn.microsoft.com/en-us/azure/templates/ and is linked from the README. This index is the primary discovery surface: the repository itself is large and benefits from the structured search over browsing directories directly.

Both ARM templates (JSON-based Azure Resource Manager templates) and Bicep templates appear in the repository. Bicep is Microsoft's domain-specific language that compiles to ARM JSON, and newer contributions tend to use Bicep because it is more readable and has better tooling support.

## How the Repository Is Organized

The top-level directory structure is divided by deployment scope and content type. The quickstarts/ directory holds templates for deploying individual services or small architectures. The application-workloads/ directory holds templates for more complete application stacks. The demos/ directory contains demonstration scenarios.

Deployment scope is reflected in the directory layout: subscription-deployments/ contains templates that target an Azure subscription rather than a resource group, managementgroup-deployments/ covers management group scope, and tenant-deployments/ covers tenant scope. This organization matters because Azure Resource Manager behaves differently at each scope, and a template written for resource group scope cannot be directly deployed at subscription scope without modification.

The modules/ directory holds reusable template components. The shared_scripts/ directory contains helper scripts used during deployment. Helper scripts for deploying and side-loading templates are at the root: Deploy-AzTemplate.ps1, Deploy-AzureResourceGroup.ps1, az-group-deploy.sh, and SideLoad-AzCreateUIDefinition.ps1 cover PowerShell and bash deployment paths.

## Finding and Using a Template

The intended workflow is to search the index at learn.microsoft.com/en-us/azure/templates/, find a template that matches the deployment goal, and then clone or download the specific template directory from the repository. Each template directory is self-contained with its own azuredeploy.json or main.bicep file, a parameters file, and a README describing the deployment.

The README at the repository root points to the Contribution Guide at 1-CONTRIBUTION-GUIDE/README.md for details on how to deploy a template and how to contribute one. The Guide is the primary documentation for the process of using these templates, since the repository README itself only describes the project scope and contribution policy.

Deployment scripts at the repository root (Deploy-AzTemplate.ps1 and az-group-deploy.sh) provide a way to deploy templates from the command line without using the Azure Portal. The SideLoad-AzCreateUIDefinition.ps1 and SideLoad-CreateUIDefinition.ps1 scripts support testing Azure Marketplace UI definitions locally.

## ARM Templates versus Bicep in This Repository

Both ARM JSON templates and Bicep files appear in the repository, sometimes alongside each other in the same template directory (a main.bicep and a generated azuredeploy.json). ARM JSON is the underlying format that Azure Resource Manager accepts; Bicep compiles to it.

The contribution policy listed in the README explicitly mentions Bicep as the preferred path for resolving the no-external-links policy: templates that previously loaded content from external URLs can be rewritten with Bicep modules and file functions to embed the content locally instead. This is a functional reason to prefer Bicep for new contributions, not just a style choice.

For consumers of the templates, the practical difference is tooling: ARM JSON deployments use the Azure CLI with az deployment group create, while Bicep files can be deployed directly with az bicep build and the same deployment commands, or deployed directly by tools that support Bicep natively (Azure CLI 2.20.0 and later support Bicep directly).

## Contributing Templates: Rules and the No-External-Links Policy

The README defines one explicit contribution rule: no links to non-Microsoft controlled assets. The stated reason is the risk of domain takeover or spoofing, where an external resource a template depends on could be replaced by a malicious actor after the template is merged. Examples given include S3 buckets and non-Microsoft Azure storage accounts.

Pull requests that include such links will be rejected. Existing samples that contain them will be removed. The recommended fix is to use Bicep modules and file functions to embed content inline, or to parameterize external links so the deployer provides the URI rather than the template.

The repository's .github/ directory contains CI workflows that validate templates. The 1-CONTRIBUTION-GUIDE/ directory documents the full contribution requirements including template metadata, parameter naming conventions, and testing expectations.

## Limitations: What This Repository Does Not Provide

Templates in this repository are examples, not maintained modules. There is no guarantee that a template contributed in 2020 reflects current Azure service capabilities or recommended practices. Azure services add features, change defaults, and occasionally deprecate options, and the templates in the repository are not systematically updated to track these changes.

The repository has no release versioning for individual templates. There is no semantic versioning, no changelog per template, and no signal that a specific template is still current. An engineer deploying a template from this repository should inspect the template itself for deprecated resource API versions or properties that Azure may have changed.

The repository is large and browsing it without the learn.microsoft.com search index is impractical. The GitHub search interface is adequate for finding templates by directory name but less useful than the structured index for finding templates by service or scenario.

## Azure Quickstart Templates versus Terraform AzureRM Modules

HashiCorp Terraform's AzureRM provider and the Terraform Registry's Azure modules represent the main alternative approach to deploying Azure infrastructure as code. The key architectural difference is that Terraform uses a state-based model: it tracks what was deployed and calculates a diff for updates, which enables incremental changes and explicit destroy operations. ARM templates use a declarative goal-state model that Azure evaluates server-side, without a local state file.

For teams already using Terraform for multi-cloud infrastructure, the Terraform AzureRM modules offer a consistent workflow. For teams that operate exclusively on Azure and use Azure DevOps or GitHub Actions with Azure-native tooling, ARM and Bicep templates integrate more directly with Azure's own deployment pipeline features, including Azure Deployment Environments and the Azure Portal's template deployment UI.

The Quickstart Templates repository does not compete with Terraform Registry modules: they serve different IaC ecosystems. Engineers choosing between them are usually making a broader tooling choice rather than picking templates for a specific deployment.

## Conclusion

Azure Quickstart Templates is the right starting point for engineers who want a working deployment example for a specific Azure service or architecture pattern before writing their own templates. It is not a library of production-ready modules: templates are contributed by the community and represent working examples at a point in time, not maintained packages. Before using a template, review its directory for freshness, check whether it uses ARM JSON or Bicep (and whether your tooling supports both), and read the Contribution Guide to understand the deployment scope and testing expectations.

## FAQ

### How do you find templates in the Azure Quickstart Templates repository?

The searchable template index at learn.microsoft.com/en-us/azure/templates/ is the recommended way to find templates. The repository itself is large; browsing it directly by directory is practical only when you know the specific template name.

### What is the difference between ARM templates and Bicep templates in this repository?

ARM templates are JSON files that Azure Resource Manager deploys directly. Bicep is a higher-level language that compiles to ARM JSON; it is more readable and has better tooling support. Newer contributions tend to use Bicep. Both can be deployed with the Azure CLI.

### Can templates in this repository reference external files or URLs?

No. The repository policy explicitly rejects templates that contain links to non-Microsoft controlled assets such as S3 buckets or third-party storage. The fix is to use Bicep modules and file functions to embed content inline, or to parameterize external links so the deployer provides the URI.

## Sources

- [Official documentation](https://aka.ms/azqst)
- [Official README](https://github.com/Azure/azure-quickstart-templates#readme)
- [Project repository](https://github.com/Azure/azure-quickstart-templates)
- [Release notes](https://github.com/Azure/azure-quickstart-templates/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/azure-azure-quickstart-templates
