Skip to content

Latest commit

 

History

2,253 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArkEnv Logo

ArkEnv

Typesafe environment variables with ArkType, Zod, or Valibot.


Test Status ArkType Ecosystem Pullfrog License GitHub stars

Docs   •   𝕏   •   StackBlitz


ArkEnv v1 is in RC. Read the release notes and migration guide.





What is ArkEnv?

Define your environment variables with a schema. ArkEnv gives you a strongly typed, validated env object you can use everywhere.

ArkType
import arkenv from "@arkenv/core";

export const env = arkenv({
  DATABASE_URL: "string.url",
  PORT: "0 <= number.integer <= 65535 = 3000",
  CI: "boolean = false",
});
Zod
import arkenv from "@arkenv/standard";
import * as z from "zod";

export const env = arkenv({
  DATABASE_URL: z.url(),
  PORT: z.int().min(0).max(65535).default(3000),
  CI: z.boolean().default(false),
});
Valibot
import arkenv from "@arkenv/standard/valibot";
import * as v from "valibot";

export const env = arkenv({
  DATABASE_URL: v.pipe(v.string(), v.url()),
  PORT: v.optional(
    v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(65535)),
    3000,
  ),
  CI: v.optional(v.boolean(), false),
});

ArkEnv Instead of
Your existing TypeScript validator A custom .env.schema DSL
arkenv({ ... }) A hand-rolled wrapper around Zod
One typed env object Casting process.env

Features

  • Zero runtime dependencies
  • Works in Node.js and all modern browsers
  • Tiny: under 3 kB core bundle (gzipped)
  • Use your existing TypeScript validator
  • No boilerplate
  • Automatic coercion
  • Fail-fast startup errors with redacted values
  • One env object: Next.js, Nuxt, Vite, TanStack Start, SolidStart, and Bun

Getting started

npx arkenv init

The CLI walks you through setup for an existing project, or starts a new one from an example.


Supporting ArkEnv

If you love ArkEnv, you can support the project by starring it on GitHub!

You are also welcome to contribute to the project and join the wonderful people who have contributed:

Yam C Borodetsky
Yam C Borodetsky

💻 💬 🤔 🎨 📖 🐛 💡 🚇 🔌 🔧 ⚠️
Aruay Berdikulova
Aruay Berdikulova

💻 🤔
David Blass
David Blass

🤔 🧑‍🏫 💬
Andrei Danciu
Andrei Danciu

🔌 💻
Joakim Carlstein
Joakim Carlstein

💻 🔌 📖
RoomWithOutRoof
RoomWithOutRoof

📖 🔧
Abhimanyu Tiwari
Abhimanyu Tiwari

💻 📖 💡 ⚠️ 🔧

We acknowledge the various projects and people that inspired ArkEnv.

About

⛯ Typesafe environment variables with ArkType, Zod, or Valibot.

Topics

Resources

Contributing

Stars

144 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages