- Shell
- Simple single-file script scaffold with BATS tests (with coverage)
- CI config to Lint and test (with coverage)
- PHP
composer.json- Symfony CLI command app scaffold with unit tests (with coverage) and traits
- Simple single-file script scaffold with unit tests (with coverage)
- Class library scaffold - the tooling with no entry point, for packages that ship only classes
- Code quality tools with configurations: PHP Code Sniffer, PHPStan, Rector
- CI config to Lint, test and publish PHP, packaging the command app as a PHAR
- NodeJS
package.json- CI config to build and test for NodeJS
- Docker
Dockerfilewith minimal Alpine-based image andentrypoint.sh- CI config to lint and test Docker image (Hadolint + Buildx build)
- CI config to publish multi-arch
images (
linux/amd64,linux/arm64) to Docker Hub
- CI
- Release drafter
- Release asset packaging and upload
- PR auto-assign
- Documentation
- Readme with badges and contributing guide, plus a generated logo
- Scaffold for the documentation site using Docusaurus
- Spell check with CSpell
- Terminal recorder rendering an animated SVG plus an
AsciinemaPlayerdocs component
- Utility files
.editorconfig,.gitignore,.gitattributes- Renovate bot configuration
- Pull request template
- Funding
- Init shell script to chose features
- AI agents
AGENTS.mdandCLAUDE.mdguidance for AI coding agents- Optional AI-maintained architecture documentation with Mermaid or PlantUML diagrams, generated and kept current by the bundled
update-architecture-docsskill - Bundled
update-consumer-scaffoldskill that updates a generated project to the latest scaffold release
- Click on Use this template > Create a new repository
- Checkout locally
- Run
./init.shto replaceyournamespace,yourproject,Your Namestrings with your own and choose the features.
Pass options instead of answering prompts to initialise without any interaction - useful for automation and AI agents. Any option enables non-interactive mode; --namespace, --name and --author are required, and every other choice falls back to its default.
./init.sh --namespace=AcmeApp --name=acme-app --author="Jane Doe"The same works as a one-liner straight from getscaffold.dev, with no prior checkout - run it in an empty directory and the script downloads the Scaffold into the current directory, then prompts you for the details:
curl -fsSL https://getscaffold.dev/init.sh | bashTo stay fully unattended, pass the details as options instead:
curl -fsSL https://getscaffold.dev/init.sh | \
bash -s -- --namespace=AcmeApp --name=acme-app --author="Jane Doe"The latest release is used by default; to pin a specific tag, branch, or commit, pass --ref to the script after bash -s -- (for example bash -s -- --ref=1.2.3). Run ./init.sh --help for the full list of options.
Projects generated from this scaffold can pull later template improvements
without losing their own code. If you use Claude Code, the bundled
update-consumer-scaffold
skill automates it: in your generated project, ask Claude to "update scaffold"
and it fetches the skill, downloads the latest scaffold release, re-runs
init.sh with your original answers, restores your project-specific files from
git, and reconciles the differences. The generated project's
AGENTS.md carries the same instructions for any AI agent.
