# Getting Started

## Summary

* [ ] Make sure you have Node v12 or newer
* [ ] Install `create-magento-app` dependencies
* [ ] Initialize app with `create-magento-app`
* [ ] Enter the app's directory
* [ ] Start up the app with `npm start`

## Install Dependencies

**You’ll need to have Node >= 12 on your local development machine** (but it’s not required on the server). You can use [n](https://www.npmjs.com/package/n) (macOS, Linux) or [nvm-windows](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows) to switch Node versions between different projects.

In addition, before setting up, make sure you have installed the **libraries required to build the PHP**. Also, make sure to install **Docker** and **PHPBrew** in your system. See more in the detailed guides below:

{% content-ref url="prerequisites/installation-on-linux" %}
[installation-on-linux](https://docs.create-magento-app.com/v1/getting-started/prerequisites/installation-on-linux)
{% endcontent-ref %}

{% content-ref url="prerequisites/installation-on-macos" %}
[installation-on-macos](https://docs.create-magento-app.com/v1/getting-started/prerequisites/installation-on-macos)
{% endcontent-ref %}

{% content-ref url="prerequisites/windows-requirements" %}
[windows-requirements](https://docs.create-magento-app.com/v1/getting-started/prerequisites/windows-requirements)
{% endcontent-ref %}

## Creating an App

To create a new app, you may choose one of the following methods:

{% tabs %}
{% tab title="NPX" %}

```bash
npx create-magento-app my-app
```

{% endtab %}

{% tab title="NPM" %}

```
npm init magento-app my-app
```

{% endtab %}

{% tab title="Yarn" %}

```
yarn create magento-app my-app
```

{% endtab %}
{% endtabs %}

Running any of these commands will create a directory called `my-app` inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies. Learn more:

{% content-ref url="folder-structure" %}
[folder-structure](https://docs.create-magento-app.com/v1/getting-started/folder-structure)
{% endcontent-ref %}

## Running the App

To start the app, navigate to its directory and run the `start` command:

```
cd my-app
npm start
```

This command will start Docker services, start Magento and open your app in the browser.

Create Magento App choose an available port for Magento 2 so it can vary. By default, it will use port 80 so the URL for the store will be [http://localhost:80/](http://localhost/).

### ScandiPWA setup and Theme Linking

If you plan to use the ScandiPWA theme, you have to do the [ScandiPWA setup](https://docs.create-scandipwa-app.com/getting-started/getting-started) and then come back to this CMA guide to do the theme linking:

{% content-ref url="../usage-guide/themes" %}
[themes](https://docs.create-magento-app.com/v1/usage-guide/themes)
{% endcontent-ref %}
