# Introduction to DNSControl

{% hint style="info" %}
DNSControl is an [opinionated](https://docs.dnscontrol.org/developer-info/opinions) platform for seamlessly managing your DNS configuration across any number of DNS hosts, both in the cloud or in your own infrastructure. It manages all of the domains for the Stack Overflow network, and can do the same for you!
{% endhint %}

## Try It

Want to jump right in? Follow our [quick start tutorial](https://docs.dnscontrol.org/getting-started/getting-started) on a new domain or [migrate](https://docs.dnscontrol.org/getting-started/migrating) an existing one. Read the [JavaScript DSL reference](https://docs.dnscontrol.org/language-reference/js) for more info.

## Use It

Take advantage of the advanced features. Use macros and variables for easier updates. Upload your zones to [multiple DNS providers](https://docs.dnscontrol.org/provider/index).

{% hint style="success" %}

* Maintain your DNS data in a high-level DSL, with macros and variables for easier updates.
* Super extensible! Plug-in architecture makes adding new DNS providers and Registrars easy!
* Eliminate vendor lock-in. Switch DNS providers easily, any time, with full fidelity.
* Reduce points of failure: Easily maintain dual DNS providers and easily drop one that is down.
* Supports 60+ [DNS Providers](https://docs.dnscontrol.org/provider/index) including [BIND](https://docs.dnscontrol.org/provider/bind), [AWS Route 53](https://docs.dnscontrol.org/provider/route53), [Google DNS](https://docs.dnscontrol.org/provider/gcloud), and [name.com](https://docs.dnscontrol.org/provider/namedotcom).
* [Apply CI/CD principles](https://docs.dnscontrol.org/advanced-features/ci-cd-gitlab) to DNS: Unit-tests, system-tests, automated deployment.
* All the benefits of Git (or any VCS) for your DNS zone data. View history. Accept PRs.
* Optimize DNS with [SPF optimizer](https://docs.dnscontrol.org/language-reference/domain-modifiers/spf_builder). Detect too many lookups. Flatten includes.
* Runs on Linux, Windows, Mac, or any operating system supported by Go.
* Enable/disable Cloudflare proxying (the "orange cloud" button) directly from your DNSControl files.
* [Assign an IP address to a constant](https://docs.dnscontrol.org/getting-started/examples#variables-for-common-ip-addresses) and use the variable name throughout the configuration. Need to change the IP address globally? Just change the variable and "recompile".
* Keep similar domains in sync with transforms, [macros](https://docs.dnscontrol.org/getting-started/examples#macro-for-repeated-records), and variables.
  {% endhint %}

## Get Involved

Join our [mailing list](https://groups.google.com/g/dnscontrol-discuss). We make it easy to contribute by using [GitHub](https://github.com/StackExchange/dnscontrol), you can make code changes with confidence thanks to extensive integration tests. The project is [newbie-friendly](https://everythingsysadmin.com/2017/08/go-get-up-to-speed.html) so jump right in!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dnscontrol.org/index.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
