# What are your thoughts on Engines?

**URL:** <https://www.ruby-forum.com/t/what-are-your-thoughts-on-engines/127143>\
**Category:** Rails\
**Created:** [January 25, 2008, 12:31pm UTC](https://www.ruby-forum.com/t/what-are-your-thoughts-on-engines/127143 "2008-01-25T12:31:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![melvinram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a698b9/32.png) [@melvinram](https://www.ruby-forum.com/u/melvinram)\
**Post date:** [January 25, 2008, 12:31pm UTC](https://www.ruby-forum.com/t/what-are-your-thoughts-on-engines/127143/1 "2008-01-25T12:31:27Z")

</div>

Love em? Hate em? Think there are better ways?

I am looking at getting involved with an open source Rails project  
that is currently built using Rails Engines… and I am hesitant…  
mostly because I don’t know enough about them and DHH doesn’t like em.

What are your thoughts? Do you use them in your projects? Would you  
use an open-source if it was/used a Rails Engine?

---

<div class="post-metadata">

**Author:** ![melvinram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a698b9/32.png) [@melvinram](https://www.ruby-forum.com/u/melvinram)\
**Post date:** [January 25, 2008, 3:10pm UTC](https://www.ruby-forum.com/t/what-are-your-thoughts-on-engines/127143/2 "2008-01-25T15:10:56Z")

</div>

On Fri, Jan 25, 2008 at 03:30:01AM -0800, mel ram wrote:

> Love em? Hate em? Think there are better ways?

Yes. Yes. Yes.

> I am looking at getting involved with an open source Rails project  
> that is currently built using Rails Engines… and I am hesitant…  
> mostly because I don’t know enough about them and DHH doesn’t like em.

DHH writes “opinionated” software. His domain is [loudthinking.org](http://loudthinking.org). He  
gave  
a talk to a room full of professionals that included a slide with  
nothing  
but the words “Fuck you.” While Rails is great software, and saves me a  
lot  
of time, I feel no obligation to agree with or follow all of its  
(primary)  
author’s opinions. Don’t let DHH’s loudness sway you because he’s some  
kind  
of authority; take his opinions with a grain of salt and come to your  
own  
conclusions.

> What are your thoughts? Do you use them in your projects? Would you  
> use an open-source if it was/used a Rails Engine?

Engines are a terrible way to design an application. They are a great  
way  
to design a chunk of Rails (i.e. full MVC, not just library)  
functionality  
to be used in multiple apps. Note that pre-2.0 engines had a lot of  
hacky  
nastiness around them. With the way Rails 2.0.x does things, engines are  
much cleaner.

–Greg

---

<div class="post-metadata">

**Author:** ![melvinram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a698b9/32.png) [@melvinram](https://www.ruby-forum.com/u/melvinram)\
**Post date:** [January 25, 2008, 7:23pm UTC](https://www.ruby-forum.com/t/what-are-your-thoughts-on-engines/127143/3 "2008-01-25T19:23:38Z")

</div>

Thanks greg!

“Engines are a terrible way to design an application. They are a great  
way to design a chunk of Rails (i.e. full MVC, not just library)  
functionality to be used in multiple apps.”

What do you mean by this? Can you give examples of “a chuck on Rails  
functionality to be used in multiple apps” that would be better as a  
Rails engine and not a standard plugin?

On Jan 25, 6:09 am, Gregory S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![melvinram](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a698b9/32.png) [@melvinram](https://www.ruby-forum.com/u/melvinram)\
**Post date:** [January 25, 2008, 9:46pm UTC](https://www.ruby-forum.com/t/what-are-your-thoughts-on-engines/127143/4 "2008-01-25T21:46:03Z")

</div>

On Fri, Jan 25, 2008 at 10:22:40AM -0800, mel ram wrote:

> Thanks greg!
> 
> “Engines are a terrible way to design an application. They are a great  
> way to design a chunk of Rails (i.e. full MVC, not just library)  
> functionality to be used in multiple apps.”
> 
> What do you mean by this? Can you give examples of “a chuck on Rails  
> functionality to be used in multiple apps” that would be better as a  
> Rails engine and not a standard plugin?

Consider a product that you’ll be selling to multiple clients. You sell  
customization of the product, and maybe a combination of products, for  
your  
client’s site. So you put your products into engines, and you can put  
them  
together as necessary into a single Rails app, with extra customization  
in  
the main app, and sell it. You can also sell upgrades to the individual  
pieces, since they are in separate plugins (with modifications as  
necessary  
to the customization code, of course), but they can be full Rails MVC  
stacks.

–Greg
