🥟 Agent-ergonomic opinionated Bun template
Key Features • Quick Start • Configuration • Credits • About the Core Contributors
| Feature | Description |
|---|---|
| Bun runtime | Fast TypeScript execution and package management |
| Zod config | YAML + env var config with Zod schema validation |
| Biome | Linting and formatting |
| knip | Dead code and unused dependency detection |
| dependency-cruiser | Module boundary enforcement |
| jscpd | Duplicate code detection |
| prek | Pre-commit hooks |
| Fumadocs | Documentation site (Next.js) |
| Vite + React | Frontend app |
# Interactive onboarding
make onboard
# Install dependencies and run
make all
# Format code
make fmt
# Run tests
make test
# Run all CI checks (lint, deadcode, typecheck, etc.)
make ciConfig is loaded from YAML with environment variable overrides:
import { globalConfig } from "@/config";
// Access config values from src/config/global-config.yaml
globalConfig.exampleParent.exampleChild;
// Access secrets from .env
globalConfig.openaiApiKey;
// Feature flags (overridable via FEATURES__FLAG_NAME=true)
globalConfig.features.newUi;Precedence (highest to lowest):
- Environment variables (with
__for nesting, e.g.DEFAULT_LLM__DEFAULT_MAX_TOKENS=50000) .global-config.yaml(local override, git-ignored)src/config/production-config.yaml(ifDEV_ENV=prod)src/config/global-config.yaml(base config)
- Bun - JavaScript runtime and package manager
- Biome - Linter and formatter
- Zod - TypeScript schema validation
- prek - Pre-commit hook framework
- Fumadocs - Documentation framework
Made with contrib.rocks.

