██████╗ ██████╗ ███╗ ██╗███████╗██╗ ██████╗ ██╔════╝██╔═══██╗████╗ ██║██╔════╝██║██╔════╝ ██║ ██║ ██║██╔██╗ ██║█████╗ ██║██║ ███╗ ██║ ██║ ██║██║╚██╗██║██╔══╝ ██║██║ ██║ ╚██████╗╚██████╔╝██║ ╚████║██║ ██║╚██████╔╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝
The standard and ts-standard experience, across Oxlint, Oxfmt, Biome, ESLint and Prettier.
npx @jannael/config Linter, formatter, editor configuration and git hooks.
Generates config files for ESLint, Prettier, Biome and more with a single command.
Support for ESLint, Oxlint and Biome. Choose the one that fits your project.
Support for Prettier, Oxfmt and Biome. Optimized configuration for each one.
Native support for React, Vue, Astro, Next.js and more.
Automatic Tailwind plugin configuration for ESLint and Prettier with class sorting.
Optional integration with Husky and lint-staged to run checks before each commit.
Automatically configures .vscode/settings.json with formatOnSave.
Adds lint, lint:fix, fmt and fmt:check scripts to your package.json.
All formatters share the same opinionated style, and we support the frameworks you love.
semi: false quoteStyle: 'single' 150 characters Spaces 2 spaces Applied consistently across Prettier, Biome and Oxfmt.
by Jannael
I was tired of starting a project with one linter and formatter, only to realize halfway through that the tech stack I chose wasn't fully supported. Then came the migration: uninstall, reinstall, reconfigure, debug the new config, repeat.
Even when you stick with one tool, the setup is painful. You have to search for the right ESLint plugins, figure out which parser you need, install everything, write the config file, then do it all over again for your formatter. Every. Single. Project.
Sure, you could ask an AI to generate the config for you. But that burns tokens, and you still need to verify it's correct, install the dependencies, and tweak it to your liking. It's not a real solution, it's just shifting the problem.
Config solves this by letting you pick your tech stack upfront and generating a complete, compatible configuration in one command. No migrations, no plugin hunting, no wasted tokens.