Skip to content

Instantly share code, notes, and snippets.

@CiprianSpiridon
Created August 5, 2025 16:36
Show Gist options
  • Save CiprianSpiridon/e66ce10f74e5d65f8a474d0ff435bd0c to your computer and use it in GitHub Desktop.
Save CiprianSpiridon/e66ce10f74e5d65f8a474d0ff435bd0c to your computer and use it in GitHub Desktop.
{
"packages": {
"apps/web": {
"outputFile": "apps/web/.env.local",
"variables": [
"database.*",
"auth.*",
"payments.*",
"email.RESEND_API_KEY",
"analytics.*",
"ai.*",
"storage.*",
"development.*",
"public.*"
],
"description": "Main web application - needs most services"
},
"apps/admin": {
"outputFile": "apps/admin/.env.local",
"variables": [
"database.*",
"auth.NEXTAUTH_URL",
"auth.NEXTAUTH_SECRET",
"auth.GOOGLE_CLIENT_ID",
"auth.GOOGLE_CLIENT_SECRET",
"analytics.NEXT_PUBLIC_POSTHOG_KEY",
"analytics.NEXT_PUBLIC_POSTHOG_HOST",
"development.*",
"public.NEXT_PUBLIC_APP_NAME",
"public.NEXT_PUBLIC_API_URL",
"public.NEXT_PUBLIC_SUPABASE_URL",
"public.NEXT_PUBLIC_SUPABASE_ANON_KEY"
],
"description": "Admin dashboard - limited auth and analytics"
},
"apps/worker": {
"outputFile": "apps/worker/.env",
"variables": [
"database.DATABASE_URL",
"database.DIRECT_URL",
"email.*",
"payments.STRIPE_SECRET_KEY",
"payments.STRIPE_WEBHOOK_SECRET",
"ai.*",
"storage.*",
"development.NODE_ENV"
],
"description": "Background worker - server-side only"
},
"packages/db": {
"outputFile": "packages/db/.env",
"variables": [
"database.*"
],
"description": "Database package - Prisma and Supabase"
},
"packages/auth": {
"outputFile": "packages/auth/.env",
"variables": [
"database.SUPABASE_URL",
"database.SUPABASE_ANON_KEY",
"database.SUPABASE_SERVICE_ROLE_KEY",
"auth.*"
],
"description": "Authentication package - auth providers"
},
"packages/payments": {
"outputFile": "packages/payments/.env",
"variables": [
"payments.*"
],
"description": "Payments package - all payment providers"
},
"packages/storage": {
"outputFile": "packages/storage/.env",
"variables": [
"storage.*"
],
"description": "Storage package - multi-provider cloud storage"
},
"packages/analytics": {
"outputFile": "packages/analytics/.env",
"variables": [
"analytics.*"
],
"description": "Analytics package - PostHog, GA, Sentry"
},
"packages/posthog": {
"outputFile": "packages/posthog/.env",
"variables": [
"analytics.NEXT_PUBLIC_POSTHOG_KEY",
"analytics.NEXT_PUBLIC_POSTHOG_HOST"
],
"description": "PostHog package - PostHog specific"
},
"packages/llm": {
"outputFile": "packages/llm/.env",
"variables": [
"ai.*"
],
"description": "LLM package - AI service providers"
},
"packages/search": {
"outputFile": "packages/search/.env",
"variables": [
"search.*"
],
"description": "Search package - Algolia and other search"
},
"packages/waitinglist": {
"outputFile": "packages/waitinglist/.env",
"variables": [
"database.SUPABASE_URL",
"database.SUPABASE_ANON_KEY",
"email.RESEND_API_KEY"
],
"description": "Waiting list package - basic database and email"
},
"packages/email": {
"outputFile": "packages/email/.env",
"variables": [
"email.EMAIL_FROM",
"email.RESEND_API_KEY",
"email.SENDGRID_API_KEY",
"email.MAILGUN_API_KEY",
"email.MAILGUN_DOMAIN",
"email.POSTMARK_API_KEY",
"email.SMTP_HOST",
"email.SMTP_PORT",
"email.SMTP_USER",
"email.SMTP_PASS"
],
"description": "Email package - multi-provider email system"
},
"packages/affiliate": {
"outputFile": "packages/affiliate/.env",
"variables": [
"database.*",
"analytics.NEXT_PUBLIC_POSTHOG_KEY"
],
"description": "Affiliate package - database and tracking"
},
"packages/blog": {
"outputFile": "packages/blog/.env",
"variables": [
"database.*",
"storage.*",
"search.*"
],
"description": "Blog package - content management"
}
},
"validation": {
"required": [
"database.DATABASE_URL",
"auth.NEXTAUTH_SECRET",
"public.NEXT_PUBLIC_APP_NAME"
],
"patterns": {
"database.DATABASE_URL": "^postgresql://",
"auth.NEXTAUTH_URL": "^https?://",
"email.RESEND_API_KEY": "^re_",
"storage.AWS_S3_ENDPOINT": "^https?://",
"storage.CLOUDFLARE_R2_ENDPOINT": "^https?://",
"storage.CLOUDFLARE_R2_PUBLIC_DOMAIN": "^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
}
},
"templates": {
"header": "# This file is auto-generated from env.global.yaml\n# Do not edit manually - use 'pnpm env:sync' to update\n# Generated on: {timestamp}\n",
"section_header": "\n# {section_name}\n",
"missing_var_comment": "# {var_name}= # TODO: Add this variable"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment