About environment-variables
A development skill documenting how to add environment variables to a project. It covers example values, server and client schemas, and build configuration.
Key features
- 01Add variables to .env.example
- 02Define server and client schemas in env.ts
- 03Configure client runtime environment values
- 04Register build environment dependencies in turbo.json
Use cases
- 01Adding a server-side API key
- 02Adding a client-side feature flag
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ elie222/ inbox-zero --skill environment-variablesAfter installing, type/environment-variablesin Claude Code to confirm it loaded.
Details
From the project READMEEnvironment Variables
This is how we add environment variables to the project:
-
Add to
.env.example:NEW_VARIABLE=value_example -
Add 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