.env file

This file holds all configuration specific to the deployment (be that locally, Vercel, or multiple instances). Copy this from .env.example to .env.development to use locally:

# Sanity Backend
SANITY_API_TOKEN=""
SANITY_PROJECT_ID=""
SANITY_DATASET="production"
SANITY_USE_CDN="false"
SANITY_API_VERSION="2023-06-21"
SANITY_WEBHOOK_SECRET="sprout-isr-revalidate"

# Sanity Frontend
NEXT_PUBLIC_SANITY_PROJECT_ID=""
NEXT_PUBLIC_SANITY_DATASET="production"
NEXT_PUBLIC_SANITY_API_VERSION="2023-06-21"

# Frontend
NEXT_PUBLIC_SITE_ROOT="<http://localhost:3000>"
NEXT_PUBLIC_GA4_PROPERTY=""
NEXT_PUBLIC_FACEBOOK_PIXEL=""

# Shopify
NEXT_PUBLIC_SHOPIFY_STOREFRONT_API_URL="<https://store.sprout.store/api/2024-04/graphql.json>"
NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN=""
SHOPIFY_WEBHOOK_SIGNATURE=""

# Preview
NEXT_PUBLIC_CMS_PREVIEW_URL="<http://localhost:3000/api/preview>"
NEXT_PUBLIC_CMS_PREVIEW_TOKEN="sprout-cms-preview"

config.js file

This is where you configure your store, with each value documented on where it’s used. This includes things like siteName and siteUrl, but also design system configuration.

export default {
    // URL of publically hosted site
    siteUrl: process.env.NEXT_PUBLIC_SITE_ROOT,
    // Site title for SEO tags
    siteName: 'Sprout',
    // Short description for SEO tags
    siteDescription: '',
    // Meta keywords for SEO tags
    siteKeywords: '',
    // Twitter info for SEO
    siteTwitterAccount: '@sprout.store',
    
    // How much space you would like for #hash scrolls
    // at the top. Generally this is the header + some buffer
    scrollBuffer: 100,
    // How many days should the site password last
    passwordDuration: 60,
    // Default Shopify country for currency
    defaultCountryId: 'US',
    // Various cookie keys for store
    cookieCartKey: 'sprout_cart_id',
    cookiePasswordKey: 'sprout_password',
    cookieCookieDisclosureKey: 'sprout_cookie_disclosure',
    cookieCountryKey: 'sprout_country',
};