{
    "componentChunkName": "component---src-templates-article-page-template-js",
    "path": "/ftw/how-to-deploy-ftw-to-production/",
    "result": {"data":{"markdownRemark":{"frontmatter":{"title":"How to deploy FTW to production","slug":"how-to-deploy-ftw-to-production","updated":"2021-01-21T00:00:00.000Z","category":"ftw-hosting","ingress":"This guide describes how to set up a production deployment for Flex Template for Web (FTW).","skills":null},"htmlAst":{"type":"root","children":[{"type":"element","tagName":"h2","properties":{"id":"what-is-a-production-environment","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#what-is-a-production-environment","ariaLabel":"what is a production environment permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"What is a production environment?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"A production environment hosts and executes the code that runs your live\nmarketplace and serves it to the public internet. The version of your\nmarketplace intended for real-life use with real money runs in the\nproduction environment. Typically, alongside your production\nenvironment, you will also host another version of your client\nenvironment: a test environment."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Having several environments is a common practice in software\ndevelopment. The test environment is most often a clone of the\nproduction environment intended for testing new features before being\ndeployed to production. Once a development team deems a feature\nproduction-ready, i.e. fit for a live audience, they can deploy it to\nproduction. A workflow like this helps prevent bugs and unfinished code\nfrom being released to your users."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Sharetribe Flex offers\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.sharetribe.com/docs/concepts/flex-environments/#environment-types","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"three different environment types"}]},{"type":"text","value":"\n– Live, Test, and Dev. You should connect your client application with\nthe corresponding marketplace environment, i.e. your client environment\nintended for development should use environment variables that point to\nyour dev environment in Flex."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"More specifically, the workflow recommended with Flex is that you have\nthree deployments of your client application:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"production deployment, connected to your live environment and running\nreal transactions"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"test deployment, connected to your test environment and intended for\npreviewing no-code changes"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"dev deployment, connected to your dev environment and intended for\ntesting and previewing code-level changes."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"We recommend that you keep your production and test deployments\nidentical, so that operators can preview their no-code changes reliably.\nRead more:\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/concepts/flex-environments/#workflow-between-the-three-environments"},"children":[{"type":"text","value":"Flex environments"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"where-to-host-your-application","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#where-to-host-your-application","ariaLabel":"where to host your application permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Where to host your application?"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"There are many hosting providers to choose from when considering where\nto host your marketplace. Our official recommendation is to host your\nmarketplace on Heroku or Render for a hassle-free installation. However,\nyou are free to host your marketplace elsewhere. Flex Templates for Web\n(FTW) should be compatible with any hosting provider as long as they\nallow you to run a Node.js/Express server. Many essential functions in\nFTW rely on a small Node.js/Express server (such as server-side\nrendering, SSO and transitioning privileged transactions). Serverless\nservice providers such as Netlify and Vercel are unsuitable for FTW as\nthey don't allow you to host a server."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"When choosing a hosting provider, you should not only consider the\ncheapest option. Scalability, tools, service-level agreements and\navailable computing resources are examples of factors that should weigh\nin when choosing a hosting provider. It is also possible that hosting\nproviders' prices and services may change over time, e.g.\n"},{"type":"element","tagName":"a","properties":{"href":"https://techcrunch.com/2022/08/25/heroku-announces-plans-to-eliminate-free-plans-blaming-fraud-and-abuse/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Heroku is discontinuing"}]},{"type":"text","value":"\nits popular free tier on October 26th, 2022."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"As of the time of writing, "},{"type":"element","tagName":"a","properties":{"href":"https://www.render.com","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Render"}]},{"type":"text","value":" and\n"},{"type":"element","tagName":"a","properties":{"href":"https://fly.io","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Fly.io"}]},{"type":"text","value":" continue to provide a free tier, which you can\nuse, e.g. to host a test application. You will have to move to a paid\nplan for a production-level deployment to ensure consistent uptime and\ncomputing resources for your marketplace. Other alternatives you can\nlook into include "},{"type":"element","tagName":"a","properties":{"href":"https://aws.amazon.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"AWS"}]},{"type":"text","value":",\n"},{"type":"element","tagName":"a","properties":{"href":"https://cloud.google.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Google Cloud"}]},{"type":"text","value":",\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.digitalocean.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Digital Ocean"}]},{"type":"text","value":" and\n"},{"type":"element","tagName":"a","properties":{"href":"https://azure.microsoft.com/","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Microsoft Azure"}]},{"type":"text","value":". If your deployment\nsolution requires using containers, you can refer to our guide on\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/ftw/run-ftw-with-docker/"},"children":[{"type":"text","value":"running FTW in a Docker container"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"deploying-to-production","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#deploying-to-production","ariaLabel":"deploying to production permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Deploying to production"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"blockquote","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If you are looking to deploy your marketplace on either Heroku or\nRender, please read our detailed deployment guides for both\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/ftw/how-to-deploy-ftw-to-heroku/"},"children":[{"type":"text","value":"Heroku"}]},{"type":"text","value":" and\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/tutorial/deploy-to-render/#deploy-to-render"},"children":[{"type":"text","value":"Render"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Deploying your marketplace to production is a three-step process:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"#environment-variables"},"children":[{"type":"text","value":"Set environment variables"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"#building-the-app"},"children":[{"type":"text","value":"Build the app"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"#starting-the-app"},"children":[{"type":"text","value":"Run the node server"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"environment-variables","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#environment-variables","ariaLabel":"environment variables permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Environment variables"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"For a full list of possible environment variables, see the\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/ftw/ftw-env/"},"children":[{"type":"text","value":"FTW Environment configuration variables"}]},{"type":"text","value":" reference for\nmore information. To deploy your marketplace, you need to add at least\nthe following variables:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"NODE_ENV"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Use the value 'production'."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"PORT"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"You must set a port if the production environment does not set one by\ndefault. Heroku and Render define a port automatically."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"REACT_APP_SHARETRIBE_SDK_CLIENT_ID"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Your client ID. You can find it in\n"},{"type":"element","tagName":"a","properties":{"href":"https://flex-console.sharetribe.com/applications","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Flex Console"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"SHARETRIBE_SDK_CLIENT_SECRET"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Your client secret. You can find it in\n"},{"type":"element","tagName":"a","properties":{"href":"https://flex-console.sharetribe.com/applications","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"Flex Console"}]},{"type":"text","value":"."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"REACT_APP_STRIPE_PUBLISHABLE_KEY"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Stripe publishable API key for generating tokens with Stripe API. You\nfind it on the Stripe\n"},{"type":"element","tagName":"a","properties":{"href":"https://dashboard.stripe.com/account/apikeys","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"API keys"}]},{"type":"text","value":" page. You will\nalso need to add the secret key in Flex Console."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"REACT_APP_MAPBOX_ACCESS_TOKEN"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"If using Mapbox, you will need to define this environment variable. Sign\nup for Mapbox and go to the\n"},{"type":"element","tagName":"a","properties":{"href":"https://www.mapbox.com/account/access-tokens","target":"_blank","rel":["noopener","noreferrer"]},"children":[{"type":"text","value":"account page"}]},{"type":"text","value":". Then click\non "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"Create access token"}]},{"type":"text","value":". See the\n"},{"type":"element","tagName":"a","properties":{"href":"/docs/legacy/ftw/how-to-set-up-mapbox-for-ftw/"},"children":[{"type":"text","value":"How to set up Mapbox for FTW"}]},{"type":"text","value":" guide\nfor more information."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"REACT_APP_CANONICAL_ROOT_URL"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This is the canonical root URL of the marketplace. For example:\n"},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"https://the-name-of-your-app.herokuapp.com"}]},{"type":"text","value":". FTW uses the canonical\nroot URL for social media sharing and SEO optimization."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"element","tagName":"strong","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"REACT_APP_SHARETRIBE_MARKETPLACE_CURRENCY"}]}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"This is the currency your marketplace uses formatted in the Marketplace\nas ISO 4217 currency code. For example, USD, EUR, CAD, AUD, etc."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"building-the-app","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#building-the-app","ariaLabel":"building the app permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Building the app"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Running the following command builds the app for production to the build\nfolder. It correctly bundles React in production mode and optimizes the\nbuild for the best performance."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" build"}]}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"After this, your app is ready to be deployed."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{"id":"start-the-server","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#start-the-server","ariaLabel":"start the server permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Start the server"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"To start the server, you need to run:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"div","properties":{"className":["gatsby-highlight"],"dataLanguage":"bash"},"children":[{"type":"element","tagName":"pre","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"code","properties":{"className":["language-bash"]},"children":[{"type":"element","tagName":"span","properties":{"className":["token","function"]},"children":[{"type":"text","value":"yarn"}]},{"type":"text","value":" start"}]}]}]}],"data":{"quirksMode":false}},"headings":[{"value":"What is a production environment?","depth":2},{"value":"Where to host your application?","depth":2},{"value":"Deploying to production","depth":2},{"value":"Environment variables","depth":3},{"value":"Building the app","depth":3},{"value":"Start the server","depth":3}]}},"pageContext":{"slug":"how-to-deploy-ftw-to-production","category":"ftw-hosting"}},
    "staticQueryHashes": ["3794076007","439097193","717698143"]}