## Get started
Use this beginner-friendly guide to start building on Terra.
:::{admonition} Learn about Terra
:class: note
To learn more about about Terra concepts like Luna, validators, and governance, visit the [Terra protocol overview](../learn/protocol.md).
:::
Follow the steps below to get started with Terrain and build your own dApp!
### 1. Set up Terrain
Terrain is a user-friendly development environment for developing smart contracts. Terrain makes it easy to create smart contract templates, deploy them to the Terra blockchain, and connect them to a frontend app.
Follow the [Terrain setup tutorial](terrain/initial-setup.md) to get started using Terrain.
### 2. Download LocalTerra and start building
LocalTerra is a scaled-down Terra blockchain that allows you to test your dApp locally. LocalTerra provides a single validator node and [10 preconfigured wallet accounts](localterra/accounts.md).
Follow the [Terrain with LocalTerra tutorial](terrain/using-terrain-localterra.md) to start using Terrain and create a simple counter app.
### 3. Mint an NFT
Now that you are familiar with Terrain and LocalTerra, you can try minting an NFT with Terrain.
The [NFT minting](terrain/mint-an-nft.md) tutorial walks you through the creation of an NFT minting application using the dApp scaffolding and front end provided by Terrain.
:::{admonition} Terra Academy
:class: tip
For interactive courses on developing smart contracts using Rust and CosmWasm libraries, visit [Terra Academy](https://academy.terra.money).
:::
## Development Suite
Congrats! You have the basics down!
Now you can dive into the other tools in the Terra Development Suite. Visit the [tool guide](which-tools.md) for more info.
### Terra.js
Use Terra.js to create bots, power NFT mints, and for all-purpose back end services. Follow the [Terra.js tutorial](terra-js/getting-started.md) to get started.
### Terra.py
Use Terra.py for on-chain analytics, Jupyter Notebooks, data processing, and other mathematical processes. Follow the [Terra.py](https://terra-money.github.io/terra.py/tutorial.html) tutorial to get started.
### Wallet Provider and Templates:
If you have a back end for your app and want a front end to connect to Terra Station, use Wallet provider and Terra Templates. Follow the [Wallet Provider tutorial](wallet-provider/wallet-provider-tutorial.md) to get started.
### Other Tools
Terra also provides other tools for building:
- [Finder](https://finder.terra.money): Terra’s multi-purpose block explorer.
- [Faucet](https://faucet.terra.money): Get tokens sent to your testnet address.
- [`terrad`](terrad/install-terrad.md): the node daemon and command line interface that connects to the Terra network.
## Resources
### TerraWiki.org
Written by devs, for devs, [terrawiki.org](http://terrawiki.org) is the community documentation platform for all things Terra, including community-generated tutorials, reference material, and troubleshooting guides. Start browsing, or log in and create your own article.
### Agora Developers' Forum
Join the [Developers' Forum](https://agora.terra.money/c/developer/20) and talk to other devs about code, projects, and troubleshooting.
### Terra Academy
Take interactive courses and learn about coding in Rust, using CosmWasm libraries and developing, testing, and deploying your own smart contracts. Visit [the Terra Academy](https://academy.terra.money) site to get started.
### Terra Discord Server
If you would like to connect with the developer community and ask questions related to software development on Terra, join the [Terra Discord server](https://discord.com/invite/EuKCeGFb93). Once you've joined the server:
1. Select `Developer Role` by clicking on the Green Bug icon `🪲` under the `🪲 | dev-roles` channel.
2. Once you are subscribed, a new section with the Terra developer channels appears under `🪲 DEV`.
3. Select the relevant channel to ask your questions and receive support.