environment-variables
Environment 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
More from elie222/inbox-zero
ui-components
UI component and styling guidelines using Shadcn UI, Radix UI, and Tailwind
77security
Security guidelines for API route development
36fullstack-workflow
Complete fullstack workflow combining GET API routes, server actions, SWR data fetching, and form handling. Use when building features that need both data fetching and mutations from API to UI.
23test-feature
End-to-end feature testing — browser QA, API verification, eval tests, or any combination. Covers browser interactions (via agent-browser CLI), Google Workspace operations (gws CLI), API calls, and LLM eval tests. Can also persist tests as reusable QA flows or eval files.
21testing
Guidelines for testing the application with Vitest, including unit tests, integration tests (emulator), AI tests, and eval suites for LLM features
21project-structure
Project structure and file organization guidelines
21