Uh oh!
There was an error while loading. Please reload this page.
feat: add blank project preset - #488
Conversation
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe CLI adds a ChangesBlank project generation
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant TanStackCLI
participant CreateOptions
participant CreateGenerator
participant GeneratedApp
User->>TanStackCLI: run create --blank
TanStackCLI->>CreateOptions: validate and normalize preset
CreateOptions->>CreateGenerator: pass blank, Tailwind, add-on, and deployment options
CreateGenerator->>GeneratedApp: render routes, styles, README, and package manifests
GeneratedApp-->>User: provide minimal runnable application
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
packages/create/tests/package-json.test.tsParsing error: "parserOptions.project" has been provided for Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/cli/skills/create-app-scaffold/SKILL.md`:
- Line 93: Rename the heading in the minimal scaffold section to state “Use
--blank when a minimal scaffold is required,” aligning it with the supported
command and the section’s corrected example.
- Around line 48-52: Update every npx `@tanstack/cli` invocation in the create-app
scaffold skill examples to use the pinned `@tanstack/cli`@0.70.0 package version,
including the shown create command, while preserving all existing arguments and
behavior.
In `@packages/cli/src/cli.ts`:
- Around line 991-994: Extend the validation used by the shared --blank options
so the dev command also rejects incompatible flags such as --tailwind and
template/example combinations. Update the dev command flow around
startDevWatchMode to invoke validateLegacyCreateFlags, or centralize that
validation before entering dev mode, while preserving existing create-command
validation and preventing silent normalization.
In `@packages/cli/tests-e2e/helpers.ts`:
- Around line 413-414: Update the fixture creation flow around the afterCreate
callback so that if afterCreate rejects, the temporary app directory and
installed node_modules are cleaned up before the error propagates. Preserve the
existing callback behavior and successful fixture return path.
In `@packages/create/src/frameworks/react/project/base/README.md.ejs`:
- Line 4: Update the README template’s styling description to render
conditionally from the existing `tailwind` template context, so projects with
Tailwind no longer claim to use plain CSS while preserving the appropriate
description for non-Tailwind projects.
In `@packages/create/src/frameworks/solid/project/packages.json`:
- Around line 21-23: Update the file-router manifest in packages.json to include
`@tanstack/router-plugin` as a dependency required by the routerOnly branch in
vite.config.ts.ejs, preserving the existing versioning and dependency
conventions so generated projects can resolve the imported Vite plugin.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: e2bcc436-675b-4db3-a94c-5a76d44620ec
⛔ Files ignored due to path filters (6)
packages/create/src/frameworks/react/project/base/public/favicon.icois excluded by!**/*.icopackages/create/src/frameworks/react/project/base/public/logo192.pngis excluded by!**/*.pngpackages/create/src/frameworks/react/project/base/public/logo512.pngis excluded by!**/*.pngpackages/create/src/frameworks/solid/project/base/public/favicon.icois excluded by!**/*.icopackages/create/src/frameworks/solid/project/base/public/logo192.pngis excluded by!**/*.pngpackages/create/src/frameworks/solid/project/base/public/logo512.pngis excluded by!**/*.png
📒 Files selected for processing (67)
.agents/index.md.changeset/clean-cats-start.mdREADME.mddocs/cli-reference.mddocs/quick-start.mdexamples/react/blog/package.jsonpackages/cli/skills/add-addons-existing-app/SKILL.mdpackages/cli/skills/choose-ecosystem-integrations/SKILL.mdpackages/cli/skills/create-app-scaffold/SKILL.mdpackages/cli/skills/create-app-scaffold/references/create-flag-compatibility-matrix.mdpackages/cli/skills/create-app-scaffold/references/framework-adapters.mdpackages/cli/skills/maintain-custom-addons-dev-watch/SKILL.mdpackages/cli/skills/query-docs-library-metadata/SKILL.mdpackages/cli/src/cli.tspackages/cli/src/command-line.tspackages/cli/src/options.tspackages/cli/src/types.tspackages/cli/tests-e2e/blank-smoke.spec.tspackages/cli/tests-e2e/helpers.tspackages/cli/tests/command-line.test.tspackages/cli/tests/options.test.tspackages/create/package.jsonpackages/create/scripts/copy-assets.mjspackages/create/scripts/generate-manifest.mjspackages/create/src/add-to-app.tspackages/create/src/create-app.tspackages/create/src/edge-create-app.tspackages/create/src/edge-package-json.tspackages/create/src/edge-render.tspackages/create/src/edge-template-file.tspackages/create/src/frameworks/react/add-ons/posthog/info.jsonpackages/create/src/frameworks/react/add-ons/shadcn/info.jsonpackages/create/src/frameworks/react/add-ons/shadcn/package.jsonpackages/create/src/frameworks/react/add-ons/shopify/info.jsonpackages/create/src/frameworks/react/add-ons/strapi/package.jsonpackages/create/src/frameworks/react/add-ons/tanstack-query/package.jsonpackages/create/src/frameworks/react/examples/events/package.jsonpackages/create/src/frameworks/react/examples/resume/package.jsonpackages/create/src/frameworks/react/hosts/cloudflare/package.json.ejspackages/create/src/frameworks/react/project/base/README.md.ejspackages/create/src/frameworks/react/project/base/package.jsonpackages/create/src/frameworks/react/project/base/public/manifest.jsonpackages/create/src/frameworks/react/project/base/public/robots.txtpackages/create/src/frameworks/react/project/base/src/App.test.tsx.ejspackages/create/src/frameworks/react/project/base/src/routes/__root.tsx.ejspackages/create/src/frameworks/react/project/base/src/routes/index.tsx.ejspackages/create/src/frameworks/react/project/base/src/styles.css.ejspackages/create/src/frameworks/react/project/base/vite.config.ts.ejspackages/create/src/frameworks/react/project/packages.jsonpackages/create/src/frameworks/solid/add-ons/solid-ui/info.jsonpackages/create/src/frameworks/solid/project/base/README.md.ejspackages/create/src/frameworks/solid/project/base/_dot_cursorrules.appendpackages/create/src/frameworks/solid/project/base/package.jsonpackages/create/src/frameworks/solid/project/base/public/manifest.jsonpackages/create/src/frameworks/solid/project/base/public/robots.txtpackages/create/src/frameworks/solid/project/base/src/App.test.tsx.ejspackages/create/src/frameworks/solid/project/base/src/routes/__root.tsx.ejspackages/create/src/frameworks/solid/project/base/src/routes/index.tsx.ejspackages/create/src/frameworks/solid/project/base/src/styles.css.ejspackages/create/src/frameworks/solid/project/base/vite.config.ts.ejspackages/create/src/frameworks/solid/project/packages.jsonpackages/create/src/package-json.tspackages/create/src/template-file.tspackages/create/src/types.tspackages/create/tests/add-to-app.test.tspackages/create/tests/blank-preset.test.tspackages/create/tests/react-template-dependencies.test.ts
💤 Files with no reviewable changes (9)
- packages/create/src/frameworks/solid/project/base/public/robots.txt
- packages/create/src/frameworks/solid/project/base/_dot_cursorrules.append
- packages/create/src/frameworks/react/project/base/public/manifest.json
- packages/create/src/frameworks/solid/project/base/public/manifest.json
- packages/create/src/frameworks/react/project/base/src/App.test.tsx.ejs
- packages/create/src/frameworks/react/project/base/public/robots.txt
- packages/create/src/frameworks/react/add-ons/posthog/info.json
- packages/create/src/frameworks/solid/project/base/src/App.test.tsx.ejs
- examples/react/blog/package.json
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/create/tests/package-json.test.ts`:
- Around line 45-48: Extend the normal-project assertion around
createPackageJSON to verify that the appropriate Start dependency,
`@tanstack/react-start` or `@tanstack/solid-start` based on the selected framework,
remains in devDependencies when routerOnly is not enabled. Keep the existing
router-plugin absence assertion unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 932970f5-bda2-4d09-8db4-3962a0d765f8
📒 Files selected for processing (8)
packages/cli/skills/create-app-scaffold/SKILL.mdpackages/cli/src/cli.tspackages/cli/tests-e2e/blank-smoke.spec.tspackages/cli/tests-e2e/helpers.tspackages/create/src/frameworks/react/project/base/README.md.ejspackages/create/src/frameworks/solid/project/base/README.md.ejspackages/create/tests/blank-preset.test.tspackages/create/tests/package-json.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
- packages/create/src/frameworks/solid/project/base/README.md.ejs
- packages/cli/src/cli.ts
- packages/create/tests/blank-preset.test.ts
Uh oh!
There was an error while loading. Please reload this page.
What changed
--blankpreset for minimal React and Solid projectsWhy
The standard starter is useful for exploration, but it obscures framework startup and dependency costs in clean-room evaluation and in minimal production projects. The blank preset creates the smallest helpful project while retaining framework-required structure and explicit opt-ins.
Validation
pnpm buildpnpm testpnpm --filter @tanstack/cli exec intent validate skillsThe changeset releases minor versions of
@tanstack/cliand@tanstack/create.Summary by CodeRabbit
--blankto create minimal, production-ready TanStack Start apps in non-interactive mode./route and conditionally include Tailwind and devtools (re-enabled only when add-ons require them); intent/examples are omitted..cta.json-driven preset behavior for generated project contents.--blankexamples and clarified include/exclude details (including intent and--tailwindinteractions).--blankflag incompatibility handling and non-interactive safety checks (instructs using--forcewhen needed).