Skip to content

anthonybruno/dev-config

Repository files navigation

@abruno/dev-config

ESLint Prettier TypeScript Semantic Release

Opinionated shared configuration package for my projects. Provides consistent linting, formatting, TypeScript settings, and release automation across services.

What it includes

  • ESLint config with TypeScript support
  • Prettier formatting rules
  • Commitlint for commit message consistency
  • TypeScript base configs
  • semantic-release setup for automated publishing

Why

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.

Quick Start

npx install-peerdeps -D abruno-dev-config

Configurations

ESLint

Base 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;

TypeScript

// tsconfig.json
{
  "extends": "abruno-dev-config/tsconfig"
}

Prettier

// .prettierrc.js
import config from 'abruno-dev-config/prettier';
export default config;

Dependencies

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-next

Node.js/Express:

npm i -D eslint-plugin-node

Extending Configurations

You 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
    },
  },
];

TypeScript Path Mapping

// tsconfig.json
{
  "extends": "abruno-dev-config/tsconfig",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"],
      "@/components/*": ["src/components/*"]
    }
  }
}

About

Shared developer tooling for ESLint, Prettier, and commits.

Topics

Resources

Stars

Watchers

Forks

Contributors