Skip to content

feat(tooling): add linter/formatter add-ons with preset selection #510

Description

@itzzjustmateo

Which project does this relate to?

Create TanStack App

Describe the feature

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.

For example:

? Select a linter / formatter
❯ Biome
  Oxlint + Oxfmt
  ESLint + Prettier
  None

? Select a preset
❯ Recommended
  Ultracite
  Custom

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.

Example use cases

  • Biome → recommended configuration
  • Biome → Ultracite
  • Biome → no preset
  • Oxlint + Oxfmt → recommended configuration
  • Oxlint + Oxfmt → Ultracite
  • Oxlint + Oxfmt → no preset
  • ESLint → recommended configuration
  • ESLint → Ultracite
  • ESLint → no preset
  • Prettier → standalone formatter
  • Oxfmt → standalone formatter

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions