Skip to content

Stricture

Architecture Boundaries for JavaScript & TypeScript

Enforce clean architecture patterns with ESLint. Keep your codebase maintainable as it scales.

Why Stricture?

🏗️ Architecture Enforcement

Enforce hexagonal, layered, clean, or modular architecture patterns automatically.

⚡ Zero Config

Use presets for instant setup. No complex configuration required.

🔍 Clear Violations

Get helpful error messages that explain WHY imports are forbidden and HOW to fix them.

🎯 Deny by Default

Strict by default. Only explicitly allowed dependencies are permitted.

🔧 Customizable

Create custom presets or extend existing ones for your team's needs.

📦 Monorepo Ready

Works seamlessly in monorepos with per-package configurations.

Quick Example

Add hexagonal architecture enforcement to your ESLint config:

import stricture from '@stricture/eslint-plugin'

export default [
  stricture.configs.hexagonal()
]

That's it! Stricture will now prevent:

  • Domain importing from infrastructure
  • Adapters bypassing the application layer
  • Circular dependencies between layers

Choose Your Architecture

Hexagonal

Ports & Adapters pattern with clear domain isolation.

Learn more →

Layered

Traditional N-tier architecture with unidirectional dependencies.

Learn more →

Clean

Uncle Bob's Clean Architecture with concentric layers.

Learn more →

Modular

Feature-based modules with encapsulated public APIs.

Learn more →

Ready to enforce clean architecture?