Configure TwinMind for development, staging, and production environments with proper isolation, environment-aware client factory, validation scripts, config promotion workflows, and feature flags.
Define EnvironmentConfig interface covering TwinMind settings (API key, model, features, debug mode), rate limits, concurrency, daily quotas, and integration settings (Slack channel, calendar, email). Configure dev (ear-2, 30/min, quota 10), staging (ear-3, 60/min, quota 50), and production (ear-3, 300/min, unlimited).
Create .env.development, .env.staging, .env.production with environment-specific API keys and webhook secrets. Commit .env.example with empty values.
Build getTwinMindClient() factory that creates and caches clients per environment, automatically selecting the right API key and config.
Create validation script that checks required environment variables, API key format (starts with tm_sk_), and API connectivity for each environment.
Build promoteConfig() script to promote feature settings, webhook events, and integration configs from dev -> staging -> production while preserving environment-specific values.
Implement FeatureFlags with environment overrides: beta features in dev only, diarization off in dev (faster), email follow-ups only in production, audio duration limits per environment.
See detailed implementation for complete environment configs, client factory, validation scripts, promotion workflow, and feature flag code.
| Issue | Cause | Solution |
|---|---|---|
| Wrong API key used | Env mismatch | Validate before deploy |
| Feature not available | Wrong environment | Check feature flags |
| Config not loading | Missing file | Verify config paths |
| Promotion failed | Schema mismatch | Validate configs first |
Basic usage: Apply twinmind multi env setup to a standard project setup with default configuration options.
Advanced scenario: Customize twinmind multi env setup for production environments with multiple constraints and team-specific requirements.
| Setting | Development | Staging | Production |
|---|---|---|---|
| Model | ear-2 | ear-3 | ear-3 |
| Diarization | Off | On | On |
| Debug mode | On | On | Off |
| Rate limit | 30/min | 60/min | 300/min |
| Email sending | Off | Off | On |
For monitoring setup, see twinmind-observability.