CraftKit is an interactive scaffolding CLI for building practical fullstack starter projects with a Go backend and a modern React or Next.js frontend.
It is meant for the moment when you want to start building, but you do not want to spend the first hour creating folders, wiring a health route, setting up Vite or Next.js, and deciding where Docker files should live. CraftKit asks a few focused questions and creates a clean project structure you can actually grow from.
Craftkit-Demo.mp4
CraftKit generates an intermediate fullstack project with:
- A frontend app using React or Next.js
- TypeScript or JavaScript frontend templates
- A Go backend using Gin or Fiber
- A simple backend health route
- Shared project metadata in
craft.config.json - Optional Docker and Docker Compose setup
- A tidy
frontend,backend, andinfrafolder layout
craftkit createYou will be prompted for:
- Project name
- Frontend language
- Frontend framework
- Backend language
- Backend framework
- Docker support
The generated project looks like this:
my-app/
frontend/
backend/
infra/
craft.config.json
README.md
.gitignore
Clone the repository and install dependencies:
git clone https://github.com/VIM4L-M/CraftKIT.git
cd CraftKIT
npm installCraftKit expects Node.js 20.12 or newer.
Build the CLI:
npm run buildRun it locally:
npm start -- createYou can also link it while developing:
npm link
craftkit createAfter creating a project:
cd my-appStart the frontend:
cd frontend
npm install
npm run devStart the backend:
cd backend
go run ./cmd/serverThe backend includes a default health endpoint at:
/api/health
npm run buildCompiles the TypeScript source into dist.
npm start -- createRuns the built CLI locally.
CraftKit itself uses:
- Node.js
- TypeScript
- Commander
- Clack prompts
- Chalk
- Figlet
- Gradient String
- Ora
Contributions are welcome. The best way to help is to keep the CLI simple, predictable, and pleasant to use.
Good first contributions include:
- Adding validation for project names
- Improving the generated README files
- Adding tests around project generation
- Adding new backend or frontend template options
Before opening a pull request:
npm install
npm run buildPlease keep changes focused. If you are adding a new template, try to keep it small, documented, and consistent with the existing frontend, backend, and infra layout.