Skip to main content

Stop Hunting Through Config Files

TypeScript-native configuration system for any project, any language. Define once, generate everywhere. Type-safe environment variables with Zod validation.

axogen generate
Environment variables validated successfully
Generating configuration files...
Results:
+Generated app
+Generated config
Generation complete! 2 files [4.00ms]
11,000
configs in 3 seconds
100%
type-safe
0
runtime dependencies

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.

Type-safe environment variables
Runtime validation with Zod
Multiple output formats
Secret detection
Try Axogen Now
axogen.config.ts
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}`,
},
});