Create your first project
Generate, verify, and prepare a new Astilba project for GitHub.
Create a project interactively, run its complete local verification command, then apply the generated repository settings after you publish it.
Check the prerequisites
Section titled “Check the prerequisites”Use Node.js 22.18.0 or later. Generated projects pin pnpm 11.10.0.
Create initializes Git on a fresh main branch by default, so use a Git version that supports git init --initial-branch or choose --no-git. Dependency installation uses an installed pnpm only when its version is exactly 11.10.0. Otherwise, Create asks Corepack for pnpm@11.10.0.
Run the questionnaire
Section titled “Run the questionnaire”From the parent directory where the new project should live, run:
npm create astilba@latestThe questionnaire asks for:
- one supported recipe;
- a portable relative destination such as
my-project; - a short project description;
- the GitHub owner;
- whether to customize the inferred project, package, and repository names;
- whether to initialize Git;
- whether to install dependencies; and
- whether to create the project, change a detail, or cancel.
The directory name supplies the default project name, package name, and GitHub repository name. Keep the customization prompt at no to accept all three together, or choose yes to edit them individually.
Before writing, Create validates every resolved value and shows the complete project summary. You can change one detail and return to the review without restarting the questionnaire. --yes skips this final review action only; it does not answer missing questions.
The interactive flow defaults both Git initialization and dependency installation to yes.
Create reports planning, generation, and optional dependency installation as separate phases. Its completion message states whether dependencies were installed and gives the next verification step.
Finish and verify the generated project
Section titled “Finish and verify the generated project”If Create installed dependencies, enter the new directory and run its complete verification script:
cd my-projectpnpm verifyIf you declined dependency installation or installation failed, install the generated project’s pinned dependencies first:
cd my-projectpnpm install --frozen-lockfilepnpm verifyEvery recipe checks formatting and lint rules, TypeScript, tests, unused files and dependencies, and its production build. The TypeScript library recipe also validates the packed package with Publint and Are the Types Wrong.
Review what Create owns
Section titled “Review what Create owns”Open .astilba/project.json before your first commit. It records:
- the generator and recipe versions;
- managed files and their SHA-256 digests;
- seeded application files that become user-owned immediately;
- individually owned
package.jsonfields; and - the
CLAUDE.mdsymbolic link and its target.
The manifest is evidence for future fail-closed migrations. Create 0.3.0 does not include an updater, and the manifest does not prevent you from changing any generated file.
Make the first commit
Section titled “Make the first commit”When Git initialization is enabled, Create produces a fresh repository on main without an initial commit. Review the tree, then commit it yourself:
git statusgit add .git commit -m "chore: establish project"The repository has no shared commit ancestry with Astilba Create.
Configure GitHub after publishing
Section titled “Configure GitHub after publishing”Push the repository to the owner and repository name you supplied, then follow docs/repository-settings.md. Generated files cannot turn on branch protection, merge settings, private-vulnerability reporting, a Renovate installation, or an npm publishing environment.
In particular:
- allow squash merging and enable automatic merging;
- configure the required verification checks on
main; - install or grant repository access to Renovate;
- keep the default workflow token read-only; and
- for public packages, design and configure the publication workflow, protected environment, and npm trusted publishing. Create does not generate that release path.
CodeQL and dependency review are designed for public repositories. Their generated workflows skip the relevant jobs when the repository is private.
Continue from the generated README
Section titled “Continue from the generated README”The new README contains recipe-specific development commands. Use Choose a recipe to compare the initial files and verification behavior, or CLI reference when you need to rerun creation with explicit metadata.