Content from Trev

    1. Home
    2. Content
    3. Project
    4. Npm Packages

    Loading content...

    Howdy!👋🏻
    I'm Trevor McDougald
    |
    GitHub
    LinkedIn
    Email
    6+ years experience in
    Node
    Python
    Java
    Golang

    NPM Packages & Community Contributions

    Published npm packages and open-source contributions including configuration packages, development tools, and community projects.

    PublishedFebruary 7, 2025
    UpdatedFebruary 24, 2025
    Views
    Likes
    Visit ProjectSource
    NPM Packages & Community Contributions

    Open Source Contributions & Published Packages

    This project showcases my contributions to the open-source community through published npm packages, configuration repositories, and development tools that help streamline modern web development workflows.

    Published NPM Packages

    @mcdougald/configs - Development Configuration Monorepo

    A comprehensive collection of shared configuration packages for modern JavaScript and TypeScript projects, designed to enforce consistent code style, formatting, and best practices across development teams.

    Repository: github.com/mcdougald/configs

    Available Packages

    @mcdougald/eslint-config

    A comprehensive ESLint configuration that enforces consistent code style and best practices across JavaScript and TypeScript projects.

    pnpm add -D @mcdougald/eslint-config

    Features:

    • TypeScript support with strict type checking
    • React and Next.js specific rules
    • Import/export optimization
    • Accessibility (a11y) rules
    • Performance and security best practices
    @mcdougald/prettier-config

    A shared Prettier configuration to ensure consistent code formatting across all projects.

    pnpm add -D @mcdougald/prettier-config prettier-plugin-packagejson

    Features:

    • Consistent formatting rules
    • Package.json plugin integration
    • Editor integration support
    • Team collaboration optimization
    @mcdougald/typescript-config

    A shared TypeScript configuration to standardize TypeScript compiler options and ensure consistent type checking.

    pnpm add -D @mcdougald/typescript-config

    Features:

    • Strict type checking enabled
    • Modern ES target support
    • Path mapping configuration
    • Module resolution optimization
    @mcdougald/biome-config

    A modern Biome configuration for fast formatting and linting, providing an alternative to ESLint and Prettier with better performance.

    pnpm add -D @mcdougald/biome-config

    Features:

    • High-performance linting and formatting
    • TypeScript support
    • Modern JavaScript features
    • Reduced configuration complexity
    @mcdougald/tailwindcss-config

    A comprehensive Tailwind CSS configuration with modern plugins and utilities for React applications.

    pnpm add -D @mcdougald/tailwindcss-config

    Features:

    • 🎨 Modern Plugins: Forms, typography, aspect ratio, and motion animations
    • 🌙 Dark Mode: Class-based dark mode support
    • 📱 Responsive Design: Custom breakpoints including extra small screens
    • 🎭 Animations: Built-in animation utilities and motion effects
    • ⚡ Performance: Optimized content paths for better build performance
    • 🎯 React Ready: Pre-configured for React and Next.js applications

    Monorepo Architecture

    The configs repository demonstrates modern monorepo patterns:

    Package Structure

    packages/
    ├── eslint-config/          # ESLint configuration
    ├── prettier-config/        # Prettier configuration
    ├── typescript-config/      # TypeScript configuration
    ├── biome-config/          # Biome configuration
    └── tailwindcss-config/    # Tailwind CSS configuration

    Development Workflow

    • Turborepo for fast, cached builds
    • pnpm workspaces for efficient dependency management
    • Changesets for version management and changelog generation
    • GitHub Actions for CI/CD automation
    • Automated testing and quality checks

    Community Contributions

    Inspiration & Credits

    This project is inspired by excellent work from the community:

    • antfu/eslint-config - Anthony Fu's comprehensive ESLint configurations
    • sxzz/eslint-config - Modern ESLint configurations by sxzz
    • nelsonlaidev/config - Nelson's configuration packages

    Open Source Philosophy

    • MIT License for maximum accessibility
    • Comprehensive documentation for easy adoption
    • Type-safe configurations for better developer experience
    • Performance-focused tooling choices
    • Community feedback integration

    Future Python Packages

    Planned Python Contributions

    @mcdougald/python-configs (Future)

    A collection of Python development configuration packages for modern Python projects.

    Planned Packages:

    @mcdougald/black-config

    Black code formatter configuration for consistent Python code style.

    pip install @mcdougald/black-config

    Features:

    • Consistent line length and formatting
    • String quote preferences
    • Import sorting configuration
    • Pre-commit hook integration
    @mcdougald/ruff-config

    Ruff linter configuration for fast Python linting and import sorting.

    pip install @mcdougald/ruff-config

    Features:

    • High-performance linting (Rust-based)
    • Import sorting and organization
    • Security and best practice rules
    • Flake8 compatibility
    @mcdougald/mypy-config

    MyPy type checker configuration for strict type checking.

    pip install @mcdougald/mypy-config

    Features:

    • Strict type checking rules
    • Third-party library stubs
    • Plugin configuration
    • CI/CD integration
    @mcdougald/pytest-config

    Pytest configuration for comprehensive testing setup.

    pip install @mcdougald/pytest-config

    Features:

    • Test discovery patterns
    • Coverage reporting
    • Fixture organization
    • Parallel test execution
    @mcdougald/poetry-config

    Poetry dependency management configuration templates.

    pip install @mcdougald/poetry-config

    Features:

    • Dependency group organization
    • Build system configuration
    • Publishing settings
    • Development workflow optimization

    Python Development Standards

    • Type hints throughout codebase
    • Strict linting with Ruff and MyPy
    • Comprehensive testing with Pytest
    • Documentation with Sphinx or MkDocs
    • CI/CD with GitHub Actions
    • Security scanning with safety and bandit

    Getting Started

    Quick Setup Examples

    For a React/Next.js project:

    pnpm add -D @mcdougald/eslint-config @mcdougald/prettier-config @mcdougald/typescript-config @mcdougald/tailwindcss-config

    For a modern project with Biome:

    pnpm add -D @mcdougald/biome-config @mcdougald/typescript-config @mcdougald/tailwindcss-config

    For a Python project (future):

    pip install @mcdougald/black-config @mcdougald/ruff-config @mcdougald/mypy-config @mcdougald/pytest-config

    Impact & Usage

    Community Adoption

    • 0 stars and growing community interest
    • MIT License for maximum accessibility
    • Comprehensive documentation for easy onboarding
    • Type-safe configurations for better DX

    Development Benefits

    • Consistent code style across projects
    • Reduced configuration overhead for new projects
    • Best practices enforcement
    • Team collaboration optimization
    • CI/CD integration ready

    Contact & Collaboration

    Trevor McDougald

    • 📧 Email: mcdougald.job@gmail.com
    • 🐙 GitHub: @mcdougald
    • 💼 LinkedIn: Trevor McDougald
    • 🌐 Website: trev.fyi

    Contributing

    I welcome feedback and contributions:

    1. Open an issue on GitHub for bugs or feature requests
    2. Submit a pull request with proposed improvements
    3. Reach out directly for collaboration opportunities
    4. Share feedback on configuration effectiveness

    License

    All packages are released under the MIT License for maximum accessibility and community benefit.


    These configuration packages represent years of refinement in development workflows and best practices. They're designed to help developers focus on building great software rather than configuring tools.