Opinionated shared configuration package for my projects. Provides consistent linting, formatting, TypeScript settings, and release automation across services.
- ESLint config with TypeScript support
- Prettier formatting rules
- Commitlint for commit message consistency
- TypeScript base configs
- semantic-release setup for automated publishing
Consistency matters more as projects and teams grow. Instead of duplicating configs across repos, I maintain them in a single package. This reduces setup friction, keeps standards aligned, and improves developer experience.
npx install-peerdeps -D abruno-dev-configBase Configuration:
// eslint.config.js
import config from 'abruno-dev-config/eslint';
export default config;React/Next.js:
// eslint.config.js
import reactConfig from 'abruno-dev-config/eslint/react';
export default reactConfig;Node.js/Express:
// eslint.config.js
import nodeConfig from 'abruno-dev-config/eslint/node';
export default nodeConfig;Data Processing/ML:
// eslint.config.js
import dataProcessingConfig from 'abruno-dev-config/eslint/data-processing';
export default dataProcessingConfig;// tsconfig.json
{
"extends": "abruno-dev-config/tsconfig"
}// .prettierrc.js
import config from 'abruno-dev-config/prettier';
export default config;Most essential dependencies are included as peer dependencies. For specific configurations, install these as dev dependencies to keep package sizes smaller:
React/Next.js:
npm i -D eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y @next/eslint-plugin-nextNode.js/Express:
npm i -D eslint-plugin-nodeYou can extend any configuration with custom rules:
// eslint.config.js
import baseConfig from 'abruno-dev-config/eslint/react';
export default [
...baseConfig,
{
rules: {
// Your custom rules here
},
},
];// tsconfig.json
{
"extends": "abruno-dev-config/tsconfig",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@/components/*": ["src/components/*"]
}
}
}