# Integrate JavaScript SDK v1.1 with your Nuxt.js App

This guide will help you integrate RudderStack with your Nuxt.js app using the [RudderStack JavaScript SDK]({{< ref "sources/event-streams/sdks/rudderstack-javascript-sdk/_index.md" >}}). On successful integration, you can track and send real-time user events to your preferred destinations via RudderStack.

To set up the event stream on your Nuxt.js app, you need to perform the following steps:

1. [Integrate the JavaScript SDK with your Nuxt.js app and set up the tracking code]({{< ref "#integrating-the-javascript-sdk-with-your-nuxtjs-app" >}})
2. [Configure a destination in RudderStack]({{< ref "#configuring-a-destination-in-rudderstack" >}})
3. [Deploy your Nuxt.js app and verify the events]({{< ref "#deploying-your-nuxtjs-app-and-verifying-the-event-stream" >}})

## Prerequisites

This guide assumes you have installed and set up your Nuxt.js app. You can refer to the official [Nuxt.js documentation](https://nuxtjs.org/docs/2.x/get-started/installation/) for more information.

## Integrating the JavaScript SDK with your Nuxt.js app

Integrating the JavaScript SDK with your Nuxt.js app involves the following steps:

1. [Creating a JavaScript source in RudderStack]({{< ref "#creating-a-javascript-source-in-rudderstack" >}}) 
2. [Installing and configuring the JavaScript SDK in your Nuxt.js app]({{< ref "#installing-and-configuring-the-javascript-sdk-in-your-nuxtjs-app" >}})

### Creating a JavaScript source

The RudderStack JavaScript source is required track the events from your Nuxt.js app. Follow these steps to set it up in your [RudderStack dashboard](https://app.rudderstack.com/):

1. Note the data plane URL in your RudderStack dashboard. This is required to set up the JavaScript SDK in your Nuxt.js app.

{{< image src="images/rs-cloud/data-plane-url.webp" alt="Data Plane URL" >}}

2. Click the **Sources** button in the left navigation bar and select **New Source** to create a source. Under **Sources**, select **Event Streams** > **JavaScript**.
3. Assign a name to your source and click **Continue**.
4. Your JavaScript source is now configured. Note down the write key for this source:

{{< image src="images/user-guides/jamstack-guides/write-key.webp" alt="JavaScript source write key" >}}

### Installing and configuring the JavaScript SDK in your Nuxt.js app

To integrate RudderStack with your Nuxt.js app and set up the tracking code, follow the steps below:

1. In your app's folder, open `nuxt.config.js` and include the following snippet within the `head:` section: 

```javascript
script: [{
    hid: 'Rudder-JS',
    src: 'http://cdn.rudderlabs.com/v1.1/rudder-analytics.min.js',
    defer: true
  },
  {
    hid: 'rudder-js',
    innerHTML: `
        rudderanalytics = window.rudderanalytics = [];
        var  methods = [
            'load',
            'page',
            'track',
            'identify',
            'alias',
            'group',
            'ready',
            'reset',
            'getAnonymousId',
            'setAnonymousId'
        ];
        for (var i = 0; i < methods.length; i++) {
              var method = methods[i];
              rudderanalytics[method] = function (methodName) {
                    return function () {
                                       rudderanalytics.push([methodName].concat(Array.prototype.slice.call(arguments)));
                    };
                  }(method);
        }
        rudderanalytics.load("WRITE_KEY", "DATA_PLANE_URL");
        rudderanalytics.ready(()=>{
          console.log("We are all set");
        });
        //rudderanalytics.page();
        `,
    type: 'text/javascript',
    charset: 'utf-8'
  }
],
```

2. Replace `<WRITE_KEY>` and `<DATA_PLANE_URL>` with your JavaScript source write key and the data plane URL obtained in the [Creating a JavaScript source in RudderStack]({{< ref "#creating-a-javascript-source-in-rudderstack" >}}) section above.

{{< image src="images/user-guides/nuxtjs-config.webp" alt="Nuxt.js configuration" >}}

{{< info >}}
See the sample Nuxt app in the [RudderStack Sample Applications](https://github.com/rudderlabs/rudder-samples/tree/master/javascript/sample-nuxt-app) repository for more information.
{{< /info >}}

## Configuring a destination tool in RudderStack

This section details the steps required to set up a destination in RudderStack, where you can send all events tracked by the JavaScript SDK you set up above.

1. In your RudderStack dashboard, click **Destinations** > **New destination**.
2. Choose your preferred destination from the list.
3. Assign a name to the destination and click **Continue**.
4. Select the JavaScript source configured in the above section and click **Continue**.
5. Configure the destination with the required settings.

{{< info >}}
Optionally, you can add a [user transformations]({{< ref "transformations/overview.md" >}}) to this destination to transform your events. 
{{< /info >}}

## Deploying your Nuxt.js app and verifying the event stream

To verify if your event stream is working correctly, deploy your Nuxt.js app and test if the events are tracked and delivered correctly. Follow these steps:

1. Deploy your Nuxt.js app by running the following command:

```bash
npm run dev
```

2. Open the local server URL(generally `http://localhost:3000/`) in your browser to view the app.
3. To verify if the RudderStack JavaScript SDK(`rudder-analytics.js`) is loaded correctly, go to your browser's developer tools and check the **Network** tab. The following image highlights this option for the Google Chrome browser:

{{< image src="images/user-guides/browser-network-tab.webp" alt="Chrome Network tab" >}}

4. Click the various links or pages in your app for RudderStack to track these actions.
5. Go to the **Live Events** tab of your JavaScript source in the RudderStack dashboard to check if the events are tracked. Note that you may face a minor delay before the events start showing up in your dashboard.
6. Go to your destination to verify if the events are received successfully.

<br />
