• app/cells -> small repeatable blocks within page
  • app/controllers -> skinny controllers,
    • mostly control-flow only, but be reasonable, do not extract one liner to use case
    • DHH approach to put one action into controller
  • app/forms -> Reform (form objects)
  • app/helpers -> Rails helpers
  • app/models -> skinny models
  • app/policies
  • app/presenters -> view objects
  • app/queries -> query objects
  • app/reflexes → https://docs.stimulusreflex.com/quickstart#hello-reflex-world
  • app/services (interactors, mutations)
    • a bit controversial, looks like a workaround, but pretty popular
    • OrderService (bad) vs RefundOrder (good)
    • https://www.toptal.com/ruby-on-rails/rails-service-objects-tutorial
    • https://medium.com/the-falconry/skinny-models-skinny-controllers-fat-services-e04cfe2d6ae
    • trailblazer operations
    • https://github.com/cypriss/mutations
    • https://github.com/AaronLasseigne/active_interaction/issues
    • https://dry-rb.org/gems/dry-transaction/
  • app/uploaders -> Carrierwave
  • app/values -> value objects