In this tutorial, we are going to demonstrate how to deploy a distributed Node.js app at the Edge using Section's Edge Compute Platform.
Before we get into the how-to's, you may be wondering why you would want to deploy your app at the Edge vs. a typical Cloud deployment. Well, the biggest reason is speed. Deploying your app closer to your end users reduces latency - shown to be up to 7x faster than Cloud. Aside from speed, there are additional security and scalability benefits that can be achieved by deploying your applications (or portions of your application) at the Edge.
Let's do some coding!
At the end of this tutorial, you will have:
- A website running as a subdomain at section.dev
- SSL certificates for your website
- Working knowledge of the 
 CLI tool to deploy changes to your appsectionctl
Prerequisites:
- You will need to sign up for a Section account
- Text editor
- Terminal app
- Install the 
 CLI tool (instructions provided below).sectionctl
- Node.js version 10.14 or later
Step 1: Set up the Section CLI tool
After you have created your Section account, download the latest release of 
sectionctlOn Linux, this looks like:
wget https://github.com/section/sectionctl/releases/download/v1.1.0/sectionctl-v1.1.0-linux-amd64.tar.gz
tar zxvf sectionctl-v1.1.0-linux-amd64.tar.gzNext, you'll need to place the executable on your path and make sure that it can be executed.
On Linux, this looks like:
mv sectionctl /usr/local/bin/sectionctl
chmod +x /usr/local/bin/sectionctlNext, configure authentication by running:
sectionctl loginWhen prompted, enter your Section username and password, and security store them where 
sectionctlThe Section CLI is now configured and ready to use.
Step 2: Set up your Node.js application
For this tutorial, we are going to set up a simple NuxtJS app to deploy on Section's Edge.
Note: If you are on Windows, we recommend downloading Git for Windows and use Git Bash that comes with it, which supports the UNIX-specific commands in this tutorial.
Open your terminal, 
cdgit clone https://github.com/section/nodejs-exampleNow, 
cdnodejs-examplecd nodejs-exampleNext, pull down the dependencies and build your app by running:
npm install
npm run-script buildNote: The Section platform expects that you have run both of these commands before you can deploy your app.
Start your app's development server on port 8080 by running:
npm run-script startYou can check to see if it's working by opening http://localhost:8080 in your browser.
Step 3: Deploy your Node.js app
We will now take the example NuxtJS app that we set up in the previous step and deploy it across Section's Edge network.
First, locate your account ID using the following command:
sectionctl accountsThis should return an output similar to this:
| ACCOUNT ID | ACCOUNT NAME                      |
|------------|-----------------------------------|
| 1335       | g9ts24tx7gm8n12b2evf3.section.dev |Use the number value in the account ID column to list your applications:
sectionctl apps list --account-id 1335The output should look similar to this:
| APP ID |    APP NAME                       |
|--------|-----------------------------------|
| 7171   | g9ts24tx7gm8n12b2evf3.section.dev |Note: The app name was automatically generated when you signed up. You will need this name for the final steps.
Next, we will set up the SSL certificate for your domain. (This is a free service provided by Section.)
Run the following command, substituting your account ID and app name:
sectionctl certs renew --account-id 1335 --hostname g9ts24tx7gm8n12b2evf3.section.devWait a few minutes while Section uploads and deploys your Node.js app across the Edge network.
You can now view your app running on Section by navigating to your provided app name.
Congratulations! You have deployed your Node.js app on Section's Edge. Be sure to check out the Traffic Monitor in your Section Console to see how your app is performing across the globe.
To learn more, check out Section Docs and/or contact a Section Edge Solutions Expert.
Previously published at https://www.section.io/docs/getting-started/tutorials/launching-a-nodejs-app/
