Install
npx skillscat add elie222/inbox-zero/environment-variables Install via the SkillsCat registry.
SKILL.md
Environment Variables
This is how we add environment variables to the project:
Add to
.env.example:NEW_VARIABLE=value_exampleAdd to
apps/web/env.ts:// For server-only variables server: { NEW_VARIABLE: z.string(), } // For client-side variables client: { NEXT_PUBLIC_NEW_VARIABLE: z.string(), } experimental__runtimeEnv: { NEXT_PUBLIC_NEW_VARIABLE: process.env.NEXT_PUBLIC_NEW_VARIABLE, }For client-side variables:
- Must be prefixed with
NEXT_PUBLIC_ - Add to both
clientandexperimental__runtimeEnvsections
- Must be prefixed with
Add to
turbo.jsonunderglobalDependencies:{ "tasks": { "build": { "env": [ "NEW_VARIABLE" ] } } }
examples:
input: |
Adding a server-side API key
.env.example
API_KEY=your_api_key_here
env.ts
server: {
API_KEY: z.string(),
}turbo.json
"build": {
"env": ["API_KEY"]
}
output: "Server-side environment variable properly added"input: |
Adding a client-side feature flag
.env.example
NEXT_PUBLIC_FEATURE_ENABLED=false
env.ts
client: {
NEXT_PUBLIC_FEATURE_ENABLED: z.coerce.boolean().default(false),
},
experimental__runtimeEnv: {
NEXT_PUBLIC_FEATURE_ENABLED: process.env.NEXT_PUBLIC_FEATURE_ENABLED,
}turbo.json
"build": {
"env": ["NEXT_PUBLIC_FEATURE_ENABLED"]
}
output: "Client-side environment variable properly added"
references:
- apps/web/env.ts
- apps/web/.env.example
- turbo.json