ForgeKit

ForgeKit

Full-stack scaffolding CLI. One command generates a production-ready project — backend, frontend, database, CI/CD, and AI tooling wired together.

version downloads MIT node
$ npm i -g @iconsulting-dev/forgekit
Get started View on GitHub
bash

What it generates

Pick your stack — ForgeKit assembles everything and hands you a project that runs on day one.

Backend
Spring Boot 3 Java 21
FastAPI Python 3.12
NestJS 11 TypeScript
Laravel 12 PHP 8.3
Next.js 15
Frontend
Angular 19 Standalone OnPush Lazy routes
React 19 Vite 7 Tailwind v4
Vue 3 Vite 7 Tailwind v4
UI Framework
PrimeNG Aura Lara Nora
Tailwind v4 none
Infrastructure
PostgreSQL 17 Docker Compose GitHub Actions
Optional features
JWT auth Flyway OpenAPI MapStruct Prisma ORM NgRx SignalStore
AI Tooling
Claude Code Hookify guards Skills Speckit

Quickstart

1

Install ForgeKit

$ npm i -g @iconsulting-dev/forgekit
2

Run the interactive wizard

$ 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!
3

Start the stack

$ 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

Prerequisites

Install what you need for your chosen stack. ForgeKit auto-detects installed tools and adjusts wizard options accordingly.

Required for all stacks

Tool Version Install
Node.js ≥ 20 nodejs.org
Git any git-scm.com

Spring Boot backend

Tool Version Install
Java (JDK) 21+ adoptium.net · brew install temurin@21
Maven 3.9+ Bundled via ./mvnw — no install needed

FastAPI backend

Tool Version Install
Python 3.12+ python.org · brew install python@3.12
pip any Bundled with Python

Laravel backend

Tool Version Install
PHP 8.3+ php.net · brew install php@8.3
Composer 2.x getcomposer.org

NestJS backend

Tool Version Install
Node.js ≥ 20 Already required — no extra install needed

Docker Compose

Tool Install
Docker Desktop docker.com Required for PostgreSQL + pgAdmin

Claude Code (optional)

Tool Install
claude npm i -g @anthropic-ai/claude-code

Auto-checked in the wizard if claude is in your $PATH.

Speckit (optional)

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.

Examples

Spring Boot + Angular
FastAPI + React
NestJS
Laravel
API only
Full stack + auth
# 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.

Add a layer to an existing project

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.

Generated project structure

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)

Claude Code integration

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.

What's included

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

Skills 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

Dynamic version resolution

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.