You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(tooling): add linter/formatter add-ons with preset selection #510
It would be nice if Create TanStack App could offer linter and formatter add-ons during project creation, with an optional second step for choosing a preset or setup.
The available presets could depend on what the user selected.
For example, selecting Biome could show:
? Select a Biome preset
❯ Recommended
Ultracite
None
While selecting ESLint could show:
? Select an ESLint setup
❯ Recommended
Ultracite
None
The selected setup should install the required dependencies and generate the appropriate configuration files and scripts.
Why
This would make popular linting and formatting setups much easier to choose when creating a new TanStack project.
It would also make setups like Biome + Ultracite or Oxlint + Oxfmt first class options instead of requiring users to configure them manually after creating the project.
Ideally this could build on the existing add-on and options system so that new tools and presets can be added without hardcoding everything into the CLI.
This fits the existing add-on options model, so preset selection can stay with each toolchain. Oxlint #524 is lint-only and does not cover Oxfmt or these presets.
AI review notes:
A compatibility check found that published Ultracite 8.1.1 requires Node ^22.22.2 || >=24.15.0 and Biome ^2.6.2, while the current React and Solid Biome toolchains pin 2.4.5. Adding the latest preset dependency without changing that dependency set would violate its peer requirement. Published package metadata.
A scoped implementation should keep the current default output, expose a preset through existing toolchain option metadata, and use conditional package/config templates for the selected preset. The next step is to establish a supported Ultracite/Biome/runtime combination, then test generated lint, build, types, and existing-app additions. No preset implementation or compatibility pass is claimed yet. Standalone formatter choices and Oxlint/Oxfmt remain separate work.
The standalone Prettier part is now on main in #571, thanks for laying out the choices. Keeping this open for presets and the remaining toolchains.
AI review notes:
The merged change supports --toolchain prettier and tanstack add prettier for React and Solid, with format/check scripts and no linter dependency. Six new generated-app cases cover Vite/Rsbuild, npm/pnpm and existing-app additions, including a formatting failure/recovery check. Normal hooks passed 10 builds, lint, 569 units and all 20 browser cases; all seven hosted checks passed. This is merged source, awaiting the normal package release.
Ultracite presets and Oxfmt are not implemented by this change. Oxlint #524 remains separate and subject to the existing owner deferral.
Activity
[-]feat(linter/formatter): add linter/formatter "add-ons"[/-][+]feat(tooling): add linter/formatter add-ons with preset selection[/+]tannerlinsley commentedon Nov 6, 2026
This fits the existing add-on options model, so preset selection can stay with each toolchain. Oxlint #524 is lint-only and does not cover Oxfmt or these presets.
tannerlinsley commentedon Nov 6, 2026
The standalone Prettier part is now on main in #571, thanks for laying out the choices. Keeping this open for presets and the remaining toolchains.