# Architectures

Architectures are rule bundles.

They define conventional components and apply dependency rules between them. They do not add a second analysis engine.

`preset` is an alias for `architecture`. Use whichever word fits: `architecture :rails` for a structural bundle, `preset :ruby_conventions` for a convention pack.

Available architectures:

- [Rails](/architectures/rails/)
- [Vanilla Rails](/architectures/vanilla-rails/)
- [Layered](/architectures/layered/)
- [Hexagonal](/architectures/hexagonal/)
- [Clean](/architectures/clean/)
- [Modular Monolith](/architectures/modular-monolith/)
- [CQRS](/architectures/cqrs/)
- [Event Driven](/architectures/event-driven/)
- [Ruby Conventions](/architectures/ruby-conventions/)

Use an architecture when your app already follows a clear folder or namespace convention. Use primitive [rules](/rules/) when the shape is custom.
