create-etc-stack
v0.2.4
Published
Quickly scaffold new, opinionated project structures suitable for medium-sized applications, enforcing strong specifications and best practices from the start.
Downloads
122
Maintainers
Readme
create-etc-stack
Quickly scaffold new, opinionated project structures suitable for medium-sized applications, enforcing strong specifications and best practices from the start.
Features
- Rapid Setup — Get your project running in seconds with interactive prompts
- Opinionated Templates — Start with well-defined structures, configs, and tooling baked in
- Embedded Templates — All templates are bundled into the CLI at build time — no filesystem dependency at runtime
- Standalone Binary — Ship as a single executable via
bun build --compile, zero runtime dependencies - Monorepo Support — Electron template scaffolds a full Turbo + pnpm monorepo with automatic
@scopereplacement
Getting Started
# npm
npx create-etc-stack@latest my-app
# pnpm
pnpm create etc-stack@latest my-app
# bun
bun create etc-stack my-app
# yarn
yarn create etc-stack my-app
# or use the alias
npx cva@latest my-appYou can also specify a template directly:
npx create-etc-stack@latest my-app -t electron-vite-shadcn-tsAvailable Templates
Electron
| Template | Stack |
| ------------------------- | --------------------------------------------------------------------------------------------------------------- |
| electron-vite-shadcn-ts | Electron 41 + Vite + React 19 + TanStack Router/Query + shadcn/ui (base-mira) + Tailwind CSS 4 + Turbo monorepo |
React
| Template | Stack |
| ------------------------- | --------------------------------------------------- |
| react-ts-biome-tailwind | React Router v7 + TypeScript + Biome + Tailwind CSS |
| React Router ↗ | npm create react-router@latest (custom command) |
| TanStack Router ↗ | npm create tsrouter-app@latest (custom command) |
Astro
Astro templates are planned — contributions welcome.
Building from Source
# Install dependencies
bun install
# Build for npm (vp pack)
bun run build
# Build standalone binary (bun compile)
bun run build:compile
# Development (watch mode)
bun run dev
# Lint & format
bun run check
bun run fmtBuild Outputs
| Command | Output | Size | Use case |
| ----------------------- | ------------------ | ------- | ----------------- |
| bun run build | dist/index.mjs | ~135 KB | npm publish |
| bun run build:compile | create-etc-stack | ~62 MB | Standalone binary |
How it Works
Templates are embedded into the CLI bundle at build time:
scripts/embed-templates.tsreads alltemplate-*directories and generatessrc/generated/templates.ts- Vite+ (
vp pack) bundles everything into a single file via tsdown - At runtime, the CLI writes files from embedded data — no template directories needed on disk
This architecture enables both npm distribution and standalone binary distribution from the same codebase.
Tech Stack
- Toolchain — Vite+ (unified dev/build/lint/format/pack)
- Bundler — tsdown via
vp pack(powered by Rolldown) - Binary — Bun single-file executable
- Prompts — @clack/prompts
- Templates — Embedded at build time, supports text + binary files
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
License
MIT
