Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ESLint
  3. boundaries

boundaries

MITTypeScriptv6.0.2

ESLint plugin that enforces architectural boundaries between code elements in JavaScript and TypeScript projects.

Visit WebsiteGitHubGitHub
911 stars19 forks0 contributors

What is boundaries?

ESLint Plugin Boundaries is an ESLint plugin that enforces architectural boundaries in JavaScript and TypeScript projects. It helps developers define architectural layers and dependency rules, then automatically checks imports to ensure they comply with the defined architecture, preventing violations that lead to messy codebases.

Target Audience

JavaScript and TypeScript developers working on medium to large projects who need to maintain clean architecture, especially in monorepos, modular applications, or projects following layered patterns like MVC.

Value Proposition

Developers choose this plugin because it provides automated, real-time enforcement of architectural rules directly within ESLint, eliminating manual reviews and preventing architectural decay as projects scale.

Overview

Eslint plugin checking architecture boundaries between elements

Use Cases

Best For

  • Enforcing layered architectures like MVC in JavaScript applications
  • Maintaining clean boundaries in monorepo setups
  • Preventing circular dependencies between modules
  • Ensuring teams follow defined architectural patterns
  • Adding architectural guardrails to TypeScript projects
  • Automating code organization reviews in CI/CD pipelines

Not Ideal For

  • Projects with undefined or rapidly evolving architectures where rules would need constant updating
  • Teams relying heavily on dynamic imports or runtime module loading that static analysis can't catch
  • Small-scale applications or prototypes where architectural enforcement adds unnecessary configuration overhead
  • Environments where ESLint isn't already integrated, as setup adds complexity to the build pipeline

Pros & Cons

Pros

Architectural Rule Enforcement

Allows defining custom elements and dependency rules to match project architecture, as shown in the README example where controllers can only import models and views.

Flexible Configuration

Adapts to various structures like monorepos and layered patterns with configurable element patterns, supporting any organizational scheme.

Real-time Feedback

Provides immediate ESLint errors during development when imports violate boundaries, preventing architectural drift early in the workflow.

TypeScript Support

Fully compatible with TypeScript projects, ensuring boundary enforcement works seamlessly in typed codebases without extra setup.

Cons

Configuration Complexity

Requires detailed upfront setup of elements and rules, which can be time-consuming and error-prone for complex or large codebases.

Static Analysis Limitations

Only checks static import statements, missing dynamic imports or runtime dependencies that could violate architectural boundaries.

External Documentation Dependency

Full documentation is hosted on a separate website (JS Boundaries), which may be less accessible or could become outdated if not maintained alongside the code.

Frequently Asked Questions

Quick Stats

Stars911
Forks19
Contributors0
Open Issues17
Last commit3 days ago
CreatedSince 2020

Tags

#quality#architectural-patterns#import#architecture-enforcement#dependency-management#code-organization#eslintplugin#typescript#eslint-rules#eslint-plugin#javascript#dependency#eslint#monorepo#dependencies#architecture#static-analysis#clean-architecture

Links & Resources

Website

Included in

ESLint4.7k
Auto-fetched 1 day ago

Related Projects

importimport

ESLint plugin with rules that help validate proper imports.

Stars5,923
Forks1,545
Last commit8 days ago
PromisePromise

Enforce best practices for JavaScript promises

Stars1,000
Forks101
Last commit4 days ago
functionalfunctional

ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.

Stars987
Forks35
Last commit4 days ago
fpfp

ESLint rules for functional programming

Stars967
Forks35
Last commit5 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub