better-env

Bessere Verwaltung von Umgebungsvariablen für Agenten und Menschen mit vollständiger Typsicherheit, CLI-basierter Synchronisation entfernter Umgebungen und Umgebungsvalidierung.

npx skills add https://github.com/neondatabase/better-env --skill better-env

Work With better-env In A Repo

Type-safe environment config modules

Follow this best practice to manage environment variables in TypeScript applications with full type safety and clear server/public boundaries.

better-env exports configSchema to define typed env modules and recommends placing them in feature-level config.ts files (for example src/lib/auth/config.ts and src/lib/database/config.ts).

Learn more:

  • references/config-schema.md

Validate existence of all env variables in the current environment

Run env validation early so missing or invalid values fail fast before dev, build, or deploy steps.

better-env validate --environment <name> loads .env* files with Next.js semantics, discovers src/lib/*/config.ts modules, and checks every declared variable from your configSchema modules.

If your dotenv files intentionally include keys that are not referenced by config modules, add per-env suppressions in better-env.ts:

environments.<env>.ignoreUnused: string[]

These suppress only the selected local environment during validate. Adapter defaults are merged in automatically; for Vercel, VERCEL_OIDC_TOKEN is ignored by default in development, preview, and production.

Learn more:

  • references/env-validation.md

Configure runtime syncing between local files and hosted providers

Use runtime configuration to keep local dotenv targets aligned with provider environments while preserving safe defaults.

Create better-env.ts with defineBetterEnv(...) and an adapter (vercelAdapter, netlifyAdapter, railwayAdapter, cloudflareAdapter, flyAdapter, or convexAdapter).

For a standard Vercel setup, prefer the minimal config:

export default defineBetterEnv({ adapter: vercelAdapter() });

Do not add an environments block when it only duplicates adapter defaults. Add environments only when you intentionally need custom mappings, custom env files, or per-environment ignoreUnused behavior.

Learn more:

  • references/config.md
  • references/runtime.md

Use the CLI for day-to-day environment operations

The CLI gives a consistent workflow for initialization, sync, validation, and remote variable management, which is great for local development and CI automation.

Choose the command runner to match the repo:

  • Use npx in npm/pnpm-based repos (for example lockfiles like package-lock.json or pnpm-lock.yaml and scripts run via npm/pnpm).
  • Use bunx in Bun-based repos (for example bun.lock and scripts run via bun).
  • Keep commands aligned with the project's existing package manager/runtime conventions; do not mix runners unless the repo already does.

Recommended flow in a repo:

  1. Run better-env init once to verify adapter prerequisites.
  2. Run better-env pull --environment <name> to sync local env files.
  3. Run better-env validate --environment <name> before app startup/build.
  4. Use add, upsert, update, delete, and load for remote env changes.

Choose command behavior intentionally:

  • upsert for idempotent automation and scripts
  • add when duplicate keys should fail
  • update when missing keys should fail
  • delete to remove remote keys
  • load for batch updates from dotenv files

Learn more:

  • references/cli.md
  • references/vercel-adapter.md

Mehr Skills von neondatabase

claimable-postgres
neondatabase
Sofort einsatzbereite Postgres-Datenbanken für lokale Entwicklung, Demos, Prototyping und Testumgebungen. Kein Konto erforderlich. Datenbanken laufen nach 72 Stunden ab, sofern sie nicht an ein Neon-Konto gebunden werden.
neon
neondatabase
Überblick über die Neon-Plattform für Apps und Agents, einschließlich Postgres, Auth, Data API und der neuen Dienste: Object Storage, Compute Functions und AI Gateway. Verwenden, wenn "Neon" erwähnt wird, für einen Überblick über die Arbeit mit Neon und die ersten Schritte. Andernfalls sind die einzelnen Funktionen die Auslöser: "Object Storage" oder "S3-kompatibler Speicher", "Serverless Functions", "Background Jobs" oder "Code in der Nähe meiner Datenbank ausführen", "AI Gateway", "LLM Proxy", "Model Routing" oder "ein LLM aufrufen" →...
apidatabasedevelopment
plugin-manager
neondatabase
Verwalte die Plugin-Struktur und -Konfiguration für dieses Repository sowohl in Cursor als auch in Claude Code. Verwende dies beim Erstellen, Aktualisieren oder Überprüfen von Plugin-Ordnern…
skill-creator
neondatabase
Leitfaden zur Erstellung effektiver Skills. Dieser Skill sollte verwendet werden, wenn Benutzer einen neuen Skill erstellen (oder einen bestehenden Skill aktualisieren) möchten, der Claudes…
using-neon
neondatabase
Leitfäden und Best Practices für die Arbeit mit Neon Serverless Postgres. Behandelt den Einstieg, lokale Entwicklung mit Neon, Auswahl einer Verbindungsmethode, Neon…
neon-js-react
neondatabase
Richtet das vollständige Neon SDK mit Authentifizierung UND Datenbankabfragen in React-Apps (Vite, CRA) ein. Erstellt einen typisierten Client, generiert Datenbanktypen und konfiguriert…
postgres-best-practices
neondatabase
Best Practices und Richtlinien für die Arbeit mit Postgres. Behandelt Schema-Design, Indexierungsstrategien, Query-Optimierung, Migrationen und häufige Fallstricke. Verwenden…
neon-postgres-egress-optimizer
neondatabase
Führen Sie den Benutzer durch die Diagnose und Behebung von anwendungsseitigen Abfragemustern, die zu übermäßigem Datentransfer (Egress) aus seiner Postgres-Datenbank führen. Die meisten hohen Egress-Kosten entstehen dadurch, dass die Anwendung mehr Daten abruft, als sie tatsächlich nutzt.