# Quick Start Your Project with the Ledger VS Code Extension

Jumpstart your project from building to testing your app using the Ledger VS Code extension. Follow the tutorials below for a step-by-step guide.

**Prerequisites:**

- [`Docker`](https://www.docker.com/)
- An X server
- [Visual Studio Code](https://code.visualstudio.com/)
- [The Ledger extension in VS Code](https://marketplace.visualstudio.com/items?itemName=LedgerHQ.ledger-dev-tools)
- The [C App Boilerplate](https://github.com/LedgerHQ/app-boilerplate), the [Rust App Boilerplate](https://github.com/LedgerHQ/app-boilerplate-rust), or the [Plugin Boilerplate](https://github.com/LedgerHQ/app-plugin-boilerplate)

## Tutorial #1: Set Up Your Development Environment and Build Your App

Watch this helpful tutorial video for a visual guide on setting up your development environment and app building:

Embedded: [YouTube video player](https://www.youtube-nocookie.com/embed/PxphfNWMGrY)

### What's in the video?

1. **Set Up the Environment:**

- Make sure Docker is up and running.
- Make sure you have an X11 server running :
  - On Ubuntu Linux, it should be running by default.
  - On macOS, install and launch XQuartz
  - On Windows, install and launch VcXsrv
  - ℹ️ On macOS and Windows, make sure to configure the X server so that client connections are allowed.
- Install the Ledger extension in VS Code from [here](https://marketplace.visualstudio.com/items?itemName=LedgerHQ.ledger-dev-tools).

2. **Open and Prepare the Boilerplate:**
   - Open the [Boilerplate application](https://github.com/LedgerHQ/app-boilerplate) in VS Code.

3. **Build and Load Your App:**
   - Within VS Code, you can either use the Ledger extension's sidebar menu or open the tasks menu with `Ctrl + Shift + B` (`Command + Shift + B` on Mac).
   - To compile your app, choose the target (Ledger S, S Plus, X, Stax, Flex) and choose **Build app**
   - To load your app onto a Ledger device (also known as "sideloading") and conduct real-world testing, select **Load app on device**. Bear in mind that sideloading is not possible on Nano X.

## Tutorial #2: Functional tests

Enhance your app's reliability by learning how to conduct functional tests:

Embedded: [YouTube video player](https://www.youtube-nocookie.com/embed/Sn83xI-oXSI)

## Tutorial #3: Device operations

Get acquainted with essential device operations to streamline your development process:

Embedded: [YouTube video player](https://www.youtube-nocookie.com/embed/Hocsb3avBR0)

### What's in the video?

1. **Quick initial device setup**. This setup allows you to skip the "normal" setup of a device and will asign your device a generic seed and pin from the extension settings. For safety reason we remind you that:
   - The seed phrase loaded during the quick setup is exclusively for testing
   - The only safe seed phrase is the one generated by your Nano
   - You can factory reset your Nano after your test
2. **Load and delete applications on a device**

Now, you're all set to build, load, and test an application. Feel free to modify the Boilerplate to tailor it to your project's requirements.
