Skip to main content

JS Boundaries

Draw boundaries, build quality software

Classify Files & Elements

Categorize your files and architectural elements using flexible patterns. Define components, layers, or domains — and describe the same files from multiple independent perspectives at once.

Set Boundaries

Define rules for dependencies based on your classification. Prevent unwanted coupling and enforce your architectural patterns automatically.

Get Instant Feedback

Distributed as an ESLint plugin. See architectural issues in your IDE and avoid them in CI/CD pipelines. More tools coming soon.

“Software architecture is the art of drawing lines that I call boundaries. Those boundaries separate software elements from one another, and restrict those on one side from knowing about those on the other.”

One File, Multiple Perspectives New in v7

Every file in your project can be described across three independent dimensions simultaneously — its architectural element, its own file category, and the origin of its dependencies. Define rules for any combination.

  • Elements — the architectural unit a file belongs to: component, service, module...
  • Files — the file's own categories: test, index, implementation...
  • Module — where a dependency resolves: external library, local path, core module...

Growing with the community

Growth chart
~900
stargazers on GitHub
~4M
monthly downloads
4,000+
dependent repos

Brought to you with ❤️ by @javierbrea.

Help keep boundaries maintained and growing