.env file at the root of your monorepo.
Required Variables
Nessie API (Banking Data)
Capital One Nessie API key for accessing demo banking data. Get your key at nessieisreal.com.
Base URL for the Nessie API. Defaults to the public Nessie endpoint.
Google Gemini (AI Goal Parsing)
Google Gemini API key for natural language goal parsing, narrative generation, and conversational AI. Get your key from Google AI Studio.Used for:
- Parsing user goals from plain English (“Save $50k for a house in 3 years”)
- Generating personalized financial narratives
- Powering voice conversation features
- Creating actionable recommendations
ElevenLabs (Voice Narration)
ElevenLabs API key for text-to-speech voice narration and speech-to-text transcription. Get your key at elevenlabs.io.Optional - The app works without voice features if this is not set.
Voice ID for narration. Available options:
josh- Friendly, energetic (default)adam- Deep, authoritativerachel- Warm, professionalbella- Soft, reassuringantoni- Confident, punchydomi- Strong, bold
Plaid (Real Bank Connectivity)
Plaid client ID for connecting real bank accounts. Get credentials at plaid.com/developers.
Plaid secret key corresponding to your client ID.
Plaid environment. Options:
sandbox- Testing with fake datadevelopment- Testing with real credentialsproduction- Live data
Plaid is optional. The app can use Nessie demo data if Plaid is not configured.
Optional Variables
OpenAI (Alternative to Gemini)
OpenAI API key (used by the Python simulation layer for enhanced analysis). Get your key at platform.openai.com.
Server Configuration
Port for the Express API server.
API base URL accessible from the Next.js frontend. Must be prefixed with
NEXT_PUBLIC_ to be available in the browser.Complete .env Template
Security Best Practices
Use .env.example for templates
Create a
.env.example file with placeholder values to commit to your repository:Use different keys per environment
Use separate API keys for development, staging, and production environments.