Full-stack scaffolding CLI. One command generates a production-ready project — backend, frontend, database, CI/CD, and AI tooling wired together.
npm i -g @iconsulting-dev/forgekit
Pick your stack — ForgeKit assembles everything and hands you a project that runs on day one.
$ npm i -g @iconsulting-dev/forgekit
$ forgekit new ? Project name: my-app ? Backend: Spring Boot (Java 21) ? Include Angular frontend? Yes ? Group ID: com.example ? Backend features: Flyway ✓ OpenAPI ✓ MapStruct ✓ ? UI framework: PrimeNG (Aura) ? Infrastructure: Docker ✓ CI/CD ✓ Claude Code ✓ Git ✓ ✔ Project my-app created successfully!
$ cd my-app # Start database $ docker compose up -d # Start backend $ cd backend && ./mvnw spring-boot:run # Start frontend (new terminal) $ cd frontend && npm install && npm start
Install what you need for your chosen stack. ForgeKit auto-detects installed tools and adjusts wizard options accordingly.
| Tool | Version | Install |
|---|---|---|
| Node.js | ≥ 20 | nodejs.org |
| Git | any | git-scm.com |
| Tool | Version | Install |
|---|---|---|
| Java (JDK) | 21+ |
adoptium.net ·
brew install temurin@21
|
| Maven | 3.9+ | Bundled via ./mvnw — no install needed |
| Tool | Version | Install |
|---|---|---|
| Python | 3.12+ |
python.org ·
brew install python@3.12
|
| pip | any | Bundled with Python |
| Tool | Version | Install |
|---|---|---|
| PHP | 8.3+ |
php.net ·
brew install php@8.3
|
| Composer | 2.x | getcomposer.org |
| Tool | Version | Install |
|---|---|---|
| Node.js | ≥ 20 | Already required — no extra install needed |
| Tool | Install | |
|---|---|---|
| Docker Desktop | docker.com | Required for PostgreSQL + pgAdmin |
| Tool | Install |
|---|---|
| claude | npm i -g @anthropic-ai/claude-code |
Auto-checked in the wizard if claude is in your
$PATH.
| Tool | Install |
|---|---|
| uv |
curl -LsSf https://astral.sh/uv/install.sh | sh
|
| specify |
uv tool install specify-cli --from
git+https://github.com/github/spec-kit.git
|
Auto-checked in the wizard if specify is in your
$PATH.
# Spring Boot + Angular + Docker + Claude Code $ forgekit new my-app \ --spring-boot \ --group com.example \ --angular \ --docker \ --claude-code
Generates a Spring Boot 3 backend with PostgreSQL + pgAdmin via Docker Compose, an Angular 19 frontend with PrimeNG, and a complete Claude Code configuration.
# FastAPI + React (Vite + Tailwind) + auth + Docker $ forgekit new my-app \ --fastapi \ --react \ --auth \ --docker \ --claude-code
FastAPI backend with uvicorn + pytest, React 19 frontend (Vite +
Tailwind CSS v4) with a useAuth hook and axios
interceptor, Docker Compose with PostgreSQL.
# NestJS + JWT auth + Prisma + OpenAPI $ forgekit new my-api \ --nestjs \ --auth \ --prisma \ --openapi \ --claude-code
NestJS 11 backend with TypeScript, JWT authentication
(@nestjs/jwt), Prisma ORM with PostgreSQL
(@prisma/client), Swagger UI
(@nestjs/swagger), multi-stage Dockerfile, and Claude
Code config. Start with
cd backend && npm install && npm run start:dev.
# Laravel + React + auth $ forgekit new my-app \ --laravel \ --react \ --auth \ --docker \ --claude-code
Laravel 12 API-only backend (PHP 8.3) with Sanctum authentication,
React 19 frontend with useAuth hook and axios
interceptor, Docker Compose with PostgreSQL.
# FastAPI backend only — no frontend, no Docker $ forgekit new my-api \ --fastapi \ --no-frontend \ --no-docker
Minimal FastAPI project: main.py,
config.py, health router, pytest setup, Dockerfile.
Nothing else.
# Spring Boot + Angular + Auth + NgRx + all features $ forgekit new my-app \ --spring-boot \ --group com.example \ --auth \ --flyway \ --openapi \ --mapstruct \ --angular \ --ngrx \ --ui primeng \ --preset Aura \ --docker \ --ci \ --claude-code
Everything: Spring Security + JWT config, Flyway migrations, SpringDoc Swagger UI, MapStruct mappers, Angular with NgRx SignalStore, GitHub Actions CI, and Claude Code config with stack-specific skills.
Already have a backend? Add a frontend. Already have a project? Add
Docker, CI, or Claude Code config — without touching what's already
there. ForgeKit reads forgekit.json to detect the
existing setup and asks only the relevant questions.
$ forgekit add react # Add React frontend $ forgekit add vue # Add Vue.js frontend $ forgekit add angular # Add Angular frontend $ forgekit add nestjs --prisma # Add NestJS backend with Prisma $ forgekit add nextjs # Add Next.js fullstack $ forgekit add docker # Add Docker Compose $ forgekit add ci # Add GitHub Actions CI $ forgekit add claude-code # Add Claude Code config $ forgekit add prettier # Add Prettier + Husky + lint-staged
Dependent layers are auto-regenerated when needed — adding a frontend to an existing backend also updates Docker Compose and CI configs.
my-app/ ├── backend/ # Spring Boot 3 / FastAPI │ └── src/main/java/com/example/myapp/ │ ├── Application.java │ ├── config/ │ │ ├── SecurityConfig.java # (--auth) │ │ └── OpenApiConfig.java │ └── shared/exception/ │ ├── GlobalExceptionHandler.java │ └── ApiError.java │ ├── frontend/src/ # Angular 19 · React 19 · Vue 3 │ ├── # Angular: app.component.ts, app.routes.ts, layout/, features/ │ ├── # React: main.tsx, App.tsx, router/, hooks/, components/ │ └── # Vue: main.ts, App.vue, router/, stores/, components/ │ ├── docker-compose.yml # PostgreSQL 17 + pgAdmin ├── .github/workflows/ci.yml # GitHub Actions │ ├── CLAUDE.md # AI workflow conventions ├── .claude/ │ ├── settings.json │ ├── hooks/ # pre-bash.sh, session-start.sh │ ├── hookify.block-dangerous-rm.local.md │ ├── hookify.block-force-push.local.md │ └── skills/ # Stack-specific AI skills │ ├── .specify/memory/constitution.md # Architectural constitution └── forgekit.json # Layer manifest (used by forgekit add)
ForgeKit generates a complete Claude Code configuration — the only scaffolding tool that does this. Every developer who clones the project gets the same AI conventions without any manual setup.
| File | Purpose |
|---|---|
| CLAUDE.md | Workflow routing, TDD rules, stack conventions |
| .claude/settings.json | Permissions + hooks (SessionStart, PreToolUse, PreCompact) |
| .claude/hooks/session-start.sh | Auto-loads architectural constitution at session start |
| .claude/hooks/pre-bash.sh | Guards dangerous commands at the bash level |
| hookify.block-dangerous-rm | Blocks rm -rf |
| hookify.block-force-push | Blocks git push --force |
| hookify.block-no-verify | Blocks --no-verify |
| hookify.warn-console-log | Warns on leftover console.log |
| hookify.warn-env-edit | Warns on .env edits |
| hookify.stop-verify-tests | TDD reminder before session end |
| .claude/skills/ | Stack-specific coding conventions copied per stack |
| Stack | Skill |
|---|---|
| Spring Boot | applying-java-conventions |
| FastAPI | applying-python-conventions |
| Laravel | applying-php-laravel-conventions |
| NestJS | applying-nestjs-conventions |
| Angular frontend | applying-angular-conventions |
| React frontend | applying-react-conventions |
| Vue frontend | applying-vue3-conventions |
ForgeKit resolves the latest stable versions from npm and Maven Central at generation time — your project is never outdated on day one.
| Registry | Packages |
|---|---|
| npm | @nestjs/core, @nestjs/jwt, @nestjs/swagger, prisma, Next.js, next-auth, Angular, PrimeNG, @primeuix/themes, NgRx Signals, Tailwind CSS, RxJS, TypeScript, zone.js |
| Maven Central | Spring Boot, SpringDoc OpenAPI, MapStruct |
Fallback versions are used if the registry is unreachable.