Choose a recipe
Compare the four versioned project recipes supported by Astilba Create 0.3.0.
Choose the recipe whose complete runtime and verification contract matches your project. Create does not expose its internal profiles as a mix-and-match feature selector.
All four recipes are version 2 in the project manifest.
Compare the recipes
Section titled “Compare the recipes”| Recipe | Starting point | Package posture | Recipe-specific verification |
|---|---|---|---|
typescript-library |
ESM TypeScript package with declarations | Public package | TypeScript build, tests, Publint, and Are the Types Wrong against the packed package |
react-vite-spa |
Client-rendered React application built by Vite | Private application | TypeScript, Vitest, and a Vite production build |
astro-static-site |
Statically rendered Astro site | Private application | Astro type checking, Vitest smoke test, and a static production build |
cloudflare-worker-service |
TypeScript service for Cloudflare Workers | Private service | Generated Workers types, worker-pool tests, three TypeScript configurations, and a dry-run Wrangler deployment build |
Shared foundation
Section titled “Shared foundation”Every recipe includes:
.astilba/project.json.github/ISSUE_TEMPLATE/.github/workflows/.editorconfig.gitattributes.gitignore.node-version.npmrcAGENTS.mdCLAUDE.md -> AGENTS.mdCONTRIBUTING.mdLICENSEREADME.mdSECURITY.mddocs/repository-settings.mdknip.jsonoxfmt.config.tsoxlint.config.tspackage.jsonpnpm-lock.yamlpnpm-workspace.yamlrenovate.jsontsconfig.jsonvitest.config.tsThe dependency, toolchain, action, and container references are exact pins. Renovate holds new releases for at least three days and uses conservative automerge rules. The verification workflow runs with a frozen lockfile on Node.js 22.18.0 and 24.18.0 in Create 0.3.0.
TypeScript library
Section titled “TypeScript library”Choose typescript-library for a publishable ESM package:
npm create astilba@latest -- my-library \ --recipe typescript-library \ --description "A useful TypeScript library." \ --github-owner example \ --package-name @example/my-libraryThe recipe adds:
src/index.tstests/index.test.tstsconfig.build.jsonIts package export includes ESM JavaScript and declarations. pnpm verify builds the package and checks the packed public surface with Publint and Are the Types Wrong.
React and Vite application
Section titled “React and Vite application”Choose react-vite-spa for a client-rendered single-page application:
npm create astilba@latest -- my-app \ --recipe react-vite-spa \ --description "A useful web application." \ --github-owner exampleThe recipe adds:
index.htmlsrc/app.tsxsrc/main.tsxsrc/project.jsontests/project.test.tsvite.config.tsThe package is private. It supplies development, build, preview, test, and verification scripts, but no hosting provider or deployment automation.
Astro static site
Section titled “Astro static site”Choose astro-static-site for a statically rendered Astro site:
npm create astilba@latest -- my-site \ --recipe astro-static-site \ --description "A useful static site." \ --github-owner exampleThe recipe adds:
astro.config.mjssrc/pages/index.astrotests/smoke.test.tsThe package is private. pnpm build creates the static site, but the recipe does not choose or configure a hosting provider.
Cloudflare Worker service
Section titled “Cloudflare Worker service”Choose cloudflare-worker-service for a TypeScript service that runs on Cloudflare Workers:
npm create astilba@latest -- my-worker \ --recipe cloudflare-worker-service \ --description "A useful Worker service." \ --github-owner exampleThe Worker project name must contain at most 63 lowercase letters, digits, or hyphens and cannot start or end with a hyphen. Create applies this stricter recipe rule to an explicit --project-name and to the name inferred from the destination.
The recipe adds:
src/index.tstests/index.test.tstests/tsconfig.jsontsconfig.config.jsonvitest.config.tswrangler.jsoncThe package is private. Its build generates binding types and runs wrangler deploy --dry-run; only pnpm deploy performs a deployment. Review wrangler.jsonc and authenticate Wrangler before using that command.
Know what is not a recipe option
Section titled “Know what is not a recipe option”Create 0.3.0 does not offer switches for Panda CSS, browser testing, monitoring, authentication, databases, framework deployment, or other optional systems. It also does not advertise arbitrary combinations of the internal project profiles.
Add project-specific capabilities after generation and verify them in your repository. A capability becomes part of Create only when Astilba can maintain its complete development, CI, deployment, and verification contract.