Skip to main content
GLAC Quote Tool reads its configuration from environment variables at build time. You can set these in a .env file at the root of the project during local development, or through your hosting platform’s environment settings (for example, Netlify’s “Environment variables” panel or Vercel’s project settings). Any variable prefixed with VITE_ is bundled into the frontend at build time and accessible in the browser.

Required variables

These two variables must be set for the tool to connect to Supabase and exit Demo Mode.
VITE_SUPABASE_URL
string
required
The URL of your Supabase project. Find this in your Supabase dashboard under Project Settings → API → Project URL.Example: https://your-project-ref.supabase.co
VITE_SUPABASE_ANON_KEY
string
required
Your Supabase project’s anonymous (publishable) key. This key is safe to include in frontend code — it is not a secret. Find it in Project Settings → API → Project API Keys → anon / public.Example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

App identity variables

VITE_APP_NAME
string
default:"GLAC Quote Tool"
The display name shown in the browser tab and app header.
VITE_APP_URL
string
default:"window.location.origin"
The public URL of your deployed app. This value is used to build the OAuth redirect URI for Zoho. Set it explicitly when deploying to a fixed domain.Example: https://quotes.globallinkconsulting.sg

Company branding variables

VITE_COMPANY_NAME
string
default:"Global Link Asia Consulting"
The company name printed on generated quote PDFs and in the email body.
VITE_COMPANY_EMAIL
string
default:"info@globallinkconsulting.sg"
The contact email address shown on generated quotes.

Access control variables

VITE_ADMIN_EMAILS
string
A comma-separated list of email addresses that have admin privileges. Admin users can view all quotes across all consultants. Regular users only see their own quotes.Example: admin@glac.com,steven@globallinkconsulting.sgIf this variable is not set, the tool defaults to admin@glac.com,steven@globallinkconsulting.sg.

Integration variables

VITE_ZOHO_CLIENT_ID
string
The OAuth Client ID for your Zoho Mail integration. Obtain this from the Zoho Developer Console after creating a Web Based OAuth app. This value is safe to include in your .env file — the Client Secret must never be stored here.Example: 1000.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
VITE_VTIGER_URL
string
The base URL of your VTiger CRM instance. Setting this variable enables the VTiger client search in Section 0 of the quote form. If left empty, VTiger results will not appear.Example: https://crm.yourcompany.com

Sample .env file

Copy the following into a file named .env at the root of the project and fill in the values for your environment.
# Supabase — required to exit Demo Mode
VITE_SUPABASE_URL=https://your-project-ref.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-here

# App identity
VITE_APP_NAME=GLAC Quote Tool
VITE_APP_URL=https://quotes.globallinkconsulting.sg

# Company branding (shown on quote PDFs)
VITE_COMPANY_NAME=Global Link Asia Consulting
VITE_COMPANY_EMAIL=info@globallinkconsulting.sg

# Admin access — comma-separated list of admin email addresses
VITE_ADMIN_EMAILS=admin@glac.com,steven@globallinkconsulting.sg

# Zoho Mail OAuth (Client ID only — Client Secret goes in Supabase secrets)
VITE_ZOHO_CLIENT_ID=

# VTiger CRM (URL only — username and access key go in Supabase secrets)
VITE_VTIGER_URL=
The VITE_ prefix is required for all variables that the frontend needs to read. Variables without this prefix are not available in the browser.Sensitive credentials — such as the Zoho Client Secret, VTiger access key, and Jira API token — must never be stored in .env or set as VITE_ variables. Store those as Supabase Edge Function secrets instead, where they stay server-side and are never exposed to users.