Introducing Contentstack AI Assistant - our new ChatGPT integrationNew ChatGPT integrationRead more

Build a Marketing App Using Contentstack and React JS

This example marketing website is built using ReactJS framework and Contentstack’s. It uses Contentstack to store and deliver the content of the website.


Here's a quick start guide on how to create a React-based marketing app that uses Contentstack as its CMS.


Note: For this tutorial, we have assumed that you are familiar with Contentstack and React. If not, then please refer to the Contentstack and React for more details.

Here is an overview of the steps involved in creating our React app:

  1. Create and Configure a Stack
  2. Generate Management Token
  3. Import Content Types and Content
  4. Create Delivery Token
  5. Build and Configure the Website
  6. Deploy the Website
  1. Create and Configure a Stack

    A stack holds all the data (entries and assets) that you would need to create a website. Log in to your Contentstack account, and create a new stack. Note down the master language and the stack API key as you will need these in Step 3.

  2. Generate Management Token

    Management Tokens provide you with read-write access to your stack resources. Create a Management token as shown in the documentation. Note down the Management token and the stack API key. You will need these to import content into your stack in the next step

  3. Import Content Types and Content

    For quick setup, we have already created a zip file that contains the required content types, content (entries and assets), languages, and environments that you need to get the website up and running.

    You can directly import these resources into your stack by using our command-line interface (CLI):

    1. Install the CLI:

      npm install -g @contentstack/cli
    2. Use the Add Token command to add the management token to this CLI session with an alias:

      csdx auth:tokens:add --alias <alias_for_token> --stack-api-key <API_key_of_stack> --token <value_of_management_token> --management
      For example:
      csdx auth:tokens:add --alias mytoken --stack-api-key blt1d********** --token cs57e********** --management
    3. Download the content zip file, extract it, and note down its path to use in the next step.

    4. In the Import content command, pass the management token along with the content location (noted in the above step) to import the content:

      csdx cm:stacks:import --alias <management_token_alias> --data-dir "<path_where_content_folder_is_stored>"
      For example:
      csdx cm:stacks:import --alias mytoken --data-dir "C:\Users\Name\Desktop\cli\content\contents"

    This will import all the assets, content types, entries, languages, and environments into your stack, and then automatically publish the imported entries and assets to all the environments.

  4. Create Delivery token

    A delivery token lets you fetch the published content of an environment. You can create a delivery token for the “development” environment that we will use in the next step. Later, while deploying your site, you can create tokens for other environments, such as “production.”

  5. Build and Configure the Website

    Download the website code.

    Navigate to the root folder, create a configuration file named .env.development.local, and provide your credentials:

    REACT_APP_APIKEY = {api_key_of_your_stack}
    REACT_APP_DELIVERY_TOKEN = {delivery_token_of_the_environment}
    REACT_APP_ENVIRONMENT = {environment_name}
    REACT_APP_REGION = eu //Compulsory param for EU users. NA users need not add this param.

    Note: To use the European region, set REGION=eu

    Fire up your terminal, point it to your project location, and run the following commands:

    npm install
    npm start

    Note: This will work on Node.js version 6.10.0 or above.

    That’s it!

    You can now view the website at http://localhost:3000/. And you also have the stack that has all the content and resources for the website. Try experimenting by creating new entries and publishing on the “development” environment. You should be able to see the changes on the website at localhost.
  6. Deploy the Website

    The easiest and the quickest way to deploy a React website on production is to use Vercel. You need a Vercel account before you start deploying.

    Note: During deployment, for the REACT_APP_REGION variable, pass the value as follows:
    North America: us
    Europe: eu

Was this article helpful?