Everything you need for config management
Define once in TypeScript, generate everywhere. Type-safe environment variables with validation.
TypeScript-Native
Define your configuration once in TypeScript with full type safety and IntelliSense support. No more guessing what environment variables exist.
Zod Validation
Built-in runtime validation using Zod schemas. Catch configuration errors early with detailed error messages and type coercion.
Multiple Formats
Generate .env, JSON, YAML, TOML, and custom template files from a single source. Keep everything in sync automatically.
Smart Commands
Intelligent command system with TypeScript support. Run validated commands with proper output and beautiful themes.
Lightning Fast
Generate 11,000 config files (more than you ever need) in 3 seconds. Built for speed without sacrificing developer experience.
Language Agnostic
Works with any project: Python APIs, Go microservices, Rust backends, Java apps, PHP websites. Universal config management.
Simple, Powerful Configuration
Replace scattered config files with type-safe TypeScript configuration. Define your environment variables once with validation, then generate multiple formats automatically.
import { defineConfig, loadEnv, env, json } from "@axonotes/axogen";
import * as z from "zod";
const envVars = loadEnv(
z.object({
DATABASE_URL: z.url(),
PORT: z.coerce.number().default(3000),
NODE_ENV: z.enum(["development", "production"]).default("development"),
})
);
export default defineConfig({
targets: {
app: env({
path: "app/.env",
variables: {
DATABASE_URL: envVars.DATABASE_URL,
PORT: envVars.PORT,
},
}),
config: json({
path: "config.json",
variables: {
database: { url: envVars.DATABASE_URL },
server: { port: envVars.PORT },
},
}),
},
commands: {
start: `npm start --port ${envVars.PORT}`,
},
});