Rather than build yet another forge, we decided to do something new.   We wanted to build a new kind of extensible forge, and a new set of highly integrated forge tools. 

Allura is an **open** platform for **open** processes
----------------------------------------------------------------------

It's easy to get frustrated with existing development tools.   Too often they are overbearing, complex, and make assumptions that get in your way.  And even if they are open source, it's often difficult to get them to work the way you need them too. 

Which is why we created Allura.   It's designed to be truly **open**, in many different senses of the word. 

It's open in bunch of ways:
 
* It's a combination of tools available under *Free* or *Open Source* licenses. 
* It's designed around a plugin architecture, and anybody willing to contribute a tool can play.
* It's being hosted publicly, and is built through contributions of individuals and companies who want to promote Open Source development.
* It's designed to provide a structure around which welcoming (open) communities can grow. 
* Its core tools are designed around inclusive development processes.

We looked at existing forges, but to achieve all those goals, we decided we needed to build something new.

Allura is designed to support an **ecosystem**
------------------------------------------------------------------------

Allura is at once a **set of tools** to help people collaboratively develop software, and an **open platform** on which innovative new tools be built. 

