Initialize a new repository with standard tooling (JS/TS or Python).
Initialize a new repository with a comprehensive, production-grade tooling setup.
Core Stack:
Directory Structure:
project/
├── apps/
│ └── web/ # Next.js app (if applicable)
├── packages/
│ ├── eslint-config/ # Shared ESLint configs
│ ├── tsconfig/ # Shared TypeScript configs
│ └── ui/ # Shared components (if applicable)
├── .husky/
│ ├── pre-commit
│ └── pre-push
├── package.json # Root package.json
├── pnpm-workspace.yaml
├── turbo.json
├── .prettierrc
├── .prettierignore
├── eslint.config.mjs
├── vitest.config.ts
├── .gitignore
└── tsconfig.json
Core Stack:
Directory Structure:
project/
├── src/
│ └── project_name/
│ ├── __init__.py
│ └── __main__.py
├── tests/
│ ├── __init__.py
│ └── conftest.py
├── pyproject.toml # All config in one file
├── .pre-commit-config.yaml
├── Makefile
├── .gitignore
└── .vscode/settings.json
Ask these questions one at a time. Wait for the user's response before proceeding.
Project type (ask first): "What type of project are you initializing?"
Project name (ask second):
For JS/TS only - Scope (ask third): "What npm scope/namespace should packages use? (e.g., @mycompany, @projectname, or leave blank for no scope)"
For JS/TS only - Initial apps (ask fourth): "What apps do you want to create initially?"
For Python only - Project type (ask third): "What type of Python project is this?"
After gathering requirements, create the following:
package.json:
{
"name": "PROJECT_NAME",
"private": true,
"packageManager": "[email protected]",
"scripts": {
"build": "turbo run build",
"dev": "turbo run dev",
"lint": "turbo run lint",
"format": "prettier --write \"**/*.{ts,tsx,js,jsx,mjs,json,md,yml,yaml}\" && turbo run format",
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mjs,json,md,yml,yaml}\"",
"type-check": "turbo run type-check",
"test": "turbo run test",
"test:coverage": "vitest run --coverage",
"clean": "turbo run clean && rm -rf node_modules",
"prepare": "husky"
},
"devDependencies": {
"husky": "^9.1.0",
"lint-staged": "^16.0.0",
"prettier": "^3.5.0",
"turbo": "^2.3.0",
"typescript": "^5.0.0",
"vitest": "^2.1.0"
}
}
pnpm-workspace.yaml: