Skip to content

Stacks

A stack is a set of starter files for a specific language or framework. Stacks are independent of kits -- you can combine any kit with any stack.

Available stacks

Go

mold new my-app --stack go

Generated files:

File Description
go.mod Go module file with project name
main.go Hello world entry point
Makefile Build, test, lint targets
.gitignore Go-specific ignores

Also customizes CLAUDE.md with Go-specific tech stack section and settings.json with Go commands (go build, go test, etc.).

Rust

mold new my-app --stack rust

Generated files:

File Description
Cargo.toml Rust package manifest
src/main.rs Hello world entry point
.gitignore Rust-specific ignores

Next.js

mold new my-app --stack next

Generated files:

File Description
package.json Node.js package manifest
next.config.ts Next.js configuration
tsconfig.json TypeScript configuration
.gitignore Node.js-specific ignores

Bare (default)

mold new my-app --stack bare

No stack files are generated. Use this when you want only AI configuration without language-specific scaffolding.

Stack + kit combinations

Stacks and kits are orthogonal. Any combination works:

mold new my-app --stack go                    # Original kit + Go
mold new my-app --beads --stack rust          # Beads kit + Rust
mold new my-app --kit my-custom --stack next  # Custom kit + Next.js

How stacks affect AI config

Stacks do more than just add starter files. They also customize:

  • CLAUDE.md -- the tech stack section is populated with language-specific details
  • .claude/settings.json -- allowed commands include language-appropriate build/test/lint commands