Create FasterCreate Faster

ESLint

The pluggable linting utility for JavaScript and JSX.

→ ESLint Documentation

What create-faster adds

Script added to each app's package.json:

  • linteslint .

Each app gets a stack-specific eslint.config.mjs with the right plugins and ignores for its framework.

Stack configurations

StackConfig presetPlugins
Next.jsnexteslint-plugin-react, eslint-plugin-react-hooks, @next/eslint-plugin-next
Exporeact-nativeeslint-plugin-react, eslint-plugin-react-hooks
TanStack Startreacteslint-plugin-react, eslint-plugin-react-hooks
HonoserverNone (Node.js globals only)

All configs extend @eslint/js recommended + typescript-eslint recommended as a base.

Single repo

In a single-repo project, eslint.config.mjs contains inline rules with all plugins configured directly:

eslint.config.mjs              # Stack-specific flat config

Turborepo

In a turborepo, create-faster generates a shared @repo/eslint-config package with composable presets. Each app imports from it:

packages/eslint-config/
├── package.json               # Exports all presets
├── base.js                    # @eslint/js + typescript-eslint
├── next.js                    # base + React + Next.js rules
├── react.js                   # base + React rules
├── react-native.js            # base + React + Expo ignores
└── server.js                  # base + Node.js globals

apps/web/
└── eslint.config.mjs          # import { nextConfig } from "@repo/eslint-config/next"

apps/api/
└── eslint.config.mjs          # import { serverConfig } from "@repo/eslint-config/server"

Each app's eslint.config.mjs is a one-liner that re-exports the shared preset:

apps/web/eslint.config.mjs
import { nextConfig } from "@repo/eslint-config/next";

export default nextConfig;

On this page